觸發器
觸發器是“評估”由監控項采集的數據並表示當前系統狀況的邏輯表達式。
當監控項用於采集系統的數據時,始終遵循這些數據是非常不切合實際的,因為這些數據始終在等待一個令人擔憂或者值得關注的狀態。然而這個“評估”數據的工作可以留給觸發器表達式。
觸發器表達式允許定義一個什么狀況的數據是“可接受”的閾值。因此,如果接收的數據超過了可接受的狀態,則觸發器會被觸發 - 或將狀態更改為異常。
一個觸發器可以擁有下面幾種狀態:
值 | 描述 |
---|---|
OK | 這是一個正常的觸發器狀態。在舊版本的Zabbix中稱為FALSE。 |
PROBLEM | 通常意味着發生了某些事情。例如,處理器的負載較高。在舊版本的Zabbix中稱為TRUE。 |
每當Zabbix server接收到作為表達式一部分的新值時,都會重新計算觸發器狀態(表達式)。
如果在表達式中使用基於時間的函數(nodata(), date(), dayofmonth(), dayofweek(), time(), now()),觸發器就會由Zabbix history syncer進程每30秒重新計算一次。如果在表達式中同時使用基於時間和非基於時間的函數,當接收到一個新值和每隔30秒都會重新計算觸發器的狀態。
你可以構建觸不同復雜程度的觸發器表達式
詳情可以閱讀zabbix官方文檔:https://www.zabbix.com/documentation/4.0/zh/manual/config/triggers/trigger
下面我們來配置一個觸發器,用來檢測http服務是否有啟動
1、先在agent安裝並啟用http服務
[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 ~]#
2、創建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
查看效果: