我使用的是官方的stable/prometheus-operator图表,确实部署了掌舵的普罗米修斯。
到目前为止,它运转良好,除了烦人的CPUThrottlingHigh
警报正在触发许多吊舱(包括自己的Prometheus的config-reloaders containers)。该警报为currently under discussion,我现在想使其通知静音。
Alertmanager具有silence feature,但它是基于Web的:
沉默是一种简单的方法,可以简单地使给定警报静音 时间。静默功能是在 警报管理员。
是否可以使用配置文件将来自CPUThrottlingHigh
的通知静音?
答案 0 :(得分:2)
好吧,我通过配置hack inhibit_rule来使其能够正常工作:
inhibit_rules:
- target_match:
alertname: 'CPUThrottlingHigh'
source_match:
alertname: 'DeadMansSwitch'
equal: ['prometheus']
根据设计,DeadMansSwitch
是Prometheus-operator随附的“始终触发”警报,而prometheus
标签是所有警报的通用标签,因此CPUThrottlingHigh
结尾永远被禁止。它发臭,但有效。
优点:
alertmanager.config
helm参数)完成。CPUThrottlingHigh
警报
分析。CPUThrottlingHigh
警报仅显示在
Alertmanager用户界面,如果已选中“禁止”框。缺点:
DeadMansSwitch
或prometheus
标签设计上进行的任何更改都会破坏此情况(仅表示再次触发警报)。 编辑:
我的缺点变成现实...
稳定/ prometheus-operator 4.0.0中的DeadMansSwitch
别名just changed。如果使用此版本(或更高版本),则新的警报名称为Watchdog
。
答案 1 :(得分:1)
我怀疑是否存在一种通过配置使警报静音的方法(除了将警报发送到/dev/null
接收者之外,即没有配置电子邮件或任何其他通知机制的接收者,但该警报是否仍会显示在Alertmanager用户界面)。
您显然可以使用alertmanager随附的command line tool amtool
来添加静音(尽管我看不到设置静音到期时间的方法)。
或者您可以直接使用API(即使未记录该API,并且理论上它可能会更改)。根据{{3}},此方法应该有效:
curl https://alertmanager/api/v1/silences -d '{
"matchers": [
{
"name": "alername1",
"value": ".*",
"isRegex": true
}
],
"startsAt": "2018-10-25T22:12:33.533330795Z",
"endsAt": "2018-10-25T23:11:44.603Z",
"createdBy": "api",
"comment": "Silence",
"status": {
"state": "active"
}
}'
答案 2 :(得分:1)
一种选择是将您希望静音的警报路由到“空”接收器。在alertmanager.yaml
中:
route:
# Other settings...
group_wait: 0s
group_interval: 1m
repeat_interval: 1h
# Default receiver.
receiver: "null"
routes:
# continue defaults to false, so the first match will end routing.
- match:
# This was previously named DeadMansSwitch
alertname: Watchdog
receiver: "null"
- match:
alertname: CPUThrottlingHigh
receiver: "null"
- receiver: "regular_alert_receiver"
receivers:
- name: "null"
- name: regular_alert_receiver
<snip>