zabbix系列之九——添加钉钉告警
一、添加钉钉机器人
1.

2.

复制webhook后面脚本用到:https://oapi.dingtalk.com/robot/send?access_token=36e69dd50bbcc54b7b2a84abe1b452dceb54f1daeca83c185c357662c8037692
二、Zabbix设置
1.查看服务端脚本存放路径
[root@GYQ-Prod-Zabbix ~]# cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
登录到/usr/lib/zabbix/alertscripts下编写dingding.py脚本(脚本中包含钉钉机器人的webhook值):
[root@GYQ-Prod-Zabbix ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix01 monitor_scripts]# cat dingding.py
[root@GYQ-Prod-Zabbix 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=36e69dd50bbcc54b7b2a84abe1b452dceb54f1daeca83c185c357662c8037692"
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/lib/zabbix/logs/dingding.log"):
f=open("/usr/lib/zabbix/logs/dingding.log","a+")
else:
f=open("/usr/lib/zabbix/logs/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@GYQ-Prod-Zabbix alertscripts]# mkdir /usr/lib/zabbix/logs
[root@GYQ-Prod-Zabbix alertscripts]# touch /usr/lib/zabbix/logs/dingding.log
[root@GYQ-Prod-Zabbix alertscripts]# chown zabbix.zabbix dingding.py
[root@GYQ-Prod-Zabbix alertscripts]# chmod 755 dingding.py
[root@GYQ-Prod-Zabbix alertscripts]# chown zabbix.zabbix /usr/lib/zabbix/logs/dingding.log
手动测试脚本发信是否正常:
[root@GYQ-Prod-Zabbix alertscripts]# ./dingding.py test 15377937463 "hehe"

===========================================================
注意:该脚本要求至少python2.6.6版本,且具有requests模块.
否则会报错:
Traceback (most recent call last):
File "./dingding.py", line 4, in <module>
import requests,json,sys,os,datetime
ImportError: No module named requests
解决办法:
yum安装
[root@zabbix monitor_scripts]# yum install python-pip
[root@zabbix monitor_scripts]# pip -v
[root@zabbix monitor_scripts]# pip install requests
===========================================================
源码安装
1.下载:
在它的官网可以下载到安装包:
https://pypi.python.org/pypi/setuptools
下载路径:
#wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-12.0.3.tar.gz#md5=f07e4b0f4c1c9368fcd980d888b29a65
2. 安装
# tar xvf setuptools-12.0.3.tar.gz
# cd setuptools-12.0.3
# python setup.py install
# cd pip-18.0
# python setup.py install
三、设置zabbix报警媒介
1.添加报警媒介类型

脚本参数添加3个:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2.设置用户告警

3.添加告警动作

4.



1、报警
{TRIGGER.STATUS}: {TRIGGER.NAME}
{TRIGGER.NAME} 故障!
告警主机:{HOST.NAME}
告警IP:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID} 2、报警恢复
{TRIGGER.STATUS}: {TRIGGER.NAME}
{TRIGGER.NAME} 已恢复!
告警主机:{HOST.NAME}
告警IP:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID} 3、报警确认
服务器:{HOST.NAME}: 报警确认
确认人:{USER.FULLNAME}
时间:{ACK.DATE} {ACK.TIME}
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
结果:

zabbix系列之九——添加钉钉告警的更多相关文章
- zabbix系列之十——添加短信告警
zabbix添加短信告警 1.查看zabbix-server脚本存放路径: [root@GYQ-Prod-Zabbix ~]# grep AlertScriptsPath /etc/zabbix/za ...
- zabbix系列(三)zabbix3.0.4微信告警配置详解
一.准备工作 申请微信公众号,并且是可以有发送消息的接口.添加有个脚本去调用微信的api. 之后可以参考下zabbix 的搭建,然后了解下脚本报警,之后再考虑报警方式的多样化. 个人微信一个 个人邮箱 ...
- Zabbix系列之二——添加监控主机步凑
1.登录监控平台,配置——主机——创建主机 2.主机设置 3.添加模板
- zabbix系列之九——安装后配置四web监控
1web监控 描述 详细 备注 概要 1) 需要定义 web 场景(包括一个或多个 HTTP请求),zabbix服务器根据预定义的命令周期性的执行这些步骤. 2) Web 场景和 ...
- zabbix 利用python脚本实现钉钉告警
Zabbix 利用python脚本实现钉钉告警 1.安装python3.6环境 2.创建python脚本 cd local/zabbix-4.0.3/share/zabbix/alertscripts ...
- Zabbix通过与微信、钉钉整合实现实时告警
abbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信.钉钉作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警 ...
- zabbix使用钉钉告警
1.钉钉创建群 2.[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf # 配置文件中查找”Alert”查看告警脚本存放路径 [root@lo ...
- Zabbix 配置钉钉脚本告警
1.钉钉账号创建,并创建一个组,在组中添加一个机器人,然后记下webhook地址即可. 2.编辑一个报警脚本,此处使用的是BASH脚本,并覆盖我们的webhook地址到相应的位置. [root@loc ...
- zabbix配置钉钉机器人告警
目录 zabbix配置钉钉机器人告警 1. 在钉钉中创建群聊,在群里面添加自定义机器人 2. 配置钉钉告警脚本 3. 配置脚本告警 3.1 创建媒介 3.2 为用户添加对应媒介 3.3 创建动作 4. ...
随机推荐
- zabbix-tomcat监控
安装tomcat 1安装jdk # yum install lrzsz -y #tar xvf jdk # ln -sv /usr/local/src/jdk1..0_79/ /usr/local/j ...
- Ceph 命令
引用自: https://www.cnblogs.com/schangech/p/8036161.html 一.集群 1.启动一个ceph 进程启动mon进程 service ceph start ...
- Django----博客文章数据返回
步骤1:新建视图函数 from django.shortcuts import render from django.http import HttpResponse; from blog.model ...
- 027 storm面试小题
1.大纲 Storm工作原理是什么? 流的模式是什么?默认是什么? 对于mapreduce如何理解? Storm的特点和特性是什么? Storm组件有哪些? 2.Storm工作原理是什么? 相对于ha ...
- Python-杂物
1,and和or 在一个bool and a or b语句中,当bool条件为真时,结果是a:当bool条件为假时,结果是b. a = "heaven" b = "hel ...
- 传入两坐标点,利用div+css画线
上样式生成函数代码 lineStyle (x1, y1, x2, y2, lineWidth = 4, color = 'black') { let rectX = x1 < x2 ? x1 : ...
- SpringBoot报错:Failed to load ApplicationContext( Failed to bind properties under 'logging.level')
引起条件: SpringBoot2.0下yml文件配置SLF4j日志输出日志级别 logging: level: debug 解决方法: 指定系统包路径 logging: root: debug 指定 ...
- SpringMvc 中的实用工具类介绍(包括 ResponseEntity、 RestTemplate、WebUtils 等)
此部分内容将包含 ResponseEntity. RestTemplate.WebUtils 等 1. ResponseEntity ① Sprring Mvc 中作为方法的返回值使用法 @Reque ...
- elasticsearch目录
快速入门篇(基于版本5.4) Elasticsearch入门 Elasticsearch和Kibana安装 Elasticsearch索引和文档操作 Elasticsearch文档查询 安装和配置(基 ...
- 将本地jar包打包到本地仓库和上传到私服
1.本地jar打包到本地仓库 mvn install:install-file -Dfile=jar包完整地址或相对地址 -DgroupId=自定义的groupID -DartifactId=自定义的 ...