使用钉钉自定义应用的方式实现zabbix报警

先给大家展示一下完成后的效果图

下面我们就按照下面的步骤来实现我们想要的效果

首先去钉钉后台管理添加自定义应用,关于如何创建自定义应用可以咨询钉钉客服或者查看钉钉相关文档,创建好应用后我们需要获取三个信息:

AgentID:创建好应用后再点击应用进去就可以查看

CorpId:管理员才可以查看

CorpSecret:需要最高管员才可以查看

然后在附件中下载我们对应的程序到我们的zabbbix server的AlertScriptsPath目录,可以通过以下命令查看目录所在位置

grep "AlertScriptsPath" zabbix_server.conf

更改文件的权限为运行zabbix的用户,并给执行权限

chmod 755 golang-zabbix-alter-to-dingding-64

chown zabbix:zabbix  golang-zabbix-alter-to-dingding-64

测试程序是否能正常运行

./golang-zabbix-alter-to-dingding-64 -agentid=126269679 -corpid=ding8afbg7b642f00983 -corpsecret=_tlUVZLC0Pxi_Jj1_GiPK_2Yx8kheM89IcYtq8Ot4rkjgrkeFXKPunGK7ox3j6OK -to=18095245568296 -style=xml -msg="<?xml version=\"1.0\" encoding=\"UTF-8\" ?> <root> <from>千思网</from> <time>2017.02.28 15:15:03</time> <level>较高</level> <name>这是一个来自[ 千思网](https://www.qiansw.com)用于 zabbix 报警的 robot 程序示例。</name> <key>system.cpu.util[,iowait]</key> <value>27.29 %</value> <now>31.98 %</now> <id>163956</id> <ip>127.0.0.1</ip> <color>FFFFFF00</color> <url>https://www.qiansw.com/golang-zabbix-dingding-robot.html</url> <age>25m</age> <status>PROBLEM</status> <acknowledgement> Yes </acknowledgement> <acknowledgementhistory>这里是故障确认消息!</acknowledgementhistory> </root>"

最后配置zabbix

  1. 创建报警媒介

    注意:脚本名称为可执行程序的名称

    -agentid:输入应用的ID,在钉钉后台查看到的

    -corpid:同上

    -corpsecret:同上

    -msg:消息这里固定值为:{ALERT.MESSAGE}

    -url:这里定义报警的超链接,一般定义为我们zabbix服务器访问url

    -to:这里指定要发送给谁,多个用管道符分开,用户ID通过钉钉后台查看

    -style:指定消息格式为xml,默认为json,推荐使用xml,所以json不在演示

  2. 给用户添加报警媒介

    注意:收件人名称随意

  3. 在报警动作中使用媒介,这里只展示报警信息和恢复信息

    以下为报警信息

    注意:默认接收随便写

    以下恢复信息

    注意:默认接收接收人随便写

以下为报警信息

<?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>FFE61A1A</color>
  <url>http://zabbix.gogen.cn</url>
  <age>{EVENT.AGE}</age>
  <status>{EVENT.STATUS}</status>
<acknowledgement> {EVENT.ACK.STATUS} </acknowledgement>
<acknowledgementhistory> {EVENT.ACK.HISTORY}</acknowledgementhistory>
</root>

以下为恢复信息

<?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>
  <url>http://zabbix.gogen.cn</url>
  <age>{EVENT.AGE}</age>
  <recoveryTime>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</recoveryTime>
  <status>OK</status>
</root>

恢复信息说明:<status>OK</status>默认为OK,这是3.4的zabbix server才这样做,如果你的zabbix server是3.4之前的版本请改为:<status>{EVENT.RECOVERY.STATUS}</status>

最后如果配置成功,那么相应的人员就会收到报警信息

时间: 2024-10-08 18:39:20

使用钉钉自定义应用的方式实现zabbix报警的相关文章

钉钉自定义机器人配合SVN钩子事件进行消息的推送实践

目前很多公司还是使用SVN(TortoiseSVN)进行版本控制,使用简单,适合管理一般项目.协同办公软件目前钉钉比较成熟,阿里也一直在宣传推广,这两年公司也在使用,主要用于信息的沟通,其它的绩效.考勤.日志.审批等都是挂载的我们公司内部的系统,很方便,之后钉钉推出了钉钉机器人,一开始觉得没用,也就一直没关注,但是最近我看了钉钉自定义机器人,觉得这个可以好好利用起来,看到网上也有这方面的应用说明,看着很简单,但是按照流程操作起来各种坑,而且相关知识过于碎片化,今天我在这里进行一下简单的整合,梳理

通知神器——java调用钉钉群自定义机器人

