ZabbixWeb監控變頻器
阿新 • • 發佈:2018-12-03
ZabbixWeb監控變頻器
前言
觀看2018年Zabbix大會有大佬用指令碼實現
變頻器
概念功能
這個變頻器是怎麼樣一個概念呢?
我們知道Zabbix裡每次監控間隔時間都是固定的,變頻器所做的事情就是改變監控頻率
。
變頻器有什麼好處?
在某些場景,我們會擔心因網路抖動引起的誤報,有些告警閾值是兩次出現問題才觸發。這樣的配置有個缺點:問題發現時間是監控頻率 x 2
,變頻器所做的事情就是:第一次發現閾值有問題,手動觸發一次,並將結果存庫,這樣問題發現時間是監控頻率 + 資料採集時間
,極大縮短了問題發現時間。
方案
聽完這個有趣的監控思路,自己也想嘗試一番。
想在監控站點可用性上加快故障發現時間,普通的監控項變頻器可以採用zabbix_get
zabbix_sender
配合使用,實現變頻器功能;但經過一番測試,ZabbixWeb是特殊型別,需要採用其他方案。
經過一番簡單的思考,大致方案如下
- 需要額外開發一個仿
ZabbixWebMonitor
的指令碼. - 傳入
itemid
,撈取資料庫相關資訊進行請求. - 請求完將相關資料直接存庫.
實現
初步思考方案是簡單而美好的,但是在後續實踐過程中碰到一些問題
- 存入資料庫,Trigger不生效問題
還是太過年輕了,查了官網發現:ZabbixServer Trigger讀記憶體快取值
而非直接讀取資料庫
. - 資料庫插值行不通,如何插入
WebMonitor
抓包分析zabbix_sender主動傳值,發現tcp協議request只支援
agent data
跟trapper data
,分別對應主動模式的item與自動捕獲資料的item,WebMonitor是屬於特殊item,無法直接插入值.
經過幾番測試跟思考,最終方案如下:
#1 每個Web額外新增一個Trapper型別item.
#2 原先觸發器進行改造,改為判斷兩項的總和.
效果
原來的Trigger
最後三次中加起來超過兩次異常觸發告警
看最新資料11分40秒第一次發現故障
在12分41秒的時候發出告警,也就是從故障發生到發現時間經過了1分多鐘時間
加入變頻器後
Trigger改造
可以看到在第一次發現故障後4秒就觸發了告警器
47秒發現故障,51秒將請求結果插入庫,以及傳送到Zabbix trapper縮短了告警器觸發時間
後記
這種監控思路蠻有趣的,可以用在某些特定應用場景
指令碼地址: 傳送門