分别启动alertmanager
比如在A,B两个节点上部署alertmanager,那么A节点的启动命令:
#你应该用nohup后台启动
A节点的启动命令:
./alertmanager —config.file=alertmanager.yml —cluster.peer=hostB:9094
B节点的启动命令:
./alertmanager —config.file=alertmanager.yml —cluster.peer=hostA:9094
#下载官网二进制包
wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
#解压并改名
tar -xf alertmanager-0.23.0.linux-amd64.tar.gz -C /usr/local/
mv alertmanager-0.23.0.linux-amd64.tar.gz alertmanager
docker run -d --name alertmanager -p 9093:9093 -v /etc/alertmanager.yml:/etc/alertmanager/alertmanager.yml -v /data/alertmanager/storage:/alertmanager prom/alertmanager:latest
docker run -d -p 9093:9093 -v /etc/alertmanager.yml:/etc/alertmanager/config.yml --name alertmanager docker.io/prom/alertmanager --config.file=/etc/alertmanager/config.yml
curl -XPOST http://ip:9093/-/reload #热加载
global:
resolve_timeout: 5m #处理超时时间,默认为5min
smtp_smarthost: 'smtp.qq.com:465' #smtp 服务和端口
smtp_from: '1597176766@qq.com' #发送的邮箱账号
smtp_auth_username: '1597176766@qq.com' #发送的用户名
smtp_auth_password: 'pixntubwikmpjbaf' #授权码
smtp_require_tls: false
route:
group_by: ['alertname']
group_wait: 5s
group_interval: 5s
repeat_interval: 5m
receiver: 'email'
receivers:
- name: 'email'
email_configs:
- to: 'duyl_0826@163.com'
send_resolved: true
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'instance']
所有从prometheus来的告警,都会进行分组,告警的发送也是按照分组来的 group_by就是按照标签分组,一般alertname会作为选择,就是告警的名称,其次后面会根据业务来区分,例如我上面写的job。他会按照job再进行一次分组。这样的好处是可以合并告警信息 group_wait是第一次的告警信息在间隔多长时间后发送给receiver(receiver就是我们的webhook,短信等等)。 group_interval是按照组进行合并,组间的间隔时间。 repeat_interval是告警的再次发送频率。这里主要应对的场景是怕丢数据,例如一个告警触发了,但是一直没解决,那么必须进行再次的提醒。是一个提醒的状态。