prometheus通过钉钉告警(代码片段)

渔夫数据库笔记 渔夫数据库笔记     2022-11-10     272

关键词:

一:创建钉钉告警机器人

一:创建钉钉告警机器人
1.在PC版钉钉上打开您想要添加报警机器人的钉钉群,并单击右上角的群设置图标。

2.在群设置面板中单击智能群助手。

3.在智能群助手面板单击添加机器人。

4.在群机器人对话框单击添加机器人区域的+图标,然后选择添加自定义。

5. 在机器人详情对话框单击添加。

6. 在添加机器人对话框中编辑机器人头像和名称,选中必要的安全设置(至少选择一种),选中我已阅读并同意《自定义机器人服务及免责条款》。单击完成。

二:安装钉钉告警插件

1. 下载插件
https://github.com/timonwong/prometheus-webhook-dingtalk/releases/
wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.1.0/prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
2. 安装
tar -xvf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz -C /usr/local
cd /usr/local
mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 prometheus-webhook-dingtalk

3.修改钉钉告警插件配置文件

## Request timeout
# timeout: 5s

## Uncomment following line in order to write template from scratch (be careful!)
#no_builtin_template: true

## Customizable templates path
templates:
  - contrib/templates/*.tmpl # 这里指向你生成的模板

## You can also override default template using `default_message`
## The following example to use the 'legacy' template from v0.3.0
#default_message:
#  title: ' template "legacy.title" . '
#  text: ' template "legacy.content" . '

## Targets, previously was known as "profiles"
targets:
  webhook1:
    # 钉钉机器人的webhook
    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    # secret for signature 加签后得到的值
    secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#  webhook2:
#    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
#  webhook_legacy:
#    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
#    # Customize template content
#    message:
#      # Use legacy template
#      title: ' template "legacy.title" . '
#      text: ' template "legacy.content" . '
#  webhook_mention_all:
#    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
#    mention:
#      all: true
#  webhook_mention_users:
#    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
#    mention:
#      mobiles: ['156xxxx8827', '189xxxx8325']

钉钉告警模板(这个模板是在钉钉报警插件中使用的)

 define "__subject" 
[ .Status | toUpper  if eq .Status "firing" : .Alerts.Firing | len  end ]
 end 


 define "__alert_list"  range . 
---
 if .Labels.owner @ .Labels.owner  end 

**告警名称**:  index .Annotations "title"  

**告警级别**:  .Labels.severity  

**告警主机**:  .Labels.instance  

**告警信息**:  index .Annotations "description" 

**告警时间**:  dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" 
 end  end 

 define "__resolved_list"  range . 
---
 if .Labels.owner @ .Labels.owner  end 

**告警名称**:  index .Annotations "title" 

**告警级别**:  .Labels.severity 

**告警主机**:  .Labels.instance 

**告警信息**:  index .Annotations "description" 

**告警时间**:  dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" 

**恢复时间**:  dateInZone "2006.01.02 15:04:05" (.EndsAt) "Asia/Shanghai" 
 end  end 


 define "default.title" 
 template "__subject" . 
 end 

 define "default.content" 
 if gt (len .Alerts.Firing) 0 
**====侦测到 .Alerts.Firing | len  个故障====**
 template "__alert_list" .Alerts.Firing 
---
 end 

 if gt (len .Alerts.Resolved) 0 
**====恢复 .Alerts.Resolved | len  个故障====**
 template "__resolved_list" .Alerts.Resolved 
 end 
 end 


 define "ding.link.title"  template "default.title" .  end 
 define "ding.link.content"  template "default.content" .  end 
 template "default.title" . 
 template "default.content" . 

4.启动钉钉报警插件

./prometheus-webhook-dingtalk --config.file=config.yml >dingtalk.log 2>&1 &

#默认使用 8060 端口
netstat -ntlp|grep 8060

三. 修改alertmanager配置文件(添加钉钉告警渠道)

vi /usr/local/alertmanager/alertmanager.yml

1.routes 部分添加如下部分

#通过正则表达式指定告警名称为Mysql开头,或者告警名称为 Memory Usage 的告警通过 dingding.webhook1 发送

  routes:
  - receiver: 'dingding.webhook1'
    match_re:
      alertname: "Mysql.*|Memory Usage"

2. receivers 添加如下部分

receivers:
- name: 'dingding.webhook1'
  webhook_configs:
  - url: 'http://119.8.238.94:8060/dingtalk/webhook1/send' #这里的webhook1,根据我们在钉钉告警插件配置文件中targets中指定的值做修改
    send_resolved: true

3.重新加载 alertmanager 参数
curl -lv -X POST http://localhost:9093/-/reload

4.测试告警
1) 查看是否生成告警
http://119.8.238.94:9090/alerts?search=

2) 查看告警是否通过指定渠道发送

#告警通过钉钉发送成功(prometheus 的告警规则中指定了默认告警方式为邮件告警,但是如果告警名称符合Mysql开头的告警,或者告警名称为Memory Usage则通过dingding.webhook1渠道发送)

告警发送

 告警恢复

prometheus通过webhook推送告警至钉钉(代码片段)

注意:二当家在安装使用过程发现使用prometheus结合叮叮推送遇到了一些坑这里记录一下大家可以规避一下 1所在的linux服务器要安装golang环境老铁们自己要先装一下 参考 https://blog.csdn.net/AlbertFly/article/details/83414713我是折腾... 查看详情

prometheus通过钉钉告警(代码片段)

...:安装钉钉告警插件1.下载插件https://github.com/timonwong/prometheus-webhook-dingtalk/releases/wgethttps://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.1.0/prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz2.安装tar-xvfprometheus-webhook-dingtalk-2.1.0.l... 查看详情

prometheus基于alertmanager实现钉钉告警(代码片段)

1.安装prometheus-webhook-dingtalk插件wgethttps://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v0.3.0/prometheus-webhook-dingtalk-0.3.0.linux-amd64.tar.gztar-zxfprometheus-webhook-din 查看详情

prometheus+grafana+钉钉部署一个单机的mysql监控告警系统(代码片段)

...权不得随意使用,转载请联系小编并注明来源。一、Prometheus二、exporter2.1node_exporter2.2mysqld_exporter三、grafana3.1部署3.2配置数据源3.3配置监控模板四、alertmanager4.1配置alertmanager服务4.2配置dingding告警4.3配置rule五、总结一、Pro 查看详情

alertmanager安装与使用(代码片段)

一、概述Alertmanager是一个独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、删除重复等处理,并将它们通过路由发送给正确的接收器;告警方式可以按照不同的规则发送给不同的模块负责人,Alertmanager支持Email... 查看详情

pythondingtalk钉钉群告警消息发布(代码片段)

...知脚本pythondingtalk钉钉群告警消息发布公司用oprator部署的prometheus,理论上时可以直接通过alertmanager的配置。通过钉钉机器人的webhook向群里发送告警信息。但是想要格式化输出格式,并且规范化就成了问题。因为每个人都有部署e... 查看详情

prometheus告警处理(代码片段)

在PrometheusServer中定义告警规则以及产生告警,Alertmanager组件则用于处理这些由Prometheus产生的告警。Alertmanager即Prometheus体系中告警的统一处理中心。Prometheus告警简介告警能力在Prometheus的架构中被划分成两个独立的部分。如下所... 查看详情

zabbix--钉钉告警(代码片段)

...务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支... 查看详情

prometheus告警功能

prometheus告警功能Prometheus对指标的收集、存储同告警能力分属于PrometheusServer和AlertManager(通用的组件,可由企业自行开发)两个独立的组件,前者仅负责基于"告警规则"生成告警通知,具体的告警操作则由后者完成... 查看详情

prometheus+grafana+alertmanager+邮件+钉钉告警

Prometheus+Grafana+alertmanager+邮件+钉钉告警本文模拟生产环境一ansible部署ansbile部署在线安装yuminstallansible-y离线安装#离线环境,提前在有网络的服务器上下载好需要的软件包mkdir-p/home/ansibleyuminstallansible-y--downloadonly--downloaddir/home/ansib... 查看详情

prometheus入门(代码片段)

prometheus入门(一)大纲基础架构介绍官方站点以及后期用到的软件包介绍prometheus以及各类exporter的使用告警配置高可用架构docker&k8s监控基础架构介绍官方站点:https://prometheus.io官方架构图:大体组成部分以及流程介绍数据采集... 查看详情

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

6.prometheus监控技术与实践---告警处理(代码片段)

第6章 告警处理 在prometheus监控体系中,指标的采集存储于告警是分开的。告警规则是在prometheusserver端定义的,告警规则被触发后,才会将信息发送给独立组件Alertmanager上,经过对告警的处理后,最终通过接... 查看详情

aop实现系统告警(代码片段)

...的bug等等。针对代码的bug,我们可以提前预支,通过发送告警信息来警示我们去干预,尽早处理。二、告警的方式1、钉钉告警通过在企业钉钉群,添加群机器人的方式,通过机器人向群内发送报警信息。至于... 查看详情

技术分享|如何使用prometheus实现系统监控报警邮件通知(代码片段)

上一篇关于Prometheus的文章中说到了Prometheus是如何实现进程监控。在实际的线上环境中,当系统进程出现异常后需要实时通知到值班运维人员,去检查系统是否还正常运转。下面我们就介绍下基于Prometheus如何实现监控报... 查看详情

alertmanager钉钉告警配置

参考技术A集成了这个项目,用于钉钉机器人推送告警信息https://github.com/timonwong/prometheus-webhook-dingtalkprometheus-webhook-dingtalk部署alert配置catalertmanager.yml参考博客https://theo.im/blog/2017/10/16/release-prometheus-alertmanager-webhook-for-dingtalk/ 查看详情