我有数百台主机向普罗米修斯服务器报告。我的每个主机有很多导出商。我希望能够列出我不希望收到警报的主机列表。我仍然需要对这些主机进行普罗米修斯监控。
我尝试过匹配没有接收器的路线。这不起作用。我究竟做错了什么?或者,我应该怎么做?
我的路线规则。我希望第一个匹配能够匹配可忽略的实例并停止解析。我仍然收到警报。 :-(
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/