zabbix和prometheus通过webhook推送告警至钉钉

zabbix和prometheus通过webhook推送告警至钉钉

之前告警都是通过邮件推送,总感觉及时性不够,就找了找网上大佬们的方案,非原创,只记录一下配置的过程。。。
zabbix:http://www.linuxidc.com/Linux/2017-12/149953.htm
prometheus:https://github.com/timonwong/prometheus-webhook-dingtalk

zabbix

  • 添加钉钉机器人,获取webhook
  • 下载插件
  • copy插件至zabbix告警脚本路径
[root@localhost etc]# grep -i  alert  zabbix_server.conf|  sed '/^#/d'
AlertScriptsPath=/data/zabbix/alertscripts

[root@localhost etc]# ll /data/zabbix/alertscripts
total 9608
-rwxr-xr-x 1 root   root   5828913 Apr 28  2017 golang-zabbix-robot-64
  • zabbix添加media types
name:   dingding_ops
type:   scripts
script name:    golang-zabbix-robot-64
Script parameters:
        -webhook=钉钉机器人webhook URL 
        -msg={ALERT.MESSAGE}
        -url=http://1.1.1.10
        -log=/tmp/dingding.log
  • zabbix添加actions
Name:   dingding_ops


Default subject:    故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME}
Default message:    
        <?xml version="1.0" encoding="UTF-8" ?>
        <root>
          <from>{HOSTNAME1}</from>
          <time>{EVENT.DATE} {EVENT.TIME}</time>
          <level>{TRIGGER.SEVERITY}</level>
          <name>{TRIGGER.NAME}</name>
          <key>{TRIGGER.KEY1}</key>
          <value>{ITEM.VALUE}</value>
          <now>{ITEM.LASTVALUE}</now>
          <id>{EVENT.ID}</id>
          <ip>{HOST.IP}</ip>
          <age>{EVENT.AGE}</age>
          <status>{EVENT.STATUS}</status>
        <acknowledgement> {EVENT.ACK.STATUS} </acknowledgement>
        <acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory>
        </root>


Recovery subject:       恢复通知:{TRIGGER.STATUS}: {TRIGGER.NAME}
Recovery message:       
        <?xml version="1.0" encoding="UTF-8" ?>
        <root>
          <from>{HOSTNAME1}</from>
          <time>{EVENT.DATE} {EVENT.TIME}</time>
          <level>{TRIGGER.SEVERITY}</level>
          <name>{TRIGGER.NAME}</name>
          <key>{TRIGGER.KEY1}</key>
          <value>{ITEM.VALUE}</value>
          <now>{ITEM.LASTVALUE}</now>
          <id>{EVENT.ID}</id>
          <ip>{HOST.IP}</ip>
          <color>FF4A934A</color>
          <age>{EVENT.AGE}</age>
          <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime>
          <status>{EVENT.RECOVERY.STATUS}</status>
        </root>
  • user下添加media
type:       dingding_ops
send to:        随便填
其余默认

Prometheus

  • 添加钉钉机器人,获取webhook
  • 下载插件并编译(不会编译的也可以直接下载编译好的二进制文件)
  • 编辑启动脚本(请替换为自己的webhook URL 及 ding.profile)
cat dingding_start.sh

nohup /usr/local/alertmanager-0.8.0.linux-amd64/prometheus-webhook-dingtalk --ding.profile="ops_dingding=https://oapi.dingtalk.com/robot/send?access_token=11111111111"  --ding.profile="dev_dingding=https://oapi.dingtalk.com/robot/send?access_token=222222222222" 2>&1 1>/usr/local/alertmanager-0.8.0.linux-amd64/dingding.log & 
  • 编辑alertmanager.yml,增加web_hook配置并重启alertmanager
- name: "ops_dingding" 
  webhook_configs:
    - send_resolved: true 
      url: "http://localhost:8060/dingtalk/ops_dingding/send"
- name: "dev_dingding"
  webhook_configs:
    - send_resolved: true
      url: "http://localhost:8060/dingtalk/dev_dingding/send"
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ZabbixWebhook告警是一种通过Webhook机制发送告警通知的方式。在Zabbix中,我们可以使用JavaScript来编写自定义的Webhook媒介类型,以实现发送钉钉或企业微信等报警通知。\[2\]\[3\] 为了方便使用JavaScript的预处理和使用Webhook的媒介类型,Zabbix官方特意封装了一些对象供我们使用。其中,写入Zabbix日志的对象可以使用Log(loglevel, message)方法将日志按照指定的日志级别写入Zabbix日志文件,日志级别可以参考Zabbix的配置文件。这样可以方便我们在调试过程中查找错误原因。\[1\]\[2\] 在Zabbix 5.0中,对于告警(报警媒介)进行了扩展和优化,直接支持Webhook类型的报警媒介。因此,我们可以通过JavaScript语言编写脚本来实现在企业微信发送告警信息。这样的告警脚本具有通用性和灵活性,得到了Zabbix的原生支持。\[3\] 如果你想使用ZabbixWebhook告警功能,首先需要注册企业微信机器人。具体的注册步骤可以参考相关文档或官方指南。一旦注册完成,你就可以在Zabbix中配置Webhook媒介类型,并编写相应的JavaScript脚本来实现告警通知的发送。\[3\] #### 引用[.reference_title] - *1* *2* [Zabbix使用JavaScript配置webhook发送告警通知](https://blog.csdn.net/wanger5354/article/details/118725564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Zabbix 5.0 企业微信 WebHook 实现故障文本告警](https://blog.csdn.net/weixin_53971298/article/details/113619936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值