zabbix中監控項僅負責收集數據,而通常收集數據的目的還包括在某指標對應的數據超出合理范圍時給相關人員發送告警信息,"觸發器"正式 用於為監控項所收集的數據定義閾值,每一個觸發器僅能管理至一個監控項,但是可以為一個監控項同時使用多個觸發器;意思就是,為一個監控項定義多個具有不同閾值的觸發器,可以實現不同級別的報警。一個觸發器由一個表達式構成,它定義了監控項所采集的數據的一個閾值,一旦某次采集的數據超出了觸發器定義的閾值,觸發器狀態將會轉為"problem";而當采取的數據再次回歸至合理的范圍內時,其狀態將重新返回到"OK"。
1、觸發器表達式
觸發器表達式的格式為
{<server>:<key>.<function>(<parameter>)}<operator><constant>
某主機上某個key使用某個函數(參數)所得的值 和 設定的值比較
server:主機名稱
key:主機上相應監控項的key
function:評估采集到的數據是否在合理范圍內時所使用的函數,其評估過程可以根據采取的數據、當前時間及其它因素進行
2、觸發器表達式支持的函數
avg 求平均值
count 指定時間內或次數內數值統計
change 指定時間內或次數內倒數第2次於倒數第1次的差值,對於字符串,0沒有變化,1表示有變化;
date 當前日期
dayofweek 本周第幾天 dayofmonth 本月第幾天
delta 指定時間內或次數內最大值與最小值的差
diff 指定時間內或次數內倒數第2次於倒數第1次的值,有沒有不同;常用於監控文件
regexp 檢查最后一次采樣的數據是否能夠被指定的模式所匹配:1表示匹配,0表示不匹配
iregexp 不區分大小的正則表達式
last 最近采樣的數據
max、min、nodata沒有數據
now 返回時間戳
prev 倒數第二個采樣值
str 從最后一次的采樣中查找此處指定的字符串;0表示找到,1表示沒找到
strlen 字符串長度比較
sum 求和
3、觸發器實例
觸發器可以創建在模板或者某台主機上
例一:自定義觸發器監控登錄用戶數,zabbix的Template OS Linux模板中有Number of logged in users監控項,即監控當前登錄的用戶數,可以自定義觸發器來監控登錄個數,當觸發某個閾值如3的時候就發送報警
點擊:配置——>主機,選擇主機,點擊——>觸發器——>創建觸發器
觸發器名稱
創建觸發器表達式
對觸發器進行觸發報警測試
查看動作日志
例二:監控平均一分鍾內的cpu負載,操作步驟同上
觸發器表達式為{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5
最新的CPU負載值如果大於5,那么表達式會返回true,這樣一來觸發器狀態就改變為"problem"了
例三:監控/etc/passwd文件是否被修改(系統自帶監控項)
觸發器表達式為{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff(0)}>0
最新的checksum與上一次獲取到的checksum不同,表達式將會返回true. 我們可以使用同樣的方法監控系統重要的配置文件,例如/etc/passwd,/etc/inetd.conf等等
例四:監控主機網卡流量
觸發器表達式為{www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100K
當主機網卡eth0最后5分鍾內接收到的流量超過100KB那么觸發器表達式將會返回true
例五:監控主機是否可達
觸發器表達式為{zabbix.zabbix.com:icmpping.count(30m,0)}>5
表示最近30分鍾zabbix.zabbix.com這個主機超過5次不可到達
部分內容參考來源:https://www.cnblogs.com/zhaijunming5/p/6889336.html
