zabbix Server 4.0 觸發器(Trigger)篇
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
一.觸發器(Trigger)概述
1>.上一篇博客我們介紹了“內置item使用案例”,item(監控項)僅負責收集數據,而通常收集數據的目的還包括在某指標對應的數據超出合理范圍時給先關人員發送告警信息,“觸發器”正是用於為監控項所收集的數據定義閾值。
2>.每一個觸發器僅能關聯至一個監控項,但可以為一個監控項同時使用多個觸發器(事實上,為一個監控項預定義多個具有不同閾值的觸發器,可以實現不同級別的報警功能)。
3>.一個觸發器由一個表達式構成,它定義了監控項所采取的數據的一個閾值,一旦某次采集超出了此觸發器定義的閾值,觸發器狀態將會轉換為“Problem”;而當采取的數據再次回歸至合理范圍內時,其狀態將重新返回到“OK”。
二.觸發器(Trigger)表達式
1>.觸發器表達式高度靈活,可以以之創建出非常復雜的測試條件。
2>.基本的觸發器表達式格式如下:
{<server:<key>.<function>(<parameter>)}<operator><constant> 下面我們對每一個位置參數進行說明 server: 主機名稱。 key: 主機上關系的相應監控項的key。 function: 評估采集到的數據是否在合理范圍內時所使用的函數,其評估過程可以根據采集的數據,當前時間及其它因素進行;目前,觸發器所支持的函數有avg,count,change,data,dayofweek,delta,diff,iregexp,last,max,min,nodata,now,sun等。 parameter: 函數參數,大多數數值函數可以接受秒數為其參數,而如果在數值參數之前使用“#”作為前綴,則表示為最近幾次的取值,如sum(300)表示300秒內取值之和,而sum(#10)則表示最近10次取值之和。此外,avg,count,last,min和max還支持使用第二個參數,用於完成時間限定,例如:max(1h,7d)將返回一周之前的最大值。 operator: 用於走比較的操作,如:"/",“*”,">","<","#","=","&","|","+"等等。 constant: 是一個常數,即可以理解是一個固定值,采集的結果通過預定義的操作符合和改值進行比較后判斷是啟用觸發器。
舉個例子:
{node101.yinzhengjie.org.cn:system.cpu.load[all,avg1].last(0)}>3
上述案例表示主機"node101.yinzhengjie.org.cn"上所有CPU的過去1分鍾內的平均負載和最后一次取值大於3時將觸發狀態變化。對last函數來說,last(0)相當於last(#1)。
三.觸發器(Trigger)間的依賴關系
在一個網絡中,主機的可用性之間可能存在依賴關系。如下圖所示:
我們假設Zabbix Server和我們被監控的打印機,路由器等網絡設備,服務器都連接到核心交換機上了,如果此時的核心交換宕機了(即該設備變得不可用),其背后的所有主機都無法正常訪問。如果所有主機都配置了觸發器並定義了相關通知功能,相關人員將會接收到許多告警信息,這既不利於快速定位問題,也會浪費資源。正確定義的觸發器依賴關系可以避免類似情況的發生,它將使用通知機制僅發送最根本問題先關的告警。(也就是說我們合理定義了觸發器的依賴關系,當核心交換機宕機時,並不會所有配置告警都觸發,而是先判斷核心交換機是否掛掉,把最精准的故障定位報出來!)
需要注意的是,目前zabbix不能夠直接定義主機間的依賴關系,其依賴關系僅能通過觸發器來定義。
四.觸發器(Trigger)等級
觸發器等級用於標識時間的嚴重性。zabbix支持以如下表 所示的等級。下圖摘自官方網站:https://www.zabbix.com/documentation/4.0/manual/config/triggers/severity(中文鏈接戳我)。
五.創建觸發器(Trigger)
1>.如下圖所示,找到我們要定義觸發器的主機
2>.點擊Create trigger
3>.根據zabbix內置的選擇器,我們根據匹配規則自動生成觸發器表達式
4>.點擊添加(注意下圖只是配置Trigger頁面,點擊圖中的“Dependencies”可以配置相應的依賴關系!)
5>.添加觸發器成功
6>.查看主機配置,發現多出來一個觸發器
7>.查看觸發器相關信息
8>. 查看最新的數據
9>.查看item的Graph圖形(如果有遇到中文亂碼問題,可參考:https://www.cnblogs.com/yinzhengjie/p/10386196.html中的解決方案。)
六.模擬實驗環境讓觸發器生效
1>.在zabbix server服務器發包到node102.yinzhengjie.org.cn主機上

[root@node101.yinzhengjie.org.cn ~]# yum -y install epel-release #安裝epel源 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 mysql-connectors-community | 2.5 kB 00:00:00 mysql-tools-community | 2.5 kB 00:00:00 mysql56-community | 2.5 kB 00:00:00 updates | 3.4 kB 00:00:00 zabbix | 2.9 kB 00:00:00 zabbix-non-supported | 951 B 00:00:00 Resolving Dependencies --> Running transaction check ---> Package epel-release.noarch 0:7-11 will be installed --> Finished Dependency Resolution Dependencies Resolved ====================================================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================================================== Installing: epel-release noarch 7-11 extras 15 k Transaction Summary ====================================================================================================================================================================================== Install 1 Package Total download size: 15 k Installed size: 24 k Downloading packages: epel-release-7-11.noarch.rpm | 15 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : epel-release-7-11.noarch 1/1 Verifying : epel-release-7-11.noarch 1/1 Installed: epel-release.noarch 0:7-11 Complete! [root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# yum -y install hping3 #安裝hping3工具包 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 6.8 kB 00:00:00 * base: mirrors.aliyun.com * epel: mirror.premi.st * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com epel | 4.7 kB 00:00:00 (1/3): epel/x86_64/group_gz | 88 kB 00:00:00 (2/3): epel/x86_64/updateinfo | 992 kB 00:00:03 (3/3): epel/x86_64/primary_db | 6.7 MB 00:00:06 Resolving Dependencies --> Running transaction check ---> Package hping3.x86_64 0:0.0.20051105-24.el7 will be installed --> Processing Dependency: libpcap.so.1()(64bit) for package: hping3-0.0.20051105-24.el7.x86_64 --> Processing Dependency: libtcl8.5.so()(64bit) for package: hping3-0.0.20051105-24.el7.x86_64 --> Running transaction check ---> Package libpcap.x86_64 14:1.5.3-11.el7 will be installed ---> Package tcl.x86_64 1:8.5.13-8.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ====================================================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================================================== Installing: hping3 x86_64 0.0.20051105-24.el7 epel 96 k Installing for dependencies: libpcap x86_64 14:1.5.3-11.el7 base 138 k tcl x86_64 1:8.5.13-8.el7 base 1.9 M Transaction Summary ====================================================================================================================================================================================== Install 1 Package (+2 Dependent packages) Total download size: 2.1 M Installed size: 4.9 M Downloading packages: warning: /var/cache/yum/x86_64/7/epel/packages/hping3-0.0.20051105-24.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY Public key for hping3-0.0.20051105-24.el7.x86_64.rpm is not installed (1/3): hping3-0.0.20051105-24.el7.x86_64.rpm | 96 kB 00:00:00 (2/3): tcl-8.5.13-8.el7.x86_64.rpm | 1.9 MB 00:00:03 (3/3): libpcap-1.5.3-11.el7.x86_64.rpm | 138 kB 00:00:04 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 466 kB/s | 2.1 MB 00:00:04 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) <epel@fedoraproject.org>" Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5 Package : epel-release-7-11.noarch (@extras) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1:tcl-8.5.13-8.el7.x86_64 1/3 Installing : 14:libpcap-1.5.3-11.el7.x86_64 2/3 Installing : hping3-0.0.20051105-24.el7.x86_64 3/3 Verifying : 14:libpcap-1.5.3-11.el7.x86_64 1/3 Verifying : 1:tcl-8.5.13-8.el7.x86_64 2/3 Verifying : hping3-0.0.20051105-24.el7.x86_64 3/3 Installed: hping3.x86_64 0:0.0.20051105-24.el7 Dependency Installed: libpcap.x86_64 14:1.5.3-11.el7 tcl.x86_64 1:8.5.13-8.el7 Complete! [root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# hping3 --faster node102.yinzhengjie.org.cn HPING node102.yinzhengjie.org.cn (eth0 172.30.1.102): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=172.30.1.102 ttl=64 DF id=18150 sport=0 flags=RA seq=0 win=0 rtt=0.4 ms len=46 ip=172.30.1.102 ttl=64 DF id=18233 sport=0 flags=RA seq=1 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18250 sport=0 flags=RA seq=2 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18269 sport=0 flags=RA seq=3 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18302 sport=0 flags=RA seq=4 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18342 sport=0 flags=RA seq=5 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18396 sport=0 flags=RA seq=6 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18451 sport=0 flags=RA seq=7 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18465 sport=0 flags=RA seq=8 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18543 sport=0 flags=RA seq=9 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18583 sport=0 flags=RA seq=10 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18671 sport=0 flags=RA seq=11 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18762 sport=0 flags=RA seq=12 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18852 sport=0 flags=RA seq=13 win=0 rtt=0.3 ms len=46 ip=172.30.1.102 ttl=64 DF id=18921 sport=0 flags=RA seq=14 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=18975 sport=0 flags=RA seq=15 win=0 rtt=0.3 ms len=46 ip=172.30.1.102 ttl=64 DF id=19025 sport=0 flags=RA seq=16 win=0 rtt=0.3 ms len=46 ip=172.30.1.102 ttl=64 DF id=19115 sport=0 flags=RA seq=17 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19200 sport=0 flags=RA seq=18 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19226 sport=0 flags=RA seq=19 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19239 sport=0 flags=RA seq=20 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19313 sport=0 flags=RA seq=21 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19411 sport=0 flags=RA seq=22 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19487 sport=0 flags=RA seq=23 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19506 sport=0 flags=RA seq=24 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19598 sport=0 flags=RA seq=25 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19698 sport=0 flags=RA seq=26 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19781 sport=0 flags=RA seq=27 win=0 rtt=0.4 ms len=46 ip=172.30.1.102 ttl=64 DF id=19785 sport=0 flags=RA seq=28 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19805 sport=0 flags=RA seq=29 win=0 rtt=0.4 ms len=46 ip=172.30.1.102 ttl=64 DF id=19838 sport=0 flags=RA seq=30 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19904 sport=0 flags=RA seq=31 win=0 rtt=0.4 ms len=46 ip=172.30.1.102 ttl=64 DF id=19921 sport=0 flags=RA seq=32 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=19994 sport=0 flags=RA seq=33 win=0 rtt=0.2 ms len=46 ip=172.30.1.102 ttl=64 DF id=20088 sport=0 flags=RA seq=34 win=0 rtt=0.2 ms ..........
2>.查看最新數據的流量圖
3>.查看zabbix的Dashboard界面
七.item(監控項)可以定義多個觸發器
1>.克隆我們之間的觸發器,我們將觸發器的值稍作修改
2>.修改觸發器的值和觸發器的名稱
3>.重復上述步驟,我們可以再clone一個觸發器,添加成功后,我們就會成功添加3個觸發器
4>.查看item的觸發器個數
5>.查看Graph圖形
6>.查看Dashboard