根據使用zabbix這麼久的經驗,總結了一套zabbix比較實用的添加主機、監控報警的使用流程,供大家參考。
一:添加處理方法,就是如何報警
打開zabbix的管理------處理方法----create media type:
<a href="http://blog.51cto.com/attachment/201211/133646100.png" target="_blank"></a>
我用的是腳本發郵件的方式來報警的,腳本名字為mail.py。指的一提的是腳本存放位置,我的腳本是放在/usr/local/zabbix/bin/目錄下面,在這裡不寫目錄的據對路徑,直接寫腳本名字,他的路徑設定是在zabbix伺服器端的配置檔案中設定的,在zabbix_server.conf配置檔案中設定:AlertScriptsPath=/usr/local/zabbix/bin/
二:添加zabbix使用者群組,設定其郵箱位址等資訊
1:打開zabbix的管理------使用者---選擇使用者組下拉----create user group:
<a href="http://blog.51cto.com/attachment/201211/133940586.png" target="_blank"></a>
填寫個組名,設定需要的權限直接儲存就成,其他的不用填寫和選擇。
2:打開zabbix的管理------使用者---選擇使用者下拉----create user:
填寫使用者資訊
<a href="http://blog.51cto.com/attachment/201211/134025919.png" target="_blank"></a>
3:添加報警媒體,就是報警方式,因為是報警,【資訊】那項就不用勾選,資訊一般就是伺服器資訊發生變化時報警,這個一般沒有什麼意義,是以不勾選,不過你也可以選擇,根據個人喜好。類型的話就是選擇處理發放中的報警媒體,選擇你添加的。然後可以儲存資訊,完成添加使用者(Permissions那項沒有不填寫)。
<a href="http://blog.51cto.com/attachment/201211/134102162.png" target="_blank"></a>
三:報警觸發器觸發的動作設定
當監控項中的觸發器達到你設定的報警值之後,需要執行操作來發送郵件等動作。具體設定:
1:打開zabbix的系統配置---操作---- 選擇事件源為觸發器------create action:
<a href="http://blog.51cto.com/attachment/201211/134147651.jpg" target="_blank"></a>
2:觸發條件設定:
<a href="http://blog.51cto.com/attachment/201211/134222827.jpg" target="_blank"></a>
3:詳細操作設定,即滿足觸發條件之後執行什麼動作,這裡一般設定為發郵件之類的,設定收郵件的使用者(建議每個組對應一個使用者,這樣發郵件的時候容易設定發送對象):
<a href="http://blog.51cto.com/attachment/201211/134257761.jpg" target="_blank"></a>
四:zabbix中常用到的幾個key
Zabbix的key可以了解為zabbix的指令,執行這個key可以得到相應的結果。
1:監控端口的:net.tcp.port[,3306]
/usr/local/zabbix/bin/ -s192.168.8.120 -knet.tcp.port[,3306] 傳回1為192.168.8.120的端口3306存在,0為不存在
2:監控程序的:proc.num[mysqld]
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[mysqld] 傳回值為192.168.8.120中mysqld的程序數量
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -kproc.num[] 傳回值為192.168.8.120中所有的程序數量
3:檢視CPU核數的:system.cpu.num 傳回值為伺服器CPU的核數
4:檢視系統的系統啟動時間和目前時間:system.boottime、system.localtime 傳回值為系統啟動時間和目前時間,為時間戳格式
5:檢視系統的簡單資訊:system.uname 傳回值為192.168.8.120的系統資訊,類似于linux系統的uname -a指令
6:檢視windowns系統目前網卡的進出流量:net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系統的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一樣
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.in[192.168.8.120,bytes] 傳回值為IP為192.168.8.120的進流量,此值為計數值,機關為bytes,減去上次取得值,除以時間間隔為此段時間内的平均流量
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 傳回值為IP為192.168.8.120的出流量,此值為計數值,機關為bytes,減去上次取得值,除以時間間隔為此段時間内的平均流量
7:檢視系統記憶體大小:vm.memory.size[total],傳回值機關bytes
8:檢視檔案的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 傳回的是/var/log/syslog的大小,機關是:bytes
9:檢視檔案是否存在:vfs.file.exists[file] 檔案如果存在傳回1,不存在傳回0
10:檢視檔案的MD5:vfs.file.md5sum[file]檢視小檔案的MD5,傳回為MD5值(好像隻有2.0以上的版本有這個key)
11:自動發現網卡并監控流量和自動發現分區及分區挂載情況的兩個key:net.if.discovery,vfs.fs.discovery,windows和linux監控模闆中都有這模闆(2.0以上版本),應用即可
以上是常用的key,其實監控伺服器無非就是記憶體、硬碟占用、CPU負載、流量、伺服器和端口等情況。如果要監控其他的可以自定義key來實作,本人喜歡自定義key,寫個腳本來傳回,得到自己想要的監控結果,zabbix在這塊做的非常好,擴充性很強,支援各種腳本來實作自定義的key。
要啟用自定義key,需要在用戶端的配置檔案中啟用UnsafeUserParameters=1參數,然後在配置檔案的最下面來定義key,如:
UserParameter=free.disk,/usr/local/zabbix/bin/disk.py
free.disk為key的名字,/usr/local/zabbix/bin/disk.py為伺服器端調用free.disk這個key時執行的腳本,其結果就是free.disk的傳回值。腳本可以是任何可以運作的腳本語言。
五:建立監控模闆和監控項
其實在zabbix伺服器端安裝完成之後,就有許多自帶的監控模闆,基本上可以滿足大衆化的監控需求,不過其中有許多是沒有必要的監控項或是自己不感興趣的,比較備援,是以要做好監控的話,還是自定義模闆和監控項,這個監控模闆可以修改zabbix系統自帶的,也可以自己建立。以下為自己建立監控模闆。
1:建立監控模闆:
打開zabbix的系統配置---模闆----create template:
填寫模闆名字和模闆所在組儲存即可。
<a href="http://blog.51cto.com/attachment/201211/134340848.png" target="_blank"></a>
2:建立監控項:
打開zabbix的系統配置---模闆---選擇對應模闆中的監控項---create item:
<a href="http://blog.51cto.com/attachment/201211/134419421.jpg" target="_blank"></a>
3:建立監控項的觸發器:
打開zabbix的系統配置---模闆---選擇對應模闆中的觸發器---create trigger:
<a href="http://blog.51cto.com/attachment/201211/134455929.jpg" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201211/134521804.jpg" target="_blank"></a>
這裡說明下這個 N 值的大小
比如說我檢測被監控端的httpd 程序數為9個,這時這這個N的值就可以設定為 N=9 ,
當last value 最後一次檢測的值小于N,也就是小于9時,這個觸發器就會被觸發。
六:添加主機并應用模闆
添加主機有兩種方法,一個是手動添加,一個是通過zabbix的自動發現來自動添加主機。
1:手動添加主機
做完以上的設定,添加主機就是很簡單的事情了。打開zabbix的系統配置---主機—create host:
<a href="http://blog.51cto.com/attachment/201211/134552361.png" target="_blank"></a>
在這一步,隻填寫主機名、顯示名、agent接口中的IP位址,選擇主機所在組,其他的預設。
<a href="http://blog.51cto.com/attachment/201211/134627511.png" target="_blank"></a>
選擇模闆确認并儲存主機,其他的選項不需要設定,預設即可
添加完主機如下圖,可用性為綠色是正常,紅色為不可監控(主要是網絡不通或是沒有安裝zabbix用戶端),灰色為正在檢測zabbix的狀态:
<a href="http://blog.51cto.com/attachment/201211/134650497.png" target="_blank"></a>
2:通過自動發現自動添加主機:
打開zabbix的系統配置---自動發現—create discovery rule:
<a href="http://blog.51cto.com/attachment/201211/134714485.png" target="_blank"></a>
需要添加名稱,ip位址段(這個位址段以覆寫你所有IP的最小位址段為好),checks。其中checks最為重要,總共三項,隻填寫key,這裡用system.uname這個key。然後點選添加并儲存。這裡的意思是zabbix伺服器端掃描這個網段中的zabbix用戶端(用戶端端口預設為10050),掃描到之後取用戶端的system.uname值,這個值傳回的類似于linux系統中的uname –a指令,值為下面形式:
<a href="http://blog.51cto.com/attachment/201211/134741428.png" target="_blank"></a>
這個主要用于發現主機之後把主機自動配置設定到相應的組(比如linux組或是windowns組)中,并且應用相應的監控模闆。
當然,這個key值不一定要用system.uname,也可以用其他的key,首先zabbix用戶端支援這個key,在這用這個key可以區分不同類型的主機友善分組應用監控模闆。
打開zabbix的系統配置---操作-------事件源下拉選擇自動發現—create action:
<a href="http://blog.51cto.com/attachment/201211/134844599.png" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201211/134854963.png" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201211/134907253.png" target="_blank"></a>
這幾項的意思是當自動發現通過發現zabbix用戶端,并且接收到key的中包含linux字元,即把他添加到linux_servers組中,應用linux_server模闆。等一段時間即可檢視自動發現的結果。結果可以在zabbix首頁中最下面有狀态,也可以在zabbix的狀态統計---自動發現中檢視,可以看到發現了多少,監控了多少。
到此為止,zabbix的監控設定說明完畢。
本文轉自 lover00751CTO部落格,原文連結:http://blog.51cto.com/wangwei007/1048154,如需轉載請自行聯系原作者