1. 首页
  2. 技术知识

docker部署钉钉机器人报警通知的实现

本文主要介绍了docker部署钉钉机器人报警通知的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

目录结构

  1. [root@node1 ~]# tree prom
  2. prom
  3. ├── docker-compose.yml  #docker-compose文件
  4. ├── grafana  #grafana数据挂载
  5. ├── prometheus_data  #Prometheus数据挂载
  6. ├── rules    #报警规则文件
  7. │   ├── cpu_over.yml
  8. │   ├── disk_over.yml
  9. │   ├── memory_over.yml
  10. │   └── node_alived.yml
  11. └── yml
  12.     ├── alertmanager.yml   alertmanager配置
  13.     ├── config.yml   钉钉机器人配置
  14.     └── prometheus.yml   Prometheus配置

复制代码

  1. [root@node1 prom]# cat docker-compose.yml
  2. version: “3.7”
  3. services:
  4.   node-exporter:
  5.     image: prom/node-exporter:latest
  6.     container_name: “node-exporter”
  7.     ports:
  8.       – “9100:9100”
  9.     restart: always
  10.   cadvisor:
  11.     image: google/cadvisor:latest
  12.     container_name: cadvisor
  13.     restart: always
  14.     ports:
  15.       – ‘8080:8080’
  16.   prometheus:
  17.     image: prom/prometheus:latest
  18.     container_name: prometheus
  19.     ports:
  20.       – “9090:9090”
  21.     restart: always
  22.     volumes:
  23.       – “./yml/prometheus.yml:/etc/prometheus/prometheus.yml”
  24.       – “./prometheus_data:/prometheus”
  25.       – “./rules:/etc/prometheus/rules”
  26.   grafana:
  27.     image: grafana/grafana
  28.     container_name: “grafana”
  29.     ports:
  30.       – “3000:3000”
  31.     restart: always
  32.     volumes:
  33.       – “./grafana:/var/lib/grafana”
  34.   alertmanager:
  35.     image: prom/alertmanager:latest
  36.     restart: “always”
  37.     ports:
  38.       – 9093:9093
  39.     container_name: “alertmanager”
  40.     volumes:
  41.       – “./yml/alertmanager.yml:/etc/alertmanager/alertmanager.yml”
  42.   webhook:
  43.     image: timonwong/prometheus-webhook-dingtalk
  44.     restart: “always”
  45.     ports:
  46.       – 8060:8060
  47.     container_name: “webhook”         
  48.     volumes:
  49.       – “./yml/config.yml:/etc/prometheus-webhook-dingtalk/config.yml”

复制代码

  1. [root@node1 prom]# cat yml/prometheus.yml
  2. # my global config
  3. global:  # 此片段指定的是prometheus的全局配置, 比如采集间隔,抓取超时时间等.
  4.   scrape_interval: 1m  # 抓取间隔 默认1m
  5.   evaluation_interval: 1m   # 评估规则间隔 默认1m
  6.   # scrape_timeout is set to the global default (10s).
  7. # Alertmanager configuration
  8. # 此片段指定报警配置, 这里主要是指定prometheus将报警规则X到指定的alertmanager实例地址
  9. alerting:
  10.   alertmanagers:
  11.     – static_configs:
  12.         – targets:
  13.            – 192.168.10.10:9093
  14. # Load rules once and periodically evaluate them according to the global ‘evaluation_interval’.
  15. rule_files:
  16.    – “/etc/prometheus/rules/*.yml”   #报警规则文件
  17. #  – “cpu_over.yml”
  18. #  – “disk_over.yml”
  19. #  – “memory_over.yml”
  20. #  – “node_alived.yml”
  21. # A scrape configuration containing exactly one endpoint to scrape:
  22. # Here it’s Prometheus itself.
  23. # 抓取配置列表
  24. scrape_configs:
  25.   – job_name: “prometheus”
  26.     static_configs:
  27.       – targets: [“localhost:9090”]
  28.   – job_name: “linux”
  29.     static_configs:
  30.       – targets: [“192.168.10.10:9100″,”192.168.10.10:8080″,”192.168.10.20:9100″,”192.168.10.20:8080”]

复制代码

  1. [root@node1 prom]#cat alertmanager.yml
  2. global:
  3.   resolve_timeout: 5m  #在指定时间内没有新的事件就发送恢复通知
  4. route:
  5.   receiver: webhook  #设置接收人
  6.   group_wait: 1m  #组告警等待时间。在等待时间结束后,如果有同组告警一起发出
  7.   group_interval: 1m  #两组告警间隔时间。
  8.   repeat_interval: 1m  #重复告警间隔时间,减少相同邮件的发送频率。
  9.   group_by: [alertname] #采用那个标签来作为分组。
  10. receivers:   #通知接收者列表
  11. – name: webhook
  12.   webhook_configs:
  13.   – url: http://192.168.10.10:8060/dingtalk/webhook1/send            
  14.     send_resolved: true
  15. #########################################################
  16. [root@node1 prom]# cat yml/config.yml
  17. targets:
  18.   webhook1:
  19.     url: https://oapi.dingtalk.com/robot/send?access_token=XXXXXX    #webhook
  20.     secret: SEC000000    #加签

复制代码

  1. [root@node1 prom]#cat alertmanager.yml
  2. global:
  3.   resolve_timeout: 5m  #在指定时间内没有新的事件就发送恢复通知
  4. route:
  5.   receiver: webhook  #设置接收人
  6.   group_wait: 1m  #组告警等待时间。在等待时间结束后,如果有同组告警一起发出
  7.   group_interval: 1m  #两组告警间隔时间。
  8.   repeat_interval: 1m  #重复告警间隔时间,减少相同邮件的发送频率。
  9.   group_by: [alertname] #采用那个标签来作为分组。
  10. receivers:   #通知接收者列表
  11. – name: webhook
  12.   webhook_configs:
  13.   – url: http://192.168.10.10:8060/dingtalk/webhook1/send            
  14.     send_resolved: true
  15. #########################################################
  16. [root@node1 prom]# cat yml/config.yml
  17. targets:
  18.   webhook1:
  19.     url: https://oapi.dingtalk.com/robot/send?access_token=XXXXXX    #webhook
  20.     secret: SEC000000    #加签

复制代码 配置完成后docker-compose up -d 启动容器

http://localhost:8080   #cadvisor   

http://localhost:8080/metrics #cadvisor数据

http://localhost:9100/metrics   #node-exporter数据

http://localhost:9090 #prometheus

http://localhost:3000   #grafana

http://localhost:9090/alerts

实现效果

到此这篇关于docker部署钉钉机器人报警通知的实现的文章就介绍到这了,更多相关docker 钉钉机器人报警内容请搜索软件技术网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件技术网!

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/109016.html

联系我们