prometheus+alertmanager

2024-01-01  本文已影响0人  比巴卜超软泡泡糖

部署 alertmanager
官网下载:
https://prometheus.io
上传解压

tar xzvf alertmanager-0.26.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/alertmanager-0.26.0.linux-amd64 /usr/local/alertmanager

启动方式:

直接启动
# ./alertmanager 

可以放后台启动 
# nohup ./alertmanager &

配置文件:
alertmanager.yml

在配置alertmanager.yml前需要先在prometheus上创建rules

# vim prometheus.yml

rule_files:
  - "./rules/ops.yml"  #添加rules路径

# vim ./rules/ops.yml

groups:    #告警分组
  - name: test   #rules名称
    rules:
      - alert: high_rate_of_cpu_usage   #告警名称
        expr: avg by(instance)(1-rate(node_cpu_second_total{mode=“idle”}[5m]))*100 >= 85   #PromQL表达式
        for: 10s   #持续时间
        labels:     #分组标签,需要和alertmanager.yml上路由匹配
          status: high_rate
          team: test
        annotations:     #注释信息
          summary: "test!!!"
          description: "test!!!"

以上配置仅为测试,生产配置以具体需求为准。

重启prometheus

可以在prometheus_IP:9090的UI界面导航栏上 Alerts中看到high_rate_of_cpu_usage

配置alertmanager.yml:
# vim /usr/local/alertmanager/alertmanager.yml

global:
  resolve_timeout: 5m   #如果5m没有发送告警则声明为已恢复
  smtp_smarthost: 'smtp.163.com:25'
  smtp_from: '邮箱@163.com'
  smtp_auth_username: '邮箱@163.com'
  smtp_auth_password: '授权码'
  #smtp相关配置,如果需要发送邮件告警,就需要配置smtp信息。

route:    #告警路由策略,分配告警到接收人
  group_by: ['alertname']     #告警分组
  group_wait: 30s     #同一组告警等待时间,30s内同一组告警只发一次
  group_interval: 10s     #同一组告警信息重发间隔时间
  repeat_interval: 10s     #定义告警信息重发间隔时间
  receiver: 'dingding_robot'     #指定一个默认接收人
  routes:     #定义路由规则
    - match:     #匹配标签,与prometheus的rules的标签对应
        status: high_rate
        team: test
      receiver: 'dingding_robot'     #指定这条告警接收人
receivers:     #接收人信息配置
  - name: 'to_email'
    email_configs:
      - to: '邮箱2@163.com'
  - name: 'dingding_robot'
    webhook_configs:
      - url: 'webhook地址'       #如果想通过钉钉机器人发送到群里,不能直接填机器人的webhook,可以跑个flask,接收并处理json数据,再发送给钉钉机器人的webhook。

以上配置仅为测试,生产配置以具体需求为准。

alertmanager.yml还有一些很有用的配置,这里没用到就没写,如抑制规则...

修改好配置后,保存退出,后台启动alertmanager

手动触发告警:告警规则是5分钟内cpu平均使用率到达85%以上,那么对node_exporter那台机器进行压力测试# stress -c 4 ,可以观察graph图表的趋势,直到收到告警。

上一篇下一篇

猜你喜欢

热点阅读