一、Zabbix監控報警過程
在一次完整的Zabbix配置中,需要涉及到的術語有以下幾項:
1.host groups:主機組,按生產需求將功能類別相近或相同的主機進行分組,便於管理。
2.host:主機
3.application:應用集,按需求將功能相近的監控項分類管理。
4.item:監控項,最終要的一項配置,監控的數據來源。
5.trigger:觸發器,當定義將空項的閾值。當觸發器觸發后會產生事件(events)並被記錄。
6.action:當監控項滿足設定的觸發條件時,定義Zabbix接下來的動作。在action中包括兩類動作(conditions,operations),可以定義告警信道,如選擇郵件或短信。
7.graph:圖形,將采集的數據以圖形的形式直觀的表現出來。
二、監控項(item)添加示例
在上一篇Zabbix博客中我們已經成功搭建了一個簡單的Zabbix監控架構,並添加了一台名為n1的agent主機,下面來演示如何添加監控項。
1.點擊進入要添加監控項的主機選擇監控項並創建
net.if.out[]為Zabbix內建的key,意思是指定網絡接口接收的某項數據,具體可自定義。中括號內可以根據需要設置參數。net.if.out[]內可填入網卡名稱和該網卡中的各指標。
在n1中輸入ifconfig命令:
~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.11.136 netmask 255.255.255.0 broadcast 192.168.11.255 inet6 fe80::f591:67e7:4396:df5c prefixlen 64 scopeid 0x20<link> ether 00:0c:29:26:47:40 txqueuelen 1000 (Ethernet) RX packets 1320 bytes 88400 (86.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 249 bytes 23784 (23.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
※標顏色的項便是可填入的參數。以被動監控為例,監控項key的實質就是Zabbix-server端向Zabbix-agent端發送監控請求,Agent獲取結果后再返回給Server端。可以將key理解為包含特定指令的函數。功能與zabbix_get命令類似,在Zabbix-server端輸入以下命令也能得到想要的值。
~]# zabbix_get -s 192.168.11.136 -p 10050 -k "net.if.out[ens33,bytes]" 2622655
2.配置觸發器(trigger)
觸發器通常用來定義數據的不合理區間,在Zabbix3.0中,滿足條件時狀態為PROBLEM,反之狀態為OK。
上面例子中每秒上傳字節數設置為25,因為太小了看不出效果,我這里改成了350{test:net.if.out[ens33,bytes].last(#1)}>350
如上圖,配置完成后就能很直觀的看到每秒上傳的字節數了,包括最大值、最小值、平均值等,還有觸發器閾值。下面在n1主機上發送ping包,增加主機的上傳字節數,觀察效果。
~]# ping www.baidu.com
3.圖形(graph)配置
配置圖形是為了直觀的觀測被監控數據的變化情況,在本示例中的做默認配置。
4.配置動作(action)
Action有兩個重要的配置項:條件(conditions)和操作(operations)
在條件(conditions)中定義觸發器觸發action的條件。默認是在系統處在非維護且觸發器值為PROBLEM時激活Action。
在操作(operations)選項中用來定義當Action被激活后Zabbix實施的操作。操作類型有種:遠程命令和發送消息,遠程命令是指自動在Agent端運行指令或腳本,使系統先自動修復。發送消息是指使用某一通信信道將PROBLEM消息通知給指定用戶。在設置時間內修復不成功后進行下一步驟的操作,並持續步進操作等級。