天天看點

zabbix建立釘釘報警

簡介

家裡搭建了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.com

Have Fun

繼續閱讀