Prometheus之Alertmanager使用

1.  Alermanager介绍

    当Alertmanager接收到 Prometheus 端发送过来的 Alerts 时,Alertmanager 会对 Alerts 进行去重复,分组,按标签内容发送不同报警组,包括:邮件,微信,webhook。    

    

2.  安装Alertmanager

    1.  下载并解压

        tar -zxvf alertmanager-0.21.0.linux-amd64.tar.gz

        mv alertmanager-0.21.0.linux-amd64 /usr/local/alertmanager

    2.  修改alertmanager配置文件       

global:
  # resolve_timeout:解析超时时间
  resolve_timeout: 5m
  # smtp_smarthost: 使用email打开服务配置
  smtp_smarthost: 'smtp.126.com:25'
  # smtp_from:指定通知报警的邮箱
  smtp_from: 'yangjianbo@126.com'
  # smtp_auth_username:邮箱用户名
  smtp_auth_username: 'yangjianbo@126.com'
  # smtp_auth_password:授权密码
  smtp_auth_password: '123'
  # smtp_require_tls:是否启用tls
  smtp_require_tls: false

# route标记:告警如何发送分配
route:
  # group_by:采用哪个标签作为分组的依据
  group_by: ['alertname']
  # group_wait:分组等待的时间
  group_wait: 10s
  # group_interval:上下两组发送告警的间隔时间
  group_interval: 10s
  # repeat_interval:重复发送告警时间。默认1h
  repeat_interval: 30m
  # receiver 定义谁来通知报警
  receiver: 'mail'

# receiver标记:告警接受者 
receivers:
# name:报警来源自定义名称
- name: 'mail'
  # email_configs:通过邮箱发送报警
  email_configs:
    # to:指定接收端email
    - to: 'yangjianbo@126.com'

# inhibit_rules标记:降低告警收敛,减少报警,发送关键报警
#inhibit_rules:
#  - source_match:
#      severity: 'critical'
#    target_match:
#      severity: 'warning'
#    equal: ['alertname', 'dev', 'instance']

    3.  检查alertmanager配置文件

        ./amtool check-config alertmanager.yml

    4.  启动alertmanager

        ./alertmanager --config.file=alertmanager.yml

    5.  添加系统服务

        vi /usr/lib/systemd/system/alertmanager.service        

[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml
[Install]
WantedBy=multi-user.target

        systemctl daemon-reload

        systemctl restart alertmanager.service

3.  prometheus与Alertmanager集成

    1.  编辑prometheus配置文件连接地址        

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
      - 172.16.1.198:9093

    2.  设置告警规则配置文件

rule_files:
  - "rules/*.yml"

    3.  创建告警规则目录

        mkdir rules

    4.  检查并重新加载配置文件

        ./promtool check config prometheus.yml

        kill -hup PID

4.  创建告警规则 

    1.  创建规则并写入rules/test.yml   

# groups:组告警
groups:
# name:组名。报警规则组名称
- name: general.rules
  # rules:定义角色
  rules:
  # alert:告警名称。 任何实例5分钟内无法访问发出告警
  - alert: InstanceDown
    # expr:表达式。 up = 0 相当于指标挂掉了
    expr: up == 0
    # for:持续时间。 表示持续一分钟获取不到信息,则触发报警。0表示不使>
    for: 1m
    # labels:定义当前告警规则级别
    labels:
      # severity: 指定告警级别。
      severity: error
    # annotations: 注释 告警通知
    annotations:
      # 调用标签具体指附加通知信息
      summary: "Instance {{ $labels.instance  }} 停止工作" # 自定义摘要
      description: "{{ $labels.instance  }} job {{ $labels.job  }}

    2.  检查配置并重启服务

./promtool check config prometheus.yml
systemctl restart prometheus.service

    3.  监控端查看规则

        

 

  

          

                        

      

            

  

                

        

          

                  

 

 

    

posted @ 2023-05-19 11:35  奋斗史  阅读(195)  评论(0)    收藏  举报