一、上篇文章相关的配置是没有实现邮件通知的版本 以下配置是实现了邮件通知的版本
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的那个检测到了 那么也就不会再发送邮件了