Rancher 开启监控后的,阈值告警配置说明 (三)
文章目录
环境说明
此文档为 rancher
monitor
使用系列的第三篇
,主要介绍与dingtalk
关联配置告警通知、prometheus 告警阈值的配置使用
配置安装 dingtalk webhook
安装 kustomize
|
|
使用 kustomize 部署 deployment
-
clone 代码
1 2 3 4 5
yum install -y git # 安装 git git clone https://github.com/timonwong/prometheus-webhook-dingtalk.git cd prometheus-webhook-dingtalk/contrib/k8s/
-
创建 dingtalk 自定义机器人
安全设置这里我们选择
加签
处理
复制机器人
webhook
信息填入至配置文件中
|
|
-
部署
yaml
配置文件1 2 3 4 5 6
sed -i "s#monitoring#prometheus#g" kustomization.yaml # 修改 配置文件中指定部署的 命名空间 kustomize build|kubectl apply -f - # 执行部署 configmap/alertmanager-webhook-dingtalk-f5hkbg7g25 created service/alertmanager-webhook-dingtalk created deployment.apps/alertmanager-webhook-dingtalk created
-
测试是否可以正常发送通知
1 2 3 4 5
kubectl get po alertmanager-webhook-dingtalk-5c7b48fd9d-bcpxb -n prometheus -o wide # 获取 pod ip curl 'http://10.233.90.19:8060/dingtalk/webhook1/send' \ -H 'Content-Type: application/json' \ -d '{"Status": "testing"}'
正常将信息发送至 机器人,而且还做了转
大写
处理,这是因为我们默认使用的template
里面做了操作导致。
Rancher alertmanage 配置
alertmanage 的安装非常简单 只需要在 rancher 对应的 dashboard 中设置开启通知, 就会自动帮我去创建相应的
alertmanage
clustert。
关联前面部署的 dingtalk webhook
点击通知
添加通知
选择添加
webhook
类型通知,名称随意设置,webhook 的地址,我们这里配置使用 k8s内部域名
,测试时无法解析此域名属于正常现象,因为所部署的rancher
并不在当前k8s中,只要保证后面的alertmanage
可以正常访问即可,确认后点击添加。
手动测试,告警是否有生效
点击告警
选择一组告警组 关联刚才添加的通知
拉到最下面
设置为我们上面添加的 告警
可以看到此时我们关联告警后,operator
后端为我们自动去创建了 alertmanger
手动将阈值降低,触发告警
这里我们已 cpu 一分钟平均负载情况,作为示例,更改为 使用到
5%
就触发告警,持续时间更改为 1s
等待一会后,已触发告警的发送了
这里告警出来后,alertmanger 这边还需要一段时间进行处理,趁这个时间,我们把 alertmanager 的 service 类型更改为前面 prometheus 一样的
NodePort
类型。
1 2 3 4 5 6 7 8
kubectl edit svc access-alertmanager -n cattle-prometheus ... app: alertmanager chart: alertmanager-0.0.1 release: cluster-alerting sessionAffinity: None type: NodePort ...
我们使用 对应的 NodePort 进行访问 alertmanger 的 dashboard
可以看到
alertmanger
中也已有对应的告警通知,再次查看一下 dingtalk 这边也正常将通知出来了。
当我们把 阈值还原时,恢复通知也正常发送了出来
通知优化及阈值告警配置
阈值告警配置
alert rule
请参考 此链接。
**在对应的告警组或新键的告警组中,参考上面链接
中的 rule 配置添加即可 **
这里需要注意一下的就是,使用
表达式
的这种方法相对更加灵活一些,还有就是需要注意一下rancher
中也有逻辑判断符的,这里需要注意一下,不要重复
添加了。
通知优化
-
图标链接更改优化
可以看到点击图标跳转的这个地址不对,对于故障的定位排除,点击就能跳转到正确的页面还是非常有之必要的。
-
修改
prometheus
资源对象进行添加externalUrl
配置即可1 2 3 4 5 6 7 8 9
kubectl edit prometheus -n cattle-prometheus ... securityContext: fsGroup: 2000 runAsNonRoot: true runAsUser: 1000 serviceAccountName: cluster-monitoring externalUrl: http://192.168.8.30:32209 ...
检查对应的
yaml
可以看到 args 中 已添加了--web.external-url
配置了,alertmanager
的配置添加也是一样的,同样添加externalUrl
字段即可。
To Do
…..