zabbix5 web監測並推送告警信息到釘釘羣

zabbix5 web監測

zabbix5監控網頁狀態,當網頁出現問題時,往釘釘羣推送告警信息。

創建web監測

點擊模板選擇web監測
在這裏插入圖片描述
1)web監測場景設置如下:
在這裏插入圖片描述
2)web監測步驟設置如下:
在這裏插入圖片描述
在這裏插入圖片描述
成功添加步驟
在這裏插入圖片描述
web場景設置成功
在這裏插入圖片描述
在這裏插入圖片描述
3)查看web監測狀態
在這裏插入圖片描述

設置觸發器

設置觸發器,觸發器名稱爲:測試【數據接口主頁崩了]
當監測的網頁返回的狀態碼不等於200的時候,觸發報警

在這裏插入圖片描述
選擇監控項
Response code for step “打開首頁” of scenario “百度首頁”.
web.test.rspcode[百度首頁,打開首頁]
表達式如下:表示最新取回的值與200狀態碼進行比較,當狀態碼不等於200時觸發告警

{Zabbix server:web.test.rspcode[百度首頁,打開首頁].last()}<>200

在這裏插入圖片描述
爲了觸發問題報警,這裏修改監控項等於200告警,如下所示觸發告警:
在這裏插入圖片描述
在這裏插入圖片描述

往釘釘羣推送報警

1)設置報警媒介類型,腳本名稱爲zabbix_monitor_test.py

在這裏插入圖片描述

2)信息模板的類型選擇:問題模板

主題:
Problem: {EVENT.NAME}
消息:
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}

在這裏插入圖片描述
3)設置報警媒介類型的選項
在這裏插入圖片描述
4) 部署python腳本
監控腳本應該存放到/usr/lib/zabbix/alertscripts目錄下

cat /etc/zabbix/zabbix_server.conf
#查看監控腳本位置
AlertScriptsPath=/usr/lib/zabbix/alertscripts

設置zabbix_agent允許以root用戶運行,確保可以執行python腳本

vim /etc/zabbix/zabbix_agentd.conf
AllowRoot=1

設置後重啓zabbix_agent,查看zabbix-agent的狀態

systemctl restart zabbix-agent
systemctl status zabbix-agent

zabbix_monitor_test.py實現獲取監控信息,並往釘釘羣推送告警信息
腳本放到/usr/lib/zabbix/alertscripts/目錄下:

#!/usr/local/bin/python3
import time  # 時間模塊
import os, sys
import requests
import json


api_url = 'https://oapi.dingtalk.com/robot/send?access_token=25fad8baeaa9b07c16ab71e8c023398fb5ee1fe4b1f346af292899dff0ea8b36'
headers = {'Content-Type': 'application/json;charset=utf-8'}


# 往釘釘羣推送消息
def msg(text):
    json_text = {
        "msgtype": "markdown",
        "markdown": {
            "title": "編組狀態通知",
            "text": text
        }
    }
    print(requests.post(api_url, json.dumps(json_text), headers=headers).content)


if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

爲用戶設置報警媒介類型

這裏是爲管理員用戶設置釘釘告警
在這裏插入圖片描述
報警媒介選擇釘釘報警
在這裏插入圖片描述
要賦予用戶有讀寫權限
在這裏插入圖片描述

創建動作

1)添加動作
爲觸發器添加動作,選擇上面設置的觸發器,觸發器名稱爲:測試【數據接口主頁崩了]
監控項遇到問題,就會觸發動作,往釘釘羣中推送報警信息

在這裏插入圖片描述
如下圖所示選擇動作對應的觸發器:測試【數據接口主頁崩了]

在這裏插入圖片描述
2)設置操作
主題:故障{TRIGGER.STATUS},服務器:{HOSTNAME},發生:{TRIGGER.NAME}故障!
消息:
{
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
告警項目:{ITEM.NAME}
告警時間:{EVENT.DATE}{EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.VALUE}
}
在這裏插入圖片描述
3)設置恢復操作
操作類型:選擇通知所有參與者
主題:恢復{TRIGGER.STATUS},服務器:{HOSTNAME1}:{TRIGGER.NAME}已恢復
消息:{
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE}{EVENT.TIME}
故障持續時間:{EVENT.AGE}
恢復時間:{EVENT.RECOVERY.TIME}
告警等級:{TRIGGER.SEVERITY}
}
動作設置完如下圖所示:
在這裏插入圖片描述
成功設置了動作,動作名稱爲:網頁掛掉觸發釘釘告警
在這裏插入圖片描述

觸發監控項告警,測試往釘釘羣推送消息的功能

爲了觸發告警,設置狀態碼等於200觸發報警

{Zabbix server:web.test.rspcode[百度首頁,打開首頁].last()}=200

如下圖所示:成功觸發觸發器告警,往釘釘羣推送告警信息
在這裏插入圖片描述
釘釘羣收到的告警信息如下所示:
在這裏插入圖片描述
問題修復後,觸發動作恢復操作,會往釘釘羣裏推送問題已解決信息,如下圖所示:

#測試直接通過修改觸發器監控項的值修復問題
{Zabbix server:web.test.rspcode[百度首頁,打開首頁].last()}<>200

在這裏插入圖片描述

往釘釘羣推送消息,參考這篇博客:利用釘釘接口往釘釘羣推送信息](https://blog.csdn.net/zhengzaifeidelushang/article/details/106208515)

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