gpt4 book ai didi

monitoring - Prometheus-Alertmanager 警报的复杂规则/过滤器

转载 作者:行者123 更新时间:2023-12-02 15:24:51 25 4
gpt4 key购买 nike

情况:我设置了 Prometheus 和 Alertmanager,用于监控各种设备的 CPU 温度等。 Alertmanager 将警报从生产设备发送到 PagerDuty。

我正在监控的设备有不同的型号和不同的操作规范。型号 1-5 的正常 CPU 温度为 50C,型号 6 的正常 CPU 温度为 70C。目前,CPU 温度警报的阈值是 60C,因此 PagerDuty 会不断从在正常温度下运行的 Model 6 设备获取警报。

如果温度低于 80C,是否有办法仅过滤来自型号 6 设备的 CPU 温度警报,而在 60C 时仍能获得型号 1-5 设备的 CPU 温度警报?

注意:还有许多其他指标正在受到监控,但对于除 CPU 温度之外的所有指标,所有设备型号都具有完全相同的阈值。

这是我的 alertmanager.yml 中的一个片段,它将产品警报发送到 PagerDuty

- match:
stack_name: prod
severity: critical
receiver: PagerDuty

诚然,我没有丰富的 YML 经验。但这就是我希望做的,但我不确定正确的语法:

- 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

期望的结果:

  • 除 device_cpu_Temperature 之外的所有关键产品警报都会发送至 PagerDuty
  • 仅当型号不是 6(uuid 包含型号后跟“X”)时,关键产品 device_cpu_Temperature 警报才会发送到 PagerDuty
  • 仅当 CPU 温度高于 80C 时,来自型号 6 设备的关键产品 device_cpu_Temperature 警报才会发送到 PagerDuty。

或者在 prometheus 中拥有 2 个不同的警报规则会更好吗?某些规则是否只能应用于某些设备?如果是这样,怎么办?

最佳答案

更简单的方法是在 Prometheus 中创建不同的警报规则。

实际上,警报管理器仅用于发送、分组、过滤等警报,而不是评估指标。

您可以通过 Prometheus 配置中的两个不同警报来实现此目的,按主机名或导出器提供的任何其他标签进行过滤。

服务器 1-5 的表达式应如下所示:

 - alert: ServiceProbeFailed
expr: cpu_temperature{hostname!~".*server_6.*"} > 50

服务器 6 的规则:

 - alert: ServiceProbeFailed
expr: cpu_temperature{hostname=~".*server_6.*"} > 70

警报具有相同的名称,因此警报管理器将具有相同的警报。

关于monitoring - Prometheus-Alertmanager 警报的复杂规则/过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51426815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com