prometheus使用 (十三) QQ邮件告警

Source

一. 获取安全码

首先如果我们想要使用qq邮箱接收报警信息,需要先去qq邮箱上获取你自己的一个安全码,如下图

 

开启后你会获取到一个安全码,用于其他程序去发送邮件到你的邮箱,下面开始配置告警

二. 配置alertmanager发送邮件

注意修改为你的配置,不然过两天我邮箱炸了┭┮﹏┭┮  (3台主机都要写入哦)

#指定将收到的告警发送给谁
cat > /etc/alertmanager/alertmanager.yml <<EOF
global:
  resolve_timeout: 5m
  smtp_from: '2665483426@qq.com'            #发送人的邮箱,自定义
  smtp_smarthost: 'smtp.qq.com:465'               
  smtp_auth_username: '2665483426@qq.com'  #你自己的邮箱
  smtp_auth_password: 'vxehxwuwnwlreaih'   #这个是上面获取安全吗的值,不是你邮箱的密码
  smtp_require_tls: false
  smtp_hello: 'qq.com'

route:
  group_by: ['alertname']
  group_wait: 5s
  group_interval: 5s
  repeat_interval: 5m
  receiver: 'email'

receivers:
- name: 'email'
  email_configs:
  - to: '2665483426@qq.com'            #收件人
    send_resolved: true
EOF

说明

#全局配置
global:
  resolve_timeout: 5m     #当告警的状态由"firing"变为"resolve"的以后还要呆多长时间,才宣布告警解除
  smtp_from: '2665483426@qq.com'          #发件人邮箱
  smtp_smarthost: 'smtp.qq.com:465'       #qq邮箱smtp端口端口
  smtp_auth_username: '2665483426@qq.com'   #邮箱地址
  smtp_auth_password: 'vxehxwuwnwlreaih'    #邮箱安全码
  smtp_require_tls: false                   #不携带证书请求
  smtp_hello: 'qq.com'

#路由配置
route:             #将不同组的报警路由到不同组的邮件中
  group_by: ['alertname']    #告警应该根据那些标签进行分组
  group_wait: 5s             #一组的告警发出前要等待多少秒,这个是为了把更多的告警一个批次发出去
  group_interval: 5s         #同一组的多批次告警间隔多少秒后,才能发出
  repeat_interval: 5m        #重复的告警要等待多久后才能再次发出去
  receiver: 'email'           #指定路由到email的路由

#发送配置
receivers:                         #定义谁接收告警,(接收路由的告警)
- name: 'email'                    #名称对应route中的receiver参数
  email_configs:                   #采用邮箱机制
  - to: '2665483426@qq.com'        #发送到那里的邮箱
    send_resolved: true            #是否发送状态恢复的邮件
EOF

重启服务

#因为是集群模式,这里要给3台添加配置并重启
systemctl restart alertmanager

 

三. 测试--触发告警

上面我们定义的规则是判断up指标中job=node的值是否为0

 

#job=node所对应的服务的服务是node-exporter
#我们这里停止一台node-exporter服务来测试
systemctl stop node-exporter

触发报警该规则会变更为Pending状态 ,等待15s如果没有恢复则会进入Firing状态

当进入Firing状态后,会将告警信息发送到alertmanager中

当你看到这条时,alertmanager已经拿到了告警数据,然后通过route路由到告警配置中,给配置中的邮箱进行报警

(这里我登陆我们接收报警的邮箱)