如果有多个出口商,如何在普罗米修斯中区分警报规则

How to differentiate alert rules in Prometheus if there are multiple exporter

我想在多台服务器上监控 docker 容器 运行 假设我有 a,b 服务器和其中的容器 运行,现在我添加一台服务器 (d) I只想从服务器 c 监视所有服务器 (A,B) 内的所有 docker 个容器。我已将 docker 配置为公开所有服务器上的日志,然后 docker docs 不使用 cAdvisor 。目标状态在所有服务器上显示 'ok',但问题是 docker 的所有容器的表达式都相同 Prometheus 无法区分服务器,任何人都可以使用表达式共享示例 Prometheus 规则文件即停止容器的数量不应少于 x 。这是我当前的规则文件

groups:

- name: Server_A
  rules:
  - alert: Central_service_down
    expr: engine_daemon_container_states_containers{state="running"} < 10
    for: 50s
    labels:
      severity: critical
      instance: <IP_of_A>:9323
    annotations:
      summary: "Monitor service non-operational"
      description: "Demo Service {{ $labels.instance }} is down."
- name: Server_B
  rules:
  - alert: Central_service_down
    expr: engine_daemon_container_states_containers{state="running"} < 10
    for: 50s
    labels:
      severity: critical
      instance: <IP_of_B>:9323
    annotations:
      summary: "Monitor service non-operational"
      description: "Demo Service {{ $labels.instance }} is down."

如您所见,expr: engine_daemon_container_states_containers{state="running"} < 10 对于服务器 a 和 b 是相同的,我如何区分两者的 expr。请分享示例警报文件。提前致谢

我添加了 instance='ip' 来区分,即 expr: engine_daemon_container_states_containers{instance="serverA",state="running"} < 10