簡介
家裡搭建了zabbix去監控主機,郵件報警什麼的都太麻煩了,是以直接使用釘釘機器人來提醒,下面是我的記錄
建立群聊
首先釘釘機器人隻有在群聊之中才可以建立,是以你就需要建立一個釘釘群,首先你建立一個三個人的群聊,建立完成之後把别人踢出去就可以了,這樣就是你和釘釘機器人兩個人的群聊,之後在電腦上擷取釘釘機器人的webhook備用
編寫報警腳本
#!/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目錄下面具體路徑為
/usr/lib/zabbix/alertscripts
添加可執行權限
chmod +x dingding.py
因為我是使用docker搭建的,是以上面的操作都要在容器裡面操作
docker exec -it zabbix-server /bin/bash
接着安裝python-pip和requests庫
yum install epel-release
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.comHave Fun