首先在prometheus 告警规则添加标签:inhibit_instance
(名字随便取的):
1、在 NodeExporter 告警规则中添加 inhibit_instance: '{{$labels.instance}}'
其中 instance 格式为 ip:8888
2、在 LVS探测告警规则上添加:inhibit_instance: '{{$labels.remote_address}}:8888'
,因为lvs 探测是在lvs前端机器上面所以机器的instance 与nodeexporter 的instance 并不一致,需要使用后端机器的 remote_address 作为问题机器的告警目标机器这样我们就获得了问题机器的ip,加上固定端口8888 就跟NodeExporter中的instance保持一致了
3、在 alertmanager 的规则中添加抑制规则,使用NodeExporterUnavailable
抑制lvs通用连通性告警
,自此同一台后端机器宕机只会在告警里面报 nodexporter 挂掉而不会报 lvs 不通了,但是lvs 不通exporter没有挂掉的情况则依然会报出来,这对于运维中告警抑制收敛很有用:
# 抑制规则测试
inhibit_rules:
- source_match:
alertname: 'NodeExporterUnavailable'
target_match:
alertname: 'lvs通用连通性告警'
equal: ['inhibit_instance']
网友评论