Zabbix -设置钉钉报警脚本

一、创建一个群聊,把需要得到监控信息的人加到一起。并在该群中创建自定义钉钉机器人,并复制保存 webhook 。
在这里插入图片描述

二、zabbix-server配置

1、编辑 zabbix_server.conf 配置文件,设置 AlertScriptsPath 默认脚本路径

[root@zabbix /]# vi /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts     #zabbix报警脚本路径

2、编辑钉钉报警脚本,将钉钉机器人 webhook 粘贴到脚本中。

[root@zabbix /]# vi /usr/lib/zabbix/alertscripts/dingding.py
#!/usr/bin/env python
#!/usr/bin/python
#!/usr/lib64/python2.7
# coding=utf-8
# -*- coding:UTF-8 -*-
# zabbix-dingding

import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=76d5f260c846f4cd98d2892d885b7f7f29********5095c1b6e86ad1d637b"  #钉钉群机器人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/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)+"    "+"sended"+"\n"+str(text)+"\n"+"--"*30+"\n")
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "fail" + "\n" + str(text)+"\n"+"--"*30+"\n")
    f.close()
前面带#的2行是定义,定义语言与编码字符串
跟着5行import是python的格式用法
中间的webhook是机器人的地址,要再钉钉群里面建了机器人把地址更换进来
user很text是定义变量,里面的1跟3是后面输出的的3个值
data是钉钉机器人的用法
atMobiles是钉钉里面发给谁的手机号,要加上
isAtAlL是开启是否@所有人,钉钉发送给群所有人
下面的if else是定义日志的文件路径与日志显示的内容

设置权限钉钉脚本权限

chmod 777 dingding.py
./dingding.py a b "测试"

创建钉钉日志文件

cd /var/log/zabbix
touch dingding.log

修改属组和属主

 chown zabbix.zabbix dingding.log

3、配置监控界面

  • 配置报警媒介类型:

配置—> 报警媒介类型,脚本参数如下:

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 配置动作
    配置—>动作—>创建动作,把微信告警或者邮件告警的“操作”和恢复操作内容拷贝过来即可。
    下图是个通过Ping监控的例子。
    在这里插入图片描述
    在这里插入图片描述
    报警内容格式如下:
【zabbix】问题告警通知:
主机: {HOST.NAME}
告警时间:{EVENT.DATE}-{EVENT.TIME}
详情:无法 Ping 通
【zabbix】问题已解决:
主机: {HOST.NAME}
解决时间:{EVENT.RECOVERY.DATE}- {EVENT.RECOVERY.TIME}
详情: Ping 正常

消息发送时间:{TIME}

操作的报警消息内容格式:

服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!

故障:
{报警主机:{HOST.NAME}
主机地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
报警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
报警信息:{TRIGGER.NAME}
报警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}

恢复操作的报警消息内容:

服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

已恢复:
{报警主机:{HOST.NAME}
主机地址:{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}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考:
1、https://blog.csdn.net/u011258729/article/details/109743569

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值