觸發器是「評估」由監控項採集的數據並表示當前系統情況的邏輯表達式。express
當監控項用於採集系統的數據時,始終遵循這些數據是很是不切合實際的,由於這些數據始終在等待一個使人擔心或者值得關注的狀態。然而這個「評估」數據的工做能夠留給觸發器表達式。app
觸發器表達式容許定義一個什麼情況的數據是「可接受」的閾值。所以,若是接收的數據超過了可接受的狀態,則觸發器會被觸發 - 或將狀態更改成異常。dom
一個觸發器能夠擁有下面幾種狀態:tcp
值 | 描述 |
---|---|
OK | 這是一個正常的觸發器狀態。在舊版本的Zabbix中稱爲FALSE。 |
PROBLEM | 一般意味着發生了某些事情。例如,處理器的負載較高。在舊版本的Zabbix中稱爲TRUE。 |
每當Zabbix server接收到做爲表達式一部分的新值時,都會從新計算觸發器狀態(表達式)。函數
若是在表達式中使用基於時間的函數(nodata(), date(), dayofmonth(), dayofweek(), time(), now()),觸發器就會由Zabbix history syncer進程每30秒從新計算一次。若是在表達式中同時使用基於時間和非基於時間的函數,當接收到一個新值和每隔30秒都會從新計算觸發器的狀態。測試
你能夠構建觸不一樣複雜程度的觸發器表達式spa
詳情能夠閱讀zabbix官方文檔:https://www.zabbix.com/documentation/4.0/zh/manual/config/triggers/triggercode
下面咱們來配置一個觸發器,用來檢測http服務是否有啓動server
一、先在agent安裝並啓用http服務blog
[root@localhost ~]# service httpd status httpd is stopped [root@localhost ~]# service httpd start Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName [ OK ] [root@localhost ~]#
[root@localhost ~]# netstat -ntlp|grep http
tcp 0 0 :::80 :::* LISTEN 30275/httpd
[root@localhost ~]#
二、建立item
使用zabbix-get測試下
#返回1表服務運行中,0表服務掛了 [root@localhost ~]# zabbix_get -s 192.168.190.131 -k net.tcp.service[http,192.168.190.131,80] 1 [root@localhost ~]# zabbix_get -s 192.168.190.131 -k net.tcp.service[http,192.168.190.131,80] 0
建立觸發器:
在官網能夠查看全部觸發器支持的函數:https://www.zabbix.com/documentation/4.0/zh/manual/appendix/triggers/functions
參數 | 描述 |
---|---|
名稱 | 觸發器名稱. 名稱中能夠包含支持的 宏: {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {ITEM.VALUE}, {ITEM.LASTVALUE} 和{$MACRO} 。$1, $2…$9 宏能夠用來指第一,第二…第九表達式的常量。 備註: 若是引用了相對簡單的常量或明確的表達式,$1-$9宏將會正確解析。例如, 若是表達式是{New host:system.cpu.load[percpu,avg1].last()}>5,則「Processor load above $1 on {HOST.NAME}「將會自動更改爲 「Processor load above 5 on New host」 |
嚴重性 | 經過點擊對應的按鈕來設置所需的觸發器嚴重性。 |
異常表達式 | 用於定義異常條件的邏輯表達式。 |
事件成功迭代 | 事件成功迭代選項: 表達式 - OK事件基於與問題事件相同的表達式生成; 恢復表達式 - 若是問題表達式計算爲false,恢復表達式計算爲true,則生成OK事件; None - 在這種狀況下,觸發器將永遠不會返回到OK狀態。 從Zabbix 3.2.0開始支持 |
恢復表達式 | 邏輯表達式用於定義問題解決的條件。 只有在表達式表達式計算爲FALSE以後纔對恢復表達式進行評估。若是問題條件仍然存在,則不可能經過恢復表達式來解決問題。 此字段是可選的,僅在OK 事件生成選擇恢復表達式。 從Zabbix 3.2.0開始支持 |
異常事件生成模式 | 生成異常事件的模式: 單個 - 當觸發器第一次進入‘異常‘狀態時,生成一條單個事件。; 多重 - 每個觸發器「異常」評估都將生產一條事件。 |
事件成功關閉 | 若是選擇事件成功關閉: 全部問題 - 此觸發器的全部問題 全部問題若是標籤值匹配 - 只有那些匹配事件標籤值引起的問題。 從Zabbix 3.2.0開始支持。 |
匹配標記 | 輸入事件標記名稱以用於事件關聯。 若是在事件成功關閉中選擇了‘全部問題若是標籤值匹配’,在這種狀況下是強制性的。 從Zabbix 3.2.0開始支持。 |
標記 |
在agent stop http
[root@localhost ~]# service httpd stop Stopping httpd: [ OK ] [root@localhost ~]# service httpd start Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
查看效果: