alertmanager安装部署

1、下载安装包

https://prometheus.io/download/

2、修改配置文件

vim alertmanager.yml

global:
  resolve_timeout: 5m    # 恢复的超时时间,这个跟告警恢复通知有关,此参数并不是说在这个时间没有收到告警就会恢复
  smtp_smarthost: 'smtp.qq.com:465'    # 邮件服务器:端口
  smtp_from: '841677557@qq.com'            # 发送人
  smtp_auth_username: '841677557@qq.com'   # 发生的邮箱账号
  smtp_auth_password: '123456'         # 授权码或密码
  smtp_require_tls: false                  # 请求TLS,false即可

route:
  group_by: ['alertname']    # 默认以告警名进行分组,就是rule文件的alert值进行分组
  group_wait: 10s            # 发送警报前,至少等待多少秒才会发送(为了收集同组更多的警报信息一起发送)
  group_interval: 10s        # 如果警报1已经发送,这时又出现同组的警报2,由于组状态发生变化,警报会在group_interval这个时间内发送,不会被repeat_interval这个时间收敛
  repeat_interval: 20m       # 报警信息已发送,但事件并没有恢复,则等待多久时间再重新发送(生产环境一般设成20min或者30min)
  receiver: 'devops.webhook'     # 发送警报的接收器名称,即对应下面的<receivers>配置段中的<name>值,如果一个报警没有被下面的<routes>配置段中的<receiver>字段匹配,则发送给这个默认的接收器

  routes:                      # 为node_exporter、docker、mysqld_exporter等的Job定义匹配路由,每个路由有自己的分组在告警时信息就会单独发送到对应的组
  - receiver: 'devops.mail'    # 每个服务可以定义自己的接收者,这样在发送时就可以发送给不同的人,不同的服务对应不同的处理人员,需要对应下面<receivers>配置段中的<name>值
    group_wait: 10s            # 组等待时间,同上面的全局配置一个意思
    group_by: ['node_exporter']
    match_re:
      job: node2                # 匹配分组,即使用prometheus中的labels标签信息进行匹配分组发送告警,ps: 分组发送的关键点

  - receiver: 'devops.webhook'
    group_wait: 10s
    group_by: ['geth']
    match_re:
      job: geth2

  - receiver: 'devops.mailwechat'
    group_wait: 10s
    group_by: ['mysqld_exporter']
    match_re:
      job: mysqld_exporter

receivers:    # 发送告警信息给哪个接收者
- name: 'devops.webhook'    # 这个需要和上面全局默认<receiver>或者<routes>中的<receiver>值定义的接收者名称一致
  webhook_configs:
  - url: 'http://192.168.4.88:5001/webhook'

- name: 'devops.mail'
  email_configs:
  - to: 'luzhining@guangzhoudaze.com'
    headers: { Subject: "[WARN] Prometheus 报警邮件" }   # 邮件主题
    send_resolved: true        # 发送告警恢复通知

- name: 'devops.mailwechat'    # 将这个告警同时发送到邮件和企业微信
  email_configs:
  - to: '841677557@qq.com'
    headers: { Subject: "[WARN] Prometheus 报警邮件" }
    send_resolved: true

  wechat_configs:        # 企业微信配置
  - api_secret: 'vwxg8wWFtqkvHOvz18EBGSENm6g0ouX058swvh52em8'   # 第三方企业应用的密钥,可以在自己创建的第三方企业应用详情页面查看。
    agent_id: '1000002'             # 第三方企业应用的 ID,可以在自己创建的第三方企业应用详情页面查看。
    corp_id: 'ww26d538ce96af1d6f'   # 企业微信账号唯一 ID, 可以在我的企业中查看。
    to_party: '1'                   # 需要发送的组/部门。
    send_resolved: true


inhibit_rules:    # 抑制规则,防止告警风暴
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'env', 'instance']

3、编写服务启动脚本

vim alertmanager.service

[Unit]
Description=alertmanager
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/usr/local/alertmanager
ExecStart=/bin/sh -c '/usr/local/alertmanager/alertmanager --web.external-url=http://192.168.123.13:9093/  --log.level=debug >>/usr/local/alertmanager/alertmanager.log 2>&1 '
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后复制到/lib/systemd/system/

4、启动服务

systemctl  enable  alertmanager   # 开机自启动
systemctl  start  alertmanager      # 启动服务

5、打开alertmanager管理页面

访问http://localhost:9093/ 即可看到alertmanager的告警管理页面

讨论数量: 0

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!