钉钉——server script——zabbix控制台
1:创建一个钉钉的群,添加自定义机器人(手机无法设置,要在电脑上)
添加告警的关键字,当触发关键字就会发消息出来,保存后会弹出类似api之类接口,
zabbix server服务器端,我的版本是2.7的
find / -name alertscripts
cd /usr/lib/zabbix/alertscripts
vim 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=fadcc7aff85fe27d39df3a9168c1b69c422e0ffb6baf3c3758e614de3886b708"
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/logs/dingding.log"):
f=open("/usr/local/zabbix/logs/dingding.log","a+")
else:
f=open("/usr/local/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()
Python脚本里需要更改上面复制钉钉的Webhook
chown zabbix.zabbix dingding.py
mkdir -p /usr/local/zabbix/logs
touch /usr/local/zabbix/logs/dingding.log
chown -R zabbix.zabbix /usr/local/zabbix/logs/dingding.log
chown -R zabbix.zabbix /usr/local/zabbix/logs
执行脚本测试
./dingding.py test 185xxxxxxxx “告警”
登陆zabbix 控制台设置媒介
dingding.py
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
创建用户或者增加联系方式
send to : 钉钉号 (没有就创建一个,该账号在新创建的群里)
创建测试监控项
告警流程:item-triggers-action-send message
执行命令,触发告警
zabbix_sender -z server_ip -s “alvin_ali” -k dingding -o “1”