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)