monitoring - 结合 2 个不同实例的状态配置 Prometheus 警报规则

标签 monitoring prometheus prometheus-alertmanager

我正在尝试在 Prometheus Alerting Manager 中配置一个警报,该警报会在 2 个不同主机的状态关闭时出现。 为了更好地解释,我有这对主机(host=instance):

host1.1
host1.2

host2.1
host2.2

host3.1 
host3.2

host4.1
host4.2
...

我需要在同一对夫妇的两个主机都关闭时出现的警报:

expr = ( icmpping{instance=~"hostX1"}==0 and icmpping{instance=~"hostX2"}==0 )

(我知道语法不正确,我只是想强调 X 在两个 icmpping 条件下指的是同一个数字)

有什么提示吗?

最佳答案

最简单的方法可能是在摄取时生成一个反射(reflect)此逻辑的标签,使用 relabel_config

relabel_configs:
  - source_labels: [host]
    regex: ^(.*)\.\d+$
    target_label: host_group

它将生成您需要匹配的标签:

host=host1.1 => host_group=host1
host=host1.2 => host_group=host1

然后您可以将其用于您的警报规则。

sum(icmpping) on(host_group) == 0

如果这不可能,您可以使用 label_replace实现相同(仅在即时向量上)

sum(label_replace(icmpping,"host_group","$1","host","(.*)\._\\d+")) on(host_group) == 0

关于monitoring - 结合 2 个不同实例的状态配置 Prometheus 警报规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59193831/

相关文章:

service - 看不到添加到 Prometheus Operator 服务监视器的目标

kubernetes - 节点实例普罗米修斯列表

kubernetes - 用于检查AlertManager的错误Prometheus端点

prometheus - 如何在 Prometheus 中为磁盘空间配置警报

azure - Helm 不接受 YAML 值

c# - 我如何使用 TCP 在 C# 控制台应用程序中监视系统日志消息

java - 增加no时,Java CPU密集型应用程序停止/挂起。 worker 。瓶颈在哪里,以及如何在Ubuntu服务器上推断/监视瓶颈?

apache-spark - 重命名服务监视器中的指标

sql - 确定查询的进度 (Oracle PL/SQL)

带有 Prometheus Node-Exporter 指标的 Kubernetes HPA