家裏搭建了zabbix去監控主機,郵件報警什麼的都太麻煩了,因此直接使用釘釘機器人來提醒,下面是個人記錄python
首先釘釘機器人只有在羣聊之中才能夠建立,因此你就須要建立一個釘釘羣,首先你建立一個三我的的羣聊,建立完成以後把別人踢出去就能夠了,這樣就是你和釘釘機器人兩我的的羣聊,以後在電腦上獲取釘釘機器人的webhook備用web
#!/usr/bin/python # -*- coding: utf-8 -*- # Author: bboysoul import requests import json import sys import os headers = {'Content-Type': 'application/json;charset=utf-8'} api_url = "" def msg(text): json_text= { "msgtype": "text", "at": { "atMobiles": [ "你的手機號碼" ], "isAtAll": False }, "text": { "content": text } } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text)
上面的api_url就是你的釘釘機器人webhook地址,以後把這個腳本放到機器的alertscripts目錄下面具體路徑爲docker
/usr/lib/zabbix/alertscripts
數據庫
添加可執行權限json
chmod +x dingding.py
api
由於我是使用docker搭建的,因此上面的操做都要在容器裏面操做bash
docker exec -it zabbix-server /bin/bash
服務器
接着安裝python-pip和requests庫app
yum install epel-release
post
yum install python-pip
pip install requests
在下面這個界面建立報警媒介
填入相關信息
點擊添加添加成功
以後點擊管理->用戶->選擇你要告警的用戶,這裏我是直接使用admin用戶了 選擇報警媒介,收件人隨便寫
最後咱們配置動做
點擊配置-> 動做->建立動做
名稱隨便寫
點擊觸發器名稱選擇觸發器警示度,以後選擇大於等於警告,接着選擇添加,點擊一塊兒用
選擇操做
默認標題填
服務器:{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} }
操做也是和上面同樣點擊新的,添加便可
點擊更新操做
標題填
服務器:{HOST.NAME}: 報警確認
消息內容寫
{ 確認人:{USER.FULLNAME} 時間:{ACK.DATE} {ACK.TIME} 確認信息以下: "{ACK.MESSAGE}" 問題服務器IP:{HOSTNAME1} 問題ID:{EVENT.ID} 當前的問題是: {TRIGGER.NAME} }
最後就是測試環節,停掉監控的任何一個主機的zabbix-agent進程,以後咱們看有沒有收到報警信息,若是沒有,能夠登陸數據庫查看alerts表裏面error字段的信息
歡迎關注Bboysoul的博客www.bboysoul.com Have Fun