zabbix建立釘釘報警

簡介

家裏搭建了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.pyapi

由於我是使用docker搭建的,因此上面的操做都要在容器裏面操做bash

docker exec -it zabbix-server /bin/bash服務器

接着安裝python-pip和requests庫app

yum install epel-releasepost

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

相關文章
相關標籤/搜索