date: 2020-10-28title: prometheus配置钉钉告警 #标题
tags: 钉钉告警 #标签
categories: 监控 # 分类

记录下Prometheus接入钉钉告警。

本文基于部署Prometheus监控k8s集群进行配置。

创建钉钉机器人

群聊添加机器人

prometheus配置钉钉告警 - 图1

prometheus配置钉钉告警 - 图2

prometheus配置钉钉告警 - 图3

prometheus配置钉钉告警 - 图4

prometheus配置钉钉告警 - 图5

自定义如下两项内容:

prometheus配置钉钉告警 - 图6

prometheus配置钉钉告警 - 图7

安装webhook插件

在任意节点安装此插件即可,只要altermanager可以和此节点通信。如下:

  1. $ wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v1.4.0/prometheus-webhook-dingtalk-1.4.0.linux-amd64.tar.gz
  2. $ tar zxf prometheus-webhook-dingtalk-1.4.0.linux-amd64.tar.gz -C /opt
  3. $ ln -sf /opt/prometheus-webhook-dingtalk-1.4.0.linux-amd64 /opt/prometheus-webhook-dingtalk
  4. $ cd /opt/prometheus-webhook-dingtalk
  5. # 启动dingtalk程序
  6. $ nohup ./prometheus-webhook-dingtalk --web.listen-address="0.0.0.0:8060" --ding.profile="alert=https://oapi.dingtalk.com/robot/send?access_token=39a2284ace0c37e5a2871085892efbba42062fd9571f7aea56d" &
  7. # 其中--ding.profile="alert 指定的alert为你创建顶顶机器人时自定义的关键字
  8. # https://oapi.dingtalk.com/robot/send?ac.... 是你钉钉机器人生成的webhook。
  9. # 确定端口在监听
  10. $ ss -lnput | grep 8060
  11. tcp LISTEN 0 128 [::]:8060 [::]:* users:(("prometheus-webh",pid=123196,fd=3))

修改alertmanager配置文件

  1. cat >alertmanager-cm.yaml <<EOF
  2. kind: ConfigMap
  3. apiVersion: v1
  4. metadata:
  5. name: alertmanager
  6. namespace: prom
  7. data:
  8. alertmanager.yml: |-
  9. global:
  10. resolve_timeout: 1m
  11. smtp_smarthost: 'smtp.163.com:25'
  12. smtp_from: 'lv916551516@163.com'
  13. smtp_auth_username: 'lv916551516@163.com'
  14. smtp_auth_password: 'RIUAMMLHGGYEG'
  15. smtp_require_tls: false
  16. route:
  17. group_by: [alertname]
  18. group_wait: 10s
  19. group_interval: 10s
  20. repeat_interval: 10m
  21. receiver: alert # 此处照样指定为钉钉机器人自定义的关键字吧
  22. receivers:
  23. - name: alert # 和上面receiver指定的对应
  24. webhook_configs:
  25. - url: 'http://192.168.20.2:8060/dingtalk/alert/send'
  26. send_resolved: true
  27. EOF
  28. # 上面的url中的IP替换为你的dingtalk所在节点的IP,后面路径中的alert也替换为你自己定义的关键字
  29. # 创建configmap资源对象。
  30. $ kubectl apply -f alertmanager-cm.yaml

至此,自行重启alertmanager容器,使其配置生效。

验证钉钉告警

  1. # 在被监控节点执行此命令,使其CPU使用率达到百分之百,以便触发告警
  2. $ for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done

稍后,钉钉群收到如下告警信息,则表示钉钉机器人告警配置无误。

prometheus配置钉钉告警 - 图8