创建群自定义机器人 在指定钉钉群(或者随便拉两个人建个群,然后把别人T出去)的群设置里选择 群机器人 -> 自定义,如图: 然后,添加机器人,设置名字,添加成功时如下图: 其中webhook非常重要,下文详述.点击设置说明可以看相关使用文档,文档链接见本文末尾. 使用HTTP POST请求发送消息 直接向上文所述的webhook链接发送POST请求已达到自定义机器人向群内发消息的功能 按照文档中所属的参数格式直接向链接发送请求即可,我使用Postman发送请求如下: 效果如下: 发送其他格式(如

钉钉扫码登录网站(两种方式实现)

原文:钉钉扫码登录网站(两种方式实现) 钉钉扫码登录网站(两种方式实现)# 效果:# 源代码地址:https://github.com/jellydong/DingQrCodeLogin 动手敲代码!# 第一步,钉钉后台配置 参考链接:获取appId及appSecret. 点击进入钉钉开发者平台 的页面,点击左侧菜单的[移动接入应用-登录],然后点击右上角的[创建扫码登录应用授权],创建用于免登过程中验证身份的appId及appSecret,创建后即可看到appId和appSecret. 这里因

钉钉机器人自定义通知-python

创建一个钉钉群然后添加一个自定义的机器人 安全设置是必填项 自定义关键字:报警 钉钉发送通知时,必须包含 关键子 "报警" 不然会 报 keyword not in content. 钉钉文档: https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 机器人创建成功后,针对文档中发送钉消息类型选择合适的进行触发. python 脚本 body={ "msgtype": "markdown", &q

钉钉自定义机器人加签认证(HmacSHA256)C#实现

原文:钉钉自定义机器人加签认证(HmacSHA256)C#实现 0.UTF-8字符集 1.把timestamp+"\n"+密钥当做签名字符串, 2.使用HmacSHA256算法计算签名 3.然后进行Base64 encode 4.最后再把签名参数再进行urlEncode,得到最终的签名. 参数 说明 timestamp 当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时 secret 密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串 签名计算代码示例(Java) ?

springboot使用RestTemplate以post方式发送json字符串参数(以向钉钉机器人发送消息为例)

使用springboot之前,我们发送http消息是这么实现的 我们用了一个过时的类,虽然感觉有些不爽,但是出于一些原因,一直也没有做处理,最近公司项目框架改为了springboot,springboot中有一种很方便的发送http请求的实现,就是RestTemplate,而且实现起来非常简单,代码也很清晰. 从上面代码可以看到,向钉钉发送的参数为一个json字符串,所以需要的HttpEntity的泛型应该是String,如果是键值对,就需要声明MultiValueMap<String, Str

TFS发布计划发送到钉钉消息群

由于工作中需要用到钉钉,每天都要和钉钉打交道:上下班打卡.出差请假流程.各种工作讨论组,不一而足,工作已然和钉钉绑在了一起,难怪有广告词: 微信是一个生活方式,钉钉是一个工作方式. 我们是钉钉机器人内测版的首批用户,使用自定义机器人功能做了预警消息推送,效果还不错,目前钉钉机器人已经正式发布,支持与Github.Gitlab.Jira等集成: 由于我们研发过程管理重度依赖微软TFS(Team Foundation Server),研发.测试及运维同学(DevOps)希望将发布计划通知到钉钉群,由

如何将钉钉集成到FineReport插件中

报表服务器 安装钉钉管理插件后,打开报表管理平台,管理系统下会增加钉钉管理节点,钉钉相关的配置管理都将会放在这个节点中去配置: 同时,设置定时任务的最后一步输出设置中,会增加推送钉钉消息: 钉钉企业应用 管理员登录钉钉企业号,进入微应用设置,需要关注的信息有: CorpID:是企业在钉钉中的标识,每个企业拥有一个唯一的CorpID: CorpSecret:是企业每个应用的凭证密钥 钉钉管理 登录FineReport管理平台,点击管理系统>钉钉管理节点:将钉钉中的CorpID和CorpSecret

氚云成为钉钉首批特邀集成定制厂商

互联网不仅改变了我们的生活方式,还改变了我们的工作方式.在云和移动时代,移动协同办公已成为企业级软件市场最重要的一环,在这个领域中,阿里钉钉是最杰出的代表. 钉钉是针对企业级市场的办公协同工具,以企业为场景,服务每个员工.日前,钉钉打造了最强定制生态.对内,基于企业员工的个性化工作方式,钉钉启动了企业服务计划,为钉钉用户提供商旅.订餐.用车.健康.社保等方面的服务:对外,作为企业级SaaS开放平台,与第三方ISV合作,提供企业应用定制服务."企业可以实现内外双重高效和便利,就像人的呼吸一样,通过