Prometheus和AlertManager的告警机制

一、上篇文章相关的配置是没有实现邮件通知的版本 以下配置是实现了邮件通知的版本

1、将所有配置由tmp目录迁移到etc目录 原因docker每次启动tmp目录内容都会被清空 所以在tmp目录中的配置不会生效

2、prometheus启动命令修改为

docker run -d -p 9090:9090 \

-v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \

-v /etc/prometheus/prometheus_rules.yml:/etc/prometheus/prometheus_rules.yml \

-v /etc/prometheus/alertmanager/alertmanager_rules.yml:/etc/prometheus/alertmanager/alertmanager_rules.yml \

prom/prometheus

alertmanager_rules.yml和prometheus_rules.yml配置文件在prometheus.yml中被引用

如果本地配置文件路径不对(:之前的路径)docker启动报错

如果docker中路径不对 则docker服务启动不起来

3、/etc/prometheus/prometheus_rules.yml 最新配置


4、/etc/prometheus/alertmanager/alertmanager_rules.yml 最新配置


5、alertmanager启动命令修改为

docker run -d -p 9093:9093 -v /etc/prometheus/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml \

-v /etc/prometheus/alertmanager/template/test.tmpl:/etc/alertmanager/html/template/test.tmpl \

--name alertmanager docker.io/prom/alertmanager:latest

6、alertmanager.yml 最新配置


7、模版文件

二、针对以上配置有几点需要说明下

1、receivers html 中的模版名称为 模版文件中 define定义的名称

2、邮件发送邮箱配置

a、开启发送邮箱的smtp服务

b、生成授权码

三、触发告警演示效果

1)正常效果

a、2个数据源正常运行

b、告警规则触发状态

c、alertmanager未收到告警页面

2)停止node数据源

其中一个10s的告警规则触发了

另外一个20的告警规则触发了

现在状态由inactive->pendding 未激活状态转为等待发射状态

5分钟之后发射了

alertmanager也收到了告警通知

报警邮件

4:32发送第一封告警通知 持续10s prometheus没有收到node的数据

4:37发送第N封告警通知 持续10s和20s的都没有收到node数据

3)重启启动node

之前的触发告警记录也都没有了

4:37发送最后一封告警通知 20s规则的告警 此时10s的那个已经检测到node已经启动了 持续20s的那个还没有检测

10的那个先检测 先通知alertmanger ,altermanager先将10s的那个剔除 此时只通知20s的那个

等20s的那个检测到了 那么也就不会再发送邮件了

你可能感兴趣的:(Prometheus和AlertManager的告警机制)