zabbix3.0配置釘釘告警

一、創建釘釘機器人

登錄釘釘客戶端,創建一個羣,把需要收到報警信息的人員都拉到這個羣內.然後點擊羣右上角的"羣機器人"->"添加機器人"->"自定義",記錄該機器人的webhook值!

zabbix3.0配置釘釘告警

二、zabbix設置

  1. 查看alertscripts存放路徑
cat /usr/local/zabbix/etc/zabbix_server.conf|grep AlertScriptsPath
AlertScriptsPath=/usr/local/zabbix/monitor_scripts
  1. 編寫dingding.py腳本,Python版本必須爲2.7,不然報錯:
cd /usr/local/zabbix/monitor_scripts/

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=95a25d8b8f0945ecd0f0ac992f4be80d3f738ded0acb199ff356426e70fca675"
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()
  1. 創建上面腳本中的日誌路徑:
touch /usr/local/zabbix/logs/dingding.log
chown zabbix.zabbix dingding.py
chmod 755 dingding.py
chown zabbix.zabbix /usr/local/zabbix/logs/dingding.log
  1. 手動測試腳本發信是否正常:
./dingding.py test 13611027803 "這是一條測試信息,忽略"

注意:該腳本要求至少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

解決辦法:

pip install requests

釘釘上收到的測試信息如下:

zabbix3.0配置釘釘告警

三、Zabbix監控界面設置

  1. 創建報警媒介. 三個參數分別是:ALERT.SENDTO ALERT.SUBJECT ALERT.MESSAGE

zabbix3.0配置釘釘告警

  1. 用戶添加報警媒介

收件人是釘釘上的手機號碼.這裏使用Admin管理員用戶,在Admin用戶的"報警媒介"裏添加收件人信息
特別注意:這裏只需要添加釘釘羣裏的任何一個成員的手機號碼即可,即添加一個收件人,這樣在機器人羣裏成員都能看到告警信息.
如果添加多個收件人,則機器人羣裏就會發送多個告警信息,一個收件人發一條信息.

zabbix3.0配置釘釘告警

  1. 添加動作

動作裏的報警信息和恢復信息都發送給Admin用戶.

操作
默認接收人:{TRIGGER.STATUS}: {TRIGGER.NAME}
默認信息:
告警主機:{HOST.NAME}
主機IP: {HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

恢復操作(確認操作也是一樣):
默認接收人:{TRIGGER.STATUS}: {TRIGGER.NAME}
默認信息:
告警主機:{HOST.NAME}
主機IP: {HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

zabbix3.0配置釘釘告警

zabbix3.0配置釘釘告警

然後進行測試,比如關閉一臺被監控機器的10050端口,過一會兒,查看下釘釘上的報警信息,如下:

zabbix3.0配置釘釘告警

還可以查看dingding.log日誌,看看告警信息發送情況:

zabbix3.0配置釘釘告警

參考:https://blog.51cto.com/m51cto/2051945

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章