釘釘建機(jī)器人
會(huì)得到一個(gè)url,將此url復(fù)制到/etc/zabbix/下新建自定義文件,以.conf結(jié)。以下為內(nèi)容


正常在/usr/lib/zabbix/alertscripts/,新建一個(gè)文件名字自定義
#!/usr/bin/env python
#coding=utf8
import requests
import json
import sys
import os
import time
import configparser
headers = {'Content-Type': 'application/json'}
time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
config=configparser.ConfigParser()
config.read('/etc/zabbix/pre-dingding.conf')
log_file = config.get('config','log')
api_url = config.get('config','webhook')
def log(info):
? ? if os.path.isfile(log_file) == False:
? ? ? ? ? ? ? f = open(log_file, 'a+')
? ? f = open(log_file,'a+')
? ? f.write(info)
? ? f.close()
def msg(text,user):
? ? json_text= {
? ? "msgtype": "markdown",
? ? "markdown": {
? ? ? ? "title": "GS告警信息",
? ? ? ? "text": text
? ? ? ? },
? ? "at": {
? ? ? ? "atMobiles": [
? ? ? ? ? ? user
? ? ? ? ? ? ],
? ? ? ? "isAtAll": True
? ? ? ? }
? ? }
? ? print json_text
? ? r=requests.post(api_url,data=json.dumps(json_text),headers=headers).json()
? ? code = r["errcode"]
? ? if code == 0:
? ? ? ? log(time + ":消息發(fā)送成功 返回碼:" + str(code) + "\n")
? ? else:
? ? ? ? log(time + ":消息發(fā)送失敗 返回碼:" + str(code) + "\n")
? ? ? ? exit(3)
if __name__ == '__main__':
? ? text = sys.argv[2]
? ? user = sys.argv[1]
? ? msg(text,user)
注意有需要改動(dòng)的地方。執(zhí)行py腳本。這里的py版本要在2.6以上,且要支持一個(gè)指定模塊。
zabbix上
創(chuàng)建用戶媒介,用戶中指定該報(bào)警媒介


創(chuàng)建動(dòng)作

條件不是必須的,如果需要指定到某機(jī)器人,則通過(guò)條件指定即可。

產(chǎn)生告警!
告警主機(jī):{HOST.NAME}
主機(jī)地址:{HOST.IP}
告警等級(jí):{TRIGGER.SEVERITY}
當(dāng)前狀態(tài):{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
問(wèn)題詳情:{ITEM.NAME}: {ITEM.VALUE}
告警時(shí)間:{EVENT.TIME}
告警日期:{EVENT.DATE}
到此,測(cè)試機(jī)器人是否可用。