altermanager 是用来将 prometheus 收集到的指标计算出来的 record, 进行判断是否触发警告值,如果达到,则 通过 altermanager 配置的告警路由找出告警信息接收者发送告警。

1. 下载 alertmanager

  1. wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
  2. tar -zxvf alertmanager-0.21.0.linux-amd64.tar.gz
  3. mv alertmanager-0.21.0.linux-amd64 alertmanager


2. 配置 alertmanager.yml

告警需要 prometheus 和 alertmanager 协同配置才可以完成整个告警流程:
2.1 需要先编写 xxx.yml 告警配置文件

2.2 在 prometheus.yml 里添加配置:

  1. # Alertmanager 配置, 指向 alertmanager 服务
  2. alerting:
  3. alertmanagers:
  4. - static_configs:
  5. - targets:
  6. - localhost:9093
  7. # 加载记录规则或警告规则配置文件,可以用通配符 *
  8. rule_files:
  9. - 'prometheus.rules.yml'
  10. - 'rules/*.yml'

2.3 考虑到将来我们可能以短信告警为主,所以下面将介绍邮件告警和短信告警配置方式

  1. global:
  2. resolve_timeout: 5m
  3. # The smarthost and SMTP sender used for mail notifications.
  4. smtp_smarthost: ''
  5. smtp_from: ''
  6. smtp_auth_username: ''
  7. smtp_auth_password: ''
  8. smtp_require_tls: true
  9. # The root route on which each incoming alert enters.
  10. route:
  11. # 默认接收者
  12. receiver: 'klen'
  13. # 默认分组
  14. group_by: ['alertname']
  15. # 分组等待时间, 即组内的出现多个告警时,会等待一段时间(通常是几秒到几分钟,这里是10秒)将多个告警整合为一个告警
  16. group_wait: 10s
  17. # 当第一个告警发出后,需要等待多久才能发送其他告警信息
  18. group_interval: 10s
  19. # 同一个告警信息要间隔多久才重新发送
  20. repeat_interval: 3h
  21. receivers:
  22. - name: 'klen'
  23. # 配置将邮件发给谁,可以配置多个
  24. email_configs:
  25. - to: 'klenby@xxx.cn'

3. 启动 alertmanager

  1. touch nohup.out
  2. nohup ./alertmanager --config.file=alertmanager.yml &