IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置
本文最后更新于:2024年7月25日 下午
上一篇文章
IoT 边缘集群基于 Kubernetes Events 的告警通知实现
目标
- 告警恢复通知 - 经过评估无法实现
- 原因:告警和恢复是单独完全不相关的事件,告警是
Warning
级别,恢复是Normal
级别,要开启恢复,就会导致所有Normal
Events 都会被发送,这个数量是很恐怖的;而且,除非特别有经验和耐心,否则无法看出哪条Normal
对应的是 告警的恢复.
- 原因:告警和恢复是单独完全不相关的事件,告警是
- 未恢复进行持续告警 - 默认就带的能力,无需额外配置.
- 告警内容显示资源名称,比如节点和 pod 名称
- 可以设置屏蔽特定的节点和工作负载并可以动态调整
- 比如,集群
001
中的节点worker-1
做计划性维护,期间停止监控,维护完成后重新开始监控。
- 比如,集群
配置
告警内容显示资源名称
典型的几类 events:
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
我们可以把更多的字段加入到告警信息中,其中就包括:
- 节点:
{{ Source.Host }}
- Pod:
{{ .InvolvedObject.Name }}
综上,修改后的 event-exporter-cfg
yaml 如下:
1 |
|
屏蔽特定的节点和工作负载
比如,集群
001
中的节点worker-1
做计划性维护,期间停止监控,维护完成后重新开始监控。
继续修改 event-exporter-cfg
yaml 如下:
1 |
|
默认的 drop 规则为: - type: "Normal"
, 即不对 Normal
级别进行告警;
现在加入以下规则:
1 |
|
... host: "worker-1"
: 不对节点worker-1
做告警;... namespace: "cattle-monitoring-system"
: 不对 NameSpace:cattle-monitoring-system
做告警;... name: "*emqx*"
: 不对 name (name 往往是 pod name) 包含emqx
的做告警kind: "Pod|Deployment|ReplicaSet"
: 不对Pod
Deployment
ReplicaSet
做告警 (也就是不关注应用,组件相关的告警)...version: "dev"
: 不对label
含有version: "dev"
的做告警 (可以通过它屏蔽特定的应用的告警)
最终效果
如下图:
🎉🎉🎉
IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置
https://ewhisper.cn/posts/31024/