情境:我有Prometheus和Alertmanager的设置来监控各种设备的CPU温度。警报管理器从生产设备向PagerDuty发送警报。
我所监测的设备有不同的型号和不同的操作规格。型号1-5的正常CPU温度为50C,而型号6的正常CPU温度为70C。目前CPU温度警报的阈值为60℃,因此PagerDuty不断从正常温度下运行的型号6设备收到警报。
如果温度低于80℃,并且仍然在60℃时从型号1-5设备上筛选cpu温度警报,那么是否有办法筛选出仅来自型号6设备的cpu温度警报?
注意:还有许多其他指标正在被监控,但除了CPU温度之外,所有设备模型的阈值都完全相同。
下面是我的alertmanager.yml中的一个片段,它向PagerDuty发送prod警报
- match:
stack_name: prod
severity: critical
receiver: PagerDuty无可否认,我没有太多的经验。但这正是我希望做的,但我不确定正确的语法:
- match:
stack_name: prod
severity: critical
alertname: !device_cpu_temperature
receiver: PagerDuty
- match:
stack_name: prod
severity: critical
alertname: device_cpu_temperature
uuid: !*6X*
receiver: PagerDuty
- match:
stack_name: prod
severity: critical
alertname: device_cpu_temperature
uuid: *6X*
value: >80
receiver: PagerDuty预期结果:
或者在普罗米修斯有两个不同的警报规则会更好吗?某些规则只能适用于某些设备吗?如果是这样的话,是怎么做的?
发布于 2018-07-19 16:30:45
在Prometheus中创建不同的警报规则就更容易了。
实际上,警报管理器只用于发送、分组、筛选等警报,而不是评估指标。
您可以通过Prometheus配置中的两个不同的警报、主机名筛选或出口商提供的任何其他标签来实现这一点。
服务器1-5的表达式应该如下所示:
- alert: ServiceProbeFailed
expr: cpu_temperature{hostname!~".*server_6.*"} > 50以及服务器6的规则:
- alert: ServiceProbeFailed
expr: cpu_temperature{hostname=~".*server_6.*"} > 70警报具有相同的名称,因此警报管理器将是相同的警报。
https://stackoverflow.com/questions/51426815
复制相似问题