zabbix中監控項僅負責收集數據,而一般收集數據的目的還包括在某指標對應的數據超出合理範圍時給相關人員發送告警信息,"觸發器"正式 用於爲監控項所收集的數據定義閾值,每個觸發器僅能管理至一個監控項,可是能夠爲一個監控項同時使用多個觸發器;意思就是,爲一個監控項定義多個具備不一樣閾值的觸發器,能夠實現不一樣級別的報警。一個觸發器由一個表達式構成,它定義了監控項所採集的數據的一個閾值,一旦某次採集的數據超出了觸發器定義的閾值,觸發器狀態將會轉爲"problem";而當採起的數據再次迴歸至合理的範圍內時,其狀態將從新返回到"OK"。 html
一、觸發器表達式 正則表達式
觸發器表達式的格式爲 函數
{<server>:<key>.<function>(<parameter>)}<operator><constant> 測試
某主機上某個key使用某個函數(參數)所得的值 和 設定的值比較 spa
server:主機名稱 3d
key:主機上相應監控項的key 日誌
function:評估採集到的數據是否在合理範圍內時所使用的函數,其評估過程能夠根據採起的數據、當前時間及其它因素進行 regexp
二、觸發器表達式支持的函數 server
avg 求平均值 htm
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 求和
三、觸發器實例
觸發器能夠建立在模板或者某臺主機上
例一:自定義觸發器監控登陸用戶數,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次不可到達