首页 > 其他分享 >zabbix--钉钉告警

zabbix--钉钉告警

时间:2023-06-08 16:47:15浏览次数:52  
标签:log -- alertscripts zabbix usr dingding 告警 local

zabbix 钉钉告警机制#

群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性. 比如我们可将Zabbix运维报警提醒通过自定义机器人聚合到钉钉群中,以实现钉钉告警。

钉钉机器人创建

登录钉钉客户端,创建一个群,把需要收到报警信息的人员都拉到这个群内.然后点击群右上角的"群机器人"->"添加机器人"->"自定义",记录该机器人的webhook值!

zabbix-server 配置

复制代码
[root@SrtAly120 ~]# cat /usr/local/zabbix/etc/zabbix_server.conf |grep ^AlertScriptsPath
AlertScriptsPath=/usr/local/zabbix/lib/zabbix/alertscripts

进入到/usr/local/zabbix/alertscripts下编写dingding.py脚本(脚本中包含钉钉机器人的webhook值):
[root@SrtAly120 ~]# cd /usr/local/zabbix/lib/zabbix/alertscripts

[root@SrtAly120 alertscripts]# cat dingding.py 
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=8ea7abd3db4b49a9e898e911920d4899c526ae78f5794c977cfca8b6c0bjsdd"      #说明:这里改为自己创建的机器人的webhook的值
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/local/zabbix/log/dingding.log"):
    f=open("/usr/local/zabbix/log/dingding.log","a+")
else:
    f=open("/usr/local/zabbix/log/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
    f.close()

赋予脚本执行权限
[root@SrtAly120 alertscripts]# chmod +x dingding.py
创建上面脚本中的日志路径
[root@SrtAly120 alertscripts]# mkdir /usr/local/zabbix/log/
[root@SrtAly120 alertscripts]# touch /usr/local/zabbix/log/dingding.log 
[root@SrtAly120 alertscripts]# chown zabbix.zabbix /usr/local/zabbix/log/dingding.log

手动测试脚本是否可以正常发送消息
这个条文档记录的测试信息,忽略
[root@SrtAly120 alertscripts]# ./dingding.py test gaojing "测试下"
复制代码

钉钉收到的测试消息如下: 

zabbix web界面配置

1)创建报警媒介   脚本参数:ALERT.SENDTO      ALERT.SUBJECT      ALERT.MESSAGE

2)给用户添加报警媒介

说明:收件人是钉钉上的手机号码,我这里使用的是Admin管理员用户。

特别注意:这里只需要添加钉钉群里的任何一个成员的手机号码即可,即添加一个收件人,这样在机器人群里成员都能看到告警信息.
如果添加多个收件人,则机器人群里就会发送多个告警信息,一个收件人发一条信息. 

测试结果:

查看日志

 

至此、zabbix 钉钉告警就完成了。

标签:log,--,alertscripts,zabbix,usr,dingding,告警,local
From: https://www.cnblogs.com/A121/p/17466904.html

相关文章

  • 【单元测试的艺术】第一章 单元测试基础
    1.1逐步定义单元测试维基百科对于单元测试的传统定义:定义1.0:一个单元测试是一段代码(通常是一个方法),这段代码调用另一段代码,然后检验某些假设的正确性。如果这些假设是错误的,单元测试就失败了。一个单元可以是一个方法或函数。被测试系统(SystemUnderTest,SUT):写代码测试......
  • 消息队列
    消息队列解耦、异步、削峰应用耦合:多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败;异步处理:多应用对消息队列中同一消息进行处理,应用间并发处理消息,相比串行处理,减少处理时间;限流削峰:广泛应用于秒杀或抢购活动中,避免流量过大导致应用系统挂掉......
  • 检测到包降级: System.Diagnostics.Debug 从 4.3.0 降级到 4.0.11。直接从项目引用包
    .net 项目在发版的时候报包的版本不一致严重性代码说明项目文件行禁止显示状态错误错误形式的警告:检测到包降级:System.Diagnostics.Debug从4.3.0降级到4.0.11。直接从项目引用包以选择不同版本。ProjectName->Microsoft.AspNetCore.Mvc.Core2.2.5->Micros......
  • zabbix--微信告警
    zabbix微信告警机制#zabbix告警机制有很多,比如邮件、微信、电话、短信等等。很多,但是像电话和短信都是有钱人玩的,我们这些穷屌丝玩玩微信邮件就可以了。参考:https://github.com/X-Mars/Zabbix-Alert-WeChat微信告警首先得注册一个企业微信,然后才能实现微信告警。注册地址:h......
  • simulink之S函数--实践
    若系统G(s)=1/(3s+2),乳选取状态变量x=y,则其状态空间方程可表示为dx=(-2x+u)/3且y=x,对系统建立S-函数,绘制该控制系统的阶跃响应曲线。零、分析,其实该题若不是要求建立S-函数,绘制系统的阶跃响应曲线,完全可以直接用系统的传递函数,采用如下方式,直接完成的。一、传递函数......
  • CF323B - Tournament-Graph
    题意:构造一个\(n\)大小的锦标赛图,即每两点之间恰有一条有向边,满足任意点对\((u,v)\),都存在一条从\(u\)到\(v\),长度不超过\(2\)的路径。方法一考虑奇数情况,假设我们的点是在环上排列的,那么我们对任意的跨越不超过半个环的边都连上,也就是说,我们把点看成圆上的若干个等分点......
  • zabbix--远程执行命令
    zabbix远程执行命令重启应用服务器#使用远程执行命令可以在某些时候帮我做一些事情,达到轻量级的自动化,比如当nginx、mysql、php、redis、tomcat、等等应用挂掉时帮我们自动重启并告警。再比如当磁盘空间满了,自动帮我们清理垃圾日志文件等。看下官网的描述:使用远程命令,您可以......
  • mybatis if标签的判断是否等于1,0
    正确写法:<iftest="xxx=1">或者<iftest="xxx='1'.toString()">或者<iftest='xxx="1"'>错误写法<iftest="xxx='1'">如果判断条件是数字,则不能加单引号,否则将会不生效! 拓展:mybatis源码中,会把......
  • zabbix--邮件告警报错“Support for SMTP authentication was not compiled in”
    邮件报警失败:SupportforSMTPauthenticationwasnotcompiledin 解决办法:升级curl版本具体操作步骤:1)安装curl #rpm-Uvhhttp://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1.rhel6.noarch.rpm#yum--showduplicateslistc......
  • CANoe_ Trace 和 Graphics 窗口的介绍和使用
    Canoe是一款用于汽车网络分析和仿真的工具,其中包括Trace和Graphics两个窗口,用于显示和分析CAN网络数据。以下是对Canoe的Trace和Graphics窗口的简要介绍和使用说明:1.Trace窗口Trace窗口用于显示CAN网络中的消息和信号数据。可以在Trace窗口中实时查看CAN消息的发送和接收情......