云原生监控系统Prometheus——Alertmanager 与 Prometheus 集成
Alertmanager 与 Prometheus 集成
这里我们使用 Prometheus 的默认配置文件 prometheus.yml 来实现 Prometheus server 与 alertmanager 组件的关联,并对告警规则及其模版内容进行介绍。
一、与 Alertmanager 关联
Prometheus 把生产的告警发送给 Alertmanager 进行告警处理时,需要在 Prometheus 使用的配置文件中添加关联 Alertmanager 组件的对应配置内容。
- 编辑 prometheus.yml 文件加入关联 Alertmanager 组件的访问地址,示例如下:
alerting: alertmanagers: - static_configs: - targets: - 192.168.2.121:9093
- 添加监控 Alertmanager 与监控 Prometheus 操作过程一样,Alertmanager 公开了相关指标。可以在 prometheus 文件中创建一个 Prometheus job 来监控 Alertmanager 组件示例地址,内容如下:
- job_name: 'Alertmanager' static_configs: - targets: ['192.168.2.121:9093']
- 配置完成后,重新启动 Prometheus 服务对配置内容热加载。通过浏览器访问 Prometheus Web UI,可以看到 Alertmanager 已经在 target 列表中,并且已经是 UP状态了,图:略。
二、告警规则
告警规则文件使用 YAML 格式进行定义,在 Prometheus server 中使用 PromQL 配置实际告警触发条件,Prometheus 会根据告警规则及配置周期进行周期性计算,若满足触发条件则会触发告警通知。告警规则的加载是在 prometheus.yml 文件中进行配置,默认情况下 Prometheus 对设置的告警规则进行计算的时间间隔是 1分钟,可以使用 global 中的 evaluation_interval 配置选项设置间隔时间。例如:
global:
evaluation_interval: 15s
告警规则可以直接指定文件,也可以指定到特定的目录下,为了方便管理也可以把告警规则则拆分成多个文件,以特定的命名格式被 Prometheus.yml 指定后加载,例如:
rule_files: - "/usr/local/prometheus/current/rules/*_rules.yml" - - "second_rules.yml"
我们先看一个简单的 demo 示例: