通过Alertmanager实现Prometheus的告警

告警配置

Prometheus本身不支持的告警功能,主要通过插件Alertmanager来实现告警。Alertmanager用于接收Prometheus发送的告警信息并对告警进行一系列的处理后发送给指定的用户或组。

 docker pull prom/alertmanager

启动alertmanager镜像

docker run -d -p 9093:9093 --name my_alertmanager prom/alertmanager

  1. -p   本机端口和容器启动端口映射
  2. -d   后台运行
  3. --name   容器名称
  4. prom/alertmanager  镜像

配置告警信息

global:
smtp_smarthost: 'smtp.qq.com:465' 
smtp_from: '1811461563@qq.com'
smtp_auth_username: '1811461563@qq.com'
smtp_auth_password: 'mgkrvlkublozdhja'   # 这里是邮箱的授权密码,不是登录密码
smtp_require_tls: false #要设置后才能发送成功,默认是true
route:     # route用来设置报警的分发策略
group_by: 'alertname'    # 采用哪个标签来作为分组依据
group_wait: 10s    # 组告警等待时间。也就是告警产生后等待10s,如果有同组告警一起发出
group_interval: 20s   # 两组告警的间隔时间
repeat_interval: 1h   # 重复告警的间隔时间,减少相同邮件的发送频率
receiver: 'mail'   # 设置默认接收人
receivers:

  • name: 'mail'
    email_configs:
  • to: '1811461563@qq.com'
    inhibit_rules:
  • source_match:
    severity: 'critical'
    target_match:
    severity: 'warning'
    equal: 'alertname', 'dev', 'instance'

配置告警规则

alert:报警规则名称
expr:基于PromQL表达式告警触发条件,用于计算是否有时间序列满足该条件。
for:评估等待时间,可选参数。用于表示只有当触发条件持续一段时间后才发送告警。在等待期间新产生告警的状态为pending。
labels:自定义标签,允许用户指定要附件到告警上的一组附加标签
annotations:用于指定一组附加信息,比如用于描述告警详细信息的文字等,annotations的内容在告警产生时会一同作为参数发送到Alertmanager

启动prometheus 挂载prometheus和告警规则文件

docker run -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /opt/prometheus/node_rule.yml:/etc/prometheus/node_rule.yml -v /etc/localtime:/etc/localtime:ro prom/prometheus

添加钉钉接收告警

首先先注册钉钉,然后创建一个群,添加机器人

添加机器人

群设置--智能群助手--添加自定义模板

机器人名称

安全设置说明文档详情链接:自定义机器人安全设置 - 钉钉开放平台

推荐使用加签方式

通过 curl ipinfo.io 查看服务器的公网ip

点击完成到此对于我们最重要的一点是这里的Webhook。

因为使用钉钉告警的话,还需要钉钉插件prometheus-webhook-dingtalk支持

安装钉钉插件(prometheus-webhook-dingtalk)

docker 安装prometheus-webhook-dingtalk

docker pull timonwong/prometheus-webhook-dingtalk

启动prometheus-webhook-dingtalk

docker run -d --name webhook -p 8060:8060 timonwong/prometheus-webhook-dingtalk

 或者通过docker run -d --name webhook -p 8060:8060 -v /opt/prometheus/dingtalk/config.yml:/etc/prometheus-webhook-dingtalk/config.yml -v /etc/localtime:/etc/localtime:ro timonwong/prometheus-webhook-dingtalk   在启动的时候外部挂载钉钉的配置文件config.yml

alertmanager配置发送钉钉告警

修改prometheus-webhook-dingtalk下的config.yml配置文件

targets:
webhook1:

  1. url: 这里将从钉钉机器人那复制过来的webhook地址粘贴
    url: https://oapi.dingtalk.com/robot/send?access_token=b4a03644b0fb264da0be1e0faecfb10ee5d97228a909d45f376b52467afdc6e2

配置alermanager.yml添加钉钉告警

# 这里的 url: 'http://prometheus-webhook-dingtalk的服务器的ip地址:端口/config.yml中的分组名称/send'

alertmanager发送告警到多个渠道

通常告警消息的 Lable 匹配 match 之后,不会继续向下匹配。通过 continue: true 能够使告警消息继续向下匹配。

下图当发生alertname="InstanceDown"的告警时,匹配到钉钉的告警之后会继续向下匹配。所以发生alertname="InstanceDown"告警时会同时发送给钉钉和QQ邮箱

通过Alertmanager实现Prometheus的告警告警配置(邮箱加钉钉)相关推荐

  1. alertmanager监控 Prometheus 告警,alertmanage配置邮件告警

    1.搭建Prometheus,node及mysql参考该链接: 配置grafana展示prometheus监控数据 2.下载安装 alert manager: https://prometheus.i ...

  2. Prometheus+Alertmanager详细配置邮箱告警

    目录 部署概览 Alertmanager安装 下载 解压 服务配置 服务启动 验证

  3. prometheus 发送恢复 值_基于prometheus+grafana+alertmanager监控系统配置钉钉告警

    概述 因为目前工作基本都是用钉钉办公,所以今天主要介绍一下怎么在prometheus配置钉钉告警,这里的前提是已经部署了alertmanager. 一.配置go 由于Prometheus 是用gola ...

  4. Prometheus监控以及告警配置

    Prometheus监控 Prometheus简介 Prometheus是一套开源的系统监控报警框架.Prometheus作为新一代的云原生监控系统,相比传统监控监控系统(Nagios或者Zabbix ...

  5. Prometheus+Grafana监控安装及配置JVM实现企业微信告警

    背景 本人Java开发工程师一枚,主攻后端,需要搭建一套Prometheus+Grafana的监控系统,采用企业微信告警通知.在网上各种查阅资料的同时,发现很多资料都大致相通且不完整,踩坑无数,经过多 ...

  6. Prometheus+Grafana监控告警配置

    文章目录 Prometheus介绍 Prometheus及其组件安装 Prometheus安装 PromQL介绍 mysqld_exporter组件安装 node_exporter组件安装 alert ...

  7. Prometheus 配置钉钉告警

    背景 之前很少用钉钉,因为手机多装了一个软件,感觉占用系统资源.但是感觉确实有一些人使用钉钉告警,所以本篇来讲解如何通过钉钉来实现Prometheus的告警. 首先先注册钉钉,然后创建一个群.群的设置 ...

  8. Kubernetes监控体系(12)-alertmanager配置钉钉和邮件告警

    打开电脑版钉钉创建机器人 1.创建钉钉机器人 打开电脑版钉钉,创建一个群,创建自定义机器人,按如下步骤创建 https://ding-doc.dingtalk.com/doc#/serverapi2/ ...

  9. Prometheus+Alertmanager+webhook-dingtalk实现钉钉告警

    文章目录 一.前提准备及规划 二.安装及启动 2.1 Prometheus安装启动 2.2 Node_export安装启动 2.3 Alertmanager安装启动 2.4 Webhook-dingt ...

最新文章

  1. tomcat 性能设置
  2. 聊天机器人之环境准备
  3. java extjs如何使用_ExtJS初探:在项目中使用ExtJS
  4. 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
  5. au vst插件_失真效果音频插件
  6. Java并发编程:ThreadLocal
  7. wsl2 Ubuntu 18.04 安装 ROS
  8. Gitlab Merge Request Builder Plugin 配置小记
  9. [转]bad interpreter:No such file or directory的原因
  10. 【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法
  11. 我什么时候应该使用懒惰 <T> ?
  12. 经典水晶报表设计三则
  13. 跨设备链路聚合_企业核心经常用到的链路聚合技术,原理与实现
  14. SinoBBD:以后发优势提供不一样的一体化融合CDN服务
  15. php中的date()函数d y m l等字母的表示方法
  16. mysql多个left join
  17. A Belief Propagation Algorithm for Multipath-Based SLAM IEEE TWC2019阅读
  18. Js坐标转换器-百度地图坐标转腾讯地图坐标
  19. IE无法打开网页的常见原因及解决
  20. 各种电影视频格式标题的含义

热门文章

  1. 机器视觉工业缺陷检测(光源,相机,镜头,算法)
  2. 华为运营商级路由器配置示例 | 配置BGP VPLS和LDP VPLS interworking示例
  3. Vue项目设置全屏背景图片上方有白边的问题
  4. rainkin教你如何下载flash中的视频
  5. 我与CSDN的2021 --从路人到一名万粉博主的自述
  6. pysaprk数据倾斜怎么解决?
  7. 微信小程序 数组 Json 导出到excel
  8. css flash布局_跳过简介-CSS3是新的Flash
  9. STM32实现基于I2C的AHT20温湿度采集
  10. php定义变量$3t=5,如何在Nexmo代码中设置php变量