prometheus - 禁用对特定主机的警报,同时对所有其他主机发出警报

标签 prometheus prometheus-alertmanager

我有数百台主机向普罗米修斯服务器报告。我的每个主机有很多导出商。我希望能够列出我不希望收到警报的主机列表。我仍然需要对这些主机进行普罗米修斯监控。

我尝试过匹配没有接收器的路线。这不起作用。我究竟做错了什么?或者,我应该怎么做?

我的路线规则。我希望第一个匹配能够匹配可忽略的实例并停止解析。我仍然收到警报。 :-(

route:
  receiver: 'team-ops-mails'
  group_by: ['alertname', 'cluster']
  group_wait: 30s
  group_interval: 2m
  repeat_interval: 2h 
  routes:
  - match_re:
      instance: "int-pg-01:.*"
    continue: false
  - match:
      nopage: true
    receiver: team-mattermost
    repeat_interval: 24h
  - match:
      severity: hwerror
    receiver: hwerror-receiver
    repeat_interval: 24h
  - match:
      role: worker
    receiver: team-mattermost 
  - match:
      role: ven-entrance
    receiver: team-mattermost 

最佳答案

Alerting rules允许您基于prometheus表达式语言定义更改条件。

警报规则示例:

groups:
- name: example
  rules:
  - alert: HighRequestLatency
    expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
    for: 10m
    labels:
      severity: page
    annotations:
      summary: High request latency

解决问题的一种可能方法是,在指标中添加一个额外的标签,例如 enableAlert。在定义警报规则时,您可以通过定义 expr 来忽略某些主机的触发警报,如下所示:

- name: example
  rules:
  - alert: DemoAlert
    expr: <metric-name> {... ..., enableAlert = "true"} > ref_value

为那些您不想触发警报的实例设置enableAlert = "false"

关于prometheus - 禁用对特定主机的警报,同时对所有其他主机发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57617071/

相关文章:

kubernetes - 普罗米修斯 - Kubernetes RBAC

kubernetes - 从 Prometheus helm chart 向 slack 发送警报

mysqld : dial tcp 127. 0.0.1:3306: 连接:连接被拒绝

apache-kafka - 如何将数据从 Kafka 导出到 Prometheus?

docker - 警报管理器无法启动,但 Prometheus 可以正常启动

当指标数据丢失时,普罗米修斯发送已解决的通知

prometheus-alertmanager - 使用curl在alertmanager上创建警报

rest - 如何从按特定标签过滤的 Prometheus 服务器获取所有指标名称

go - 普罗米修斯直方图矢量 : All buckets fill equally?