目錄
觸發器基礎概念
創建和管理觸發器
示例
定義一個觸發器
在 Zabbix 中,觸發器(Trigger)用于定義在監控數據滿足特定條件時觸發警報或動作。觸發器是實現監控告警和自動響應的核心組件之一。以下是關于 Zabbix 觸發器的詳細解釋和用法:
? ? ? ?我們觸發器的定義是:界定某特定的item采集到的數據的非合理區間或非合理狀態。通常為邏輯表達式。 邏輯表達式(閾值):通常用于定義數據的不合理區間,其結果如下: OK
(不符合條件):正常狀態 --> 較老的zabbix版本,其為FALSE; PROBLEM
(符合條件):非正常狀態 --> 較老的zabbix版本,其為TRUE; 一般,我們評定采樣數值是否為合理區間的比較穩妥的方法是——根據最后N次的平均值來判定結果;這個最后N次通常有兩種定義方式:
-
最近N分鐘所得結果的平均值
-
最近N次所得結果的平均值
觸發器基礎概念
-
觸發器條件:
- 觸發器基于監控項(Item)的數值定義條件。當監控項的數值滿足條件時,觸發器將被激活并執行相關的動作。
-
觸發器表達式:
- 觸發器使用表達式來定義條件,表達式由一個或多個函數組成,這些函數基于監控項的數值進行評估。例如,
{hostname:system.cpu.load.avg(5m)}>2.0
表示如果主機的 CPU 負載在過去5分鐘內平均超過2.0,觸發器將激活。
- 觸發器使用表達式來定義條件,表達式由一個或多個函數組成,這些函數基于監控項的數值進行評估。例如,
-
觸發器狀態:
- 觸發器可以處于以下幾種狀態:
- OK: 表示觸發器未激活,條件未滿足。
- 問題: 表示觸發器已激活,條件已滿足,可能需要采取響應措施。
- 未知: 表示監控數據不足或無法評估觸發器的條件。
- 觸發器可以處于以下幾種狀態:
創建和管理觸發器
在 Zabbix Web 界面上,你可以通過以下步驟創建和管理觸發器:
-
創建觸發器:
- 登錄 Zabbix Web 界面,導航到 Configuration -> Hosts -> Triggers -> Create trigger。
- 在創建觸發器時,定義觸發器的名稱、表達式、優先級和描述。
-
配置觸發器表達式:
- 觸發器表達式由以下部分組成:
{hostname:item.key.func(params)} operator value
- 示例表達式:
{host1:system.cpu.load.avg(5m)}>2.0
{host2:vm.memory.size[available].last()}<1000000
- 觸發器表達式由以下部分組成:
-
設置觸發器優先級:
- 每個觸發器都有一個優先級,用于確定觸發器在問題發生時通知的緊急程度。優先級分為信息、警告、一般、重要和嚴重。
-
定義操作:
- 在觸發器激活時,可以定義 Zabbix Server 執行的動作,如發送電子郵件、發送短信、運行腳本等。
-
啟用和禁用觸發器:
- 可以隨時啟用或禁用觸發器,以便在測試、維護或不需要時停止觸發器的監控和警報。
示例
假設我們有一個觸發器用于監控服務器的 CPU 負載情況:
- 名稱: High CPU load on {HOST.NAME}
- 表達式:
{host1:system.cpu.load.avg(5m)}>2.0
- 優先級: 一般
- 描述: 當服務器 {HOST.NAME} 的 CPU 負載在過去5分鐘內平均超過2.0時,觸發此警報。
通過創建和管理觸發器,可以根據具體需求對系統性能和狀態進行監控,及時響應和解決問題,確保系統的可靠性和穩定性。
定義一個觸發器
net.if.out[ens33,packets]#用于獲取指定網絡接口(在這里是 ens33)的輸出數據包數量(packets)。具體來說:#net.if.out:這部分指示 Zabbix 使用網絡接口的輸出數據統計。
#ens33:這是網絡接口的名稱或標識符,它指定了要監控的具體網絡接口。在不同的操作系統和網絡配置中,網絡接口名稱可能會有所不同。
#packets:表示監控的指標,即輸出的數據包數量。
?
菜單條目URL 是當出現報警信息時,可以直接點擊這個鏈接快速跳轉你設置的頁面,我在下面的圖中演示了復制一個URL粘貼到這里。
選擇合適的規則點擊插入
?
?現在添加好了觸發器,來到192.168.226.129主機測試,在主機中下載一些東西
比如我下載了mysql
yum install -y mysql-server
回到監控頁面看信息
?
因此可以看到當數據超過觸發器的規則就會出現報警。