IoT 边缘集群基于 Kubernetes Events 的告警通知实现(二):进一步配置
本文最后更新于:2024年7月24日 晚上
上一篇文章
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/