Zabbix完整的監控配置流程可以簡單描述為:
Host groups(主機組)→Hosts(主機)→Applications(監控項組)→Items(監控項)→Triggers(觸發器)→Event(事件)→Actions(處理動作)→User groups(用戶組)→Users(用戶)→Medias(告警方式)→Audit(日志審計)
2. 添加主機組
分組的目的是將同一屬性的主機歸類,如果你不想將新添加的主機歸納為自定義的分組,可以使用默認的分組。
配置主機組,打開前端Web頁面,單擊Configuration→Host groups 如圖2-1所示。
圖2-1
主機組中包含主機,也可以包含模板。
建議:對同一屬性的主機或模板,盡量歸納到分組,方便以后管理。分組原則建議如下。
q 以地理位置的緯度進行划分。
q 以業務為單位划分組。
q 以機器用途划分。
q 以系統版本划分。
q 以應用程序花分組。
q 其他方式等。
按組划分的好處是方便分組管理,如圖2-2所示,就是以分組划分的實例。
圖2-2
2.1 添加新的主機組
1.點擊→Host groups上的按鈕Create host group,如圖2-3所示。
圖2-3
2.單擊后會出現一個添加新主機組的界面,如圖2-4所示。
圖2-4
在圖2-4中”Group name”是組的名稱:”Host Host in”是選擇那些設備屬於這個新添加的組。
3.單擊Save保存,新添加的主機組就可以顯示在主機組列表中,如圖2-5所示。
圖2-5
4.如果想在數據庫中查看主機組,運行如下語句即可,如圖2-6所示。
mysql> select * from zabbix.groups; 查詢主機組
圖2-6
3. 添加模板
監控項、觸發器、圖形、Web、Discovery等都是存在於主機之上的,由於多個主機都會用相同的監控配置,因此,可以對這部分同類的數據進行歸納抽象,即將這些數據做成模板。當我們需要對其他監控數據進行配置的時候,只需要對相對應的主句添加對應的模板即可。
1.配置模板的步驟為:單擊→Configuration→Templates→Create template 如圖3-1所示。
圖3-1
2.創建模板,依次單擊Templates→Create template,如圖3-2所。
圖3-2
3.填入模板名稱和所屬的組,如圖3-3所示。
圖3-3
4.模板具有繼承的功能(將一個模板在另外一個模板中使用),如圖3-4所示。
圖3-4
搜索當前已經存在的模板,然后單擊Add添加。
5.模板中也可以設置宏,如圖3-5所示。
宏主要是對變量定義,設置宏的作用是方便后面再Items、Trigger中引用,在模板中配置一個宏,在不同的主機對該宏設置不同的變量值,從而達到模板通用的目的。
圖3-5
6.查看新建的模板,如圖3-6所示。
圖3-6
可以看到,Items中已經有三個Items了,是繼承與Template OS Linux模板的。以后會詳細講解如何在模板中添加其他的Items。
4. 添加主機
1.添加主機的目的是對具體的設備進行監控,步驟為:依次單擊Configuration→Hosts→Create host,如圖4-1所示。
圖4-1
2.在圖4-1中單擊Create host,出現如圖4-2所示的界面。
圖4-2中各參數的詳細說明如表4-1所示。
圖4-2
表4-1
參數 |
描述 |
||
主機名(Host name) |
輸入一個不重復的主機名。編輯該名稱對應客戶端的配置文件時,主機名這一項必須與此處輸入的值相同。 |
||
訪問名(Visible name) |
如果設置該名字,那么它將出現在主機列表、地圖等地方。 |
||
群組(Group in groups) |
選擇主機所屬的群組。一個主機必須屬於至少一個主機組。 |
||
新建主機組(New group) |
一個新的群組將被 ,然后自動連接到該主機上。如果為空,該項將被忽略。 |
||
接口協議(Agent interfaces) |
一個主機支持的主機接口協議包括:Agent、SNMP、JMX、IPMI,如果想增加一個新的接口,單擊”Add”按鈕,然后輸入IP/DNS、連接項、端口等信息。 |
||
IP地址(IP address) |
要監控主機的IP地址(可選項、默認是IP) |
||
DNS名稱(DNS name) |
要監控主機DNS能扣解析的名稱(可選項) |
||
與Agent通信方式(Connect to) |
單擊對應名稱的按鈕 |
IP |
連接要監控主機的IP地址(推薦) |
DNS |
要監控主機能夠正常解析的DNS |
||
端口(Port) |
TCP協議的端口,Zabbix客戶端使用的默認值是10050 |
||
通過代理服務器進行監控 (Monred by proxy) |
主機可以通過Zabbix服務器或者Zabbix的一個代理去監控客戶端 |
||
狀態(enabled) |
勾選則開啟 |
3.選擇模板,如圖4-3所示。
圖4-3
4.搜索模板,如圖4-4所示。
圖4-4
5.搜索出來 后,打擊Add添加該模板,如圖4-5所示。
圖4-5
6.添加了兩個模板,單擊Add保存,如圖4-6所示
圖4-6
5. Graphs配置
Graphs是將數據展示為圖像,以視覺化形式展示,Graphs的配置存在於主機和模板中。
1.在所在的主機模板中,選擇Graphs,如圖5-1所示。
圖5-1
2.單擊“Create graph”按鈕,如圖5-2所示。
圖5-2
3.出現新建圖形的界面,輸入Name,選擇所需要的Items,如圖5-3所示。
圖5-3
4.單擊Graphs,可以看到其中已經添加了一個Graphs,如圖5-4所示。
圖5-4
5.單擊剛才創建的Graphs,選擇preview,即可查看圖形,如圖5-5所示。
圖5-5
6.如果要查看所有的圖形,單擊Monitoring→Graphs,如圖5-6所示。
圖5-6
7.選擇對應的Group、Host、Graph,如圖5-7所示。
圖5-7
8.顯示圖形如圖5-8所示。
圖5-8
6. Screen配置
Screen將多種信息放在一起展示,便於集中展示某個Host的多個信息,或是將多個Host的同一種信息放在一起顯示,這些信息可以為Graphs、Maps、Serverinfo等,幾乎涵蓋Zabbix所有的監控信息。
1.通過單擊Configuration-→Screens→Create screen來創建,創建時定義Screen的行數和列數(如圖6-1至圖6-3所示),單擊單元格內的Change,添加相應的元素。
圖6-1
圖6-2
圖6-3
2.單擊創建Screen名稱,如圖6-4所示
圖6-4
3.單擊Change,如圖6-5所示
圖6-5
4.出現如圖6-6所示
圖6-6
5.選擇對應的Graphs,這里選擇選擇cpuload圖形,如圖6-7所示
圖6-8
6.單擊update保存,如圖6-9所示
圖6-9
7.配置好后,通過單擊Monitor→Screen,選擇相應的Screen組,如圖6-10所示。
圖6-10
7. 添加Items
7.1 Items的含義
Items就是監控項可以配置獲取監控數據的方式、取值的數據類型、獲取數值的間隔、歷史數據保留時間、趨勢數據保存時間、監控Key的分組等。
檢測周期的長短直接影響了數據的獲取,也影響了ZabbixServer的性能。
監控的方式非常多,Zabbix支持的監控方式如圖7-1所示。
監控項存在於Zabbix.items表中。
mysql> select * from zabbix.items;
圖7-1
7.1.1自定義Items
Items可以存在於模板(Template)中,也可以存在於主機(Host)中,模板的作用是可以復用,對需要重復配置的監控項歸類。
下面演示如何在Template OS Linux模板中添加一個Items,Key為vm.memory.size[total]
Template OS Linux 模板中默認不存在統計總內存的大小的Items,故我們需要自己添加,添加方法:單擊Configuration→Templates,如圖7-2所示
圖7-2
2.找到Template OS Linux,單擊Items,如圖7-3所示。
圖7-3
3.單擊Create items創建Item,如圖7-4所示。
圖7-4
4.單擊Select按鈕,列出Agent所有自帶的Key,如圖7-5所示。由於vm.memory.size[]這個key是Zabbix自帶的,所以會列出來。這里需要注意,如果是自己定義的Key,單擊Select送無法看到的。自己定義的key在這里手動添加即可。
圖7-5
5.這個默認的key方括號中是可選的參數,通過Agent官網文檔知道,獲取總的內存大小的參數是Total如圖7-6所示。
圖7-6
6.如何確認我們的Key添加正確?用Zabbix-get來去值,用zabbix_get來獲取,語句如下
[root@linux-node1 ~]# zabbix_get -s 10.0.0.4 -k vm.memory.size[total]
510238720
確保能獲取到的值,就說明Key配置是正確的。提示:zabbix_get僅能測試獲取Agent監控方式的Key值,不能獲取其他類型的數據。
7.最終添加的結果如圖7-7所示。
圖7-7
7.2 自定義Items key
用戶自定義參數:用戶自定義參數(UserParameter)僅支持Agent方式,對於其他方式,它是不支持的。
q 1.Key自定義的語法格式
在/etc/zabbix/zabbix_agentd.conf中配置參數,寫法如下。
UserParameter=key,command
除了上面這種寫法,還支持參數傳遞的寫法,具體如下。
UserParameter=key[*],command $1 $2 $3 ….
q 2.自定義Key中的特殊字符處理
如果Userparameter包含\’”`*?[]{}~$!&;()<>|#@這些字符,默認情況下,Zabbix對這些參數是無法正常處理的,需要在Zabbix_agentd.conf中開啟參數UnsafeUserParameters,並將其值設置為1,語句如下。
[root@linux-node1 ~]#vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
q 3.自定義Key的例子
UserParameter=login-user,uptime|awk -F ' ' '{print $4}'
然后重啟zabbix_agent 服務(注意:修改配置文件必須重啟。)
[root@linux-node1 ~]# zabbix_get -s 10.0.0.4 -k login-user ß運行測試命令,查看下Key
2
q 4.子配置文件的配置
為了便於維護和分類管理,UserParameter的內容可以單獨寫一個配置文件。
[root@linux-node1 ~]#vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/
Include是zabbix_agentd.conf中部分內容的子配置文件,注意:zabbix_agentd.conf.d/文件下所有的配置文件都會被當做子配置文件,如果有重復,會導致客戶端Agent啟動失敗。
q 5.用戶自定義參數總結
自定義Key的語法。
特殊字符的處理。
子配置文件的注意事項。
注意:
1.用戶自定義參數一定要包含一個key和一個命令,也可以是一個腳本
2.key在整個系統是唯一的
3.用戶自定義參數返回值,最大返回512兆
4.自定義完后,重啟服務測試Key
8.宏的配置
宏的作用是便於在模板、Items、Trigger中的引用。宏的名稱為{$名稱},宏的字符范圍為A~Z、0-9、_
8.1全局宏
作用范圍為:模板、主機。
配置步驟為:單擊Administration→General→Macros,如圖8-1所示。
圖8-1
選擇Macros下拉菜單,如圖8-2所示。
圖8-2
8.2模板宏
作用范圍:當前模板。
配置步驟為:單擊Configuration→Templates,再單擊模板名稱(圖中為Templates OS Linux)最后單擊Macros,如圖8-3所示。
圖8-3
8.3主機宏
作用范圍為:當前主機。
配置步驟為:Configuration→Hosts→Zabbix server→Macros,如圖8-4所示。
圖8-4
9.維護時間
在某些場合中,我們不需要進行告警,例如:業務的正常維護,所以維護時間就顯得特別有用。
1.配置維護時間如圖9-1所示。
圖9-1
2.這里的維護時間和Action中的配置緊密相關,如圖9-2所示。
圖9-2
10.事件確認
1.當事件出現狀態為Problem的時候,在菜單欄中單擊Monitoring→Events,在其中可以查看事件的詳細信息,如圖10-1所示。
圖10-1
2.單擊圖10-2中的Ack列的No,彈出如圖10-2所示的界面,輸入內容,確認並返回結果。
圖10-2
3.看到Ack已經變Yes狀態后,說明有用戶修改過該狀態,如圖10-3所示。
圖10-3
4.單擊Yes,可以查看具體的文字內容,如圖10-4所示。
圖10-4
11.數據庫導入導出配置
Zabbix提供將所有的配置導出為標准的XML格式的文件,同樣,也支持導入標准格式的XML配置文件。
導入/導出功能可以把之前做的功能進行模板化,與Cacti模板的原理相同。
單擊Configuration→Templates/Host→Export/Import→Export,勾選要導出的模板(設備),選擇Export,即可導出XML文件到本地。