Alerting

告警有两个部分。 首先,向Prometheus添加警报规则(Alert rules),定义构成警报的逻辑和依据值。 其次,Alertmanager将触发警报转换为通知,例如电子邮件,页面和聊天消息。

先给prometheus添加告警规则后面手动触发下告警,在prometheus.yml 同目录创建文件rules.yml

groups:
- name: example
  rules:
  - alert: InstanceDown
    expr: up == 0
    for: 1m

然后在prometheus.yml 添加下面内容让prometheus去加载rules并配置prometheus使用alertmanager的信息

rule_files:
  - rules.yml
alerting:
  alertmanagers:
  - static_configs:
     - targets: ['localhost:9093']

然后重新运行prometheus后停掉node_exporter后查询可以up == 0 可以看到down了

在prometheus的web页面的Alerts可以看到有告警生成

告警在未达到for的时间上限内状态为pending 达到了时间就会切成firing 并被发送到alertmanager,这里我们部署下alertmanager来处理告警

配置alertmanager,创建文件alertmanager.yml 写入下面信息。可以申请个163的邮箱开启pop3和smtp然后开启客户端密码即可。

然后运行alertmanager

然后访问alertmanager的web页面http://localhost:9093/

如果配置正确的话在你的邮件收件箱能看到如下图类似的告警邮件

这个基本设置让您对prometheus可以做的事情有所了解。 您可以向prometheus.yml添加更多target,您的警报也会自动为它们工作

在下一章中,我将重点介绍使用Prometheus的client library添加到自己的应用程序里

Last updated

Was this helpful?