根據使用zabbix這麼久的經驗,總結了一套zabbix比較實用的添加主機、監控報警的使用流程,供你們參考。mysql
一:添加處理方法,就是如何報警
打開zabbix的管理------處理方法----create media type:linux
![133646100.png](http://static.javashuo.com/static/loading.gif)
我用的是腳本發郵件的方式來報警的,腳本名字爲mail.py。指的一提的是腳本存放位置,個人腳本是放在/usr/local/zabbix/bin/目錄下面,在這裏不寫目錄的據對路徑,直接寫腳本名字,他的路徑設置是在zabbix服務器端的配置文件中設置的,在zabbix_server.conf配置文件中設置:AlertScriptsPath=/usr/local/zabbix/bin/
二:添加zabbix用戶和組,設置其郵箱地址等信息
1:打開zabbix的管理------用戶---選擇用戶組下拉----create user group:
![133940586.png](http://static.javashuo.com/static/loading.gif)
填寫個組名,設置須要的權限直接保存就成,其餘的不用填寫和選擇。
2:打開zabbix的管理------用戶---選擇用戶下拉----create user:
填寫用戶信息
![134025919.png](http://static.javashuo.com/static/loading.gif)
3:添加報警介質,就是報警方式,由於是報警,【信息】那項就不用勾選,信息通常就是服務器信息發生變化時報警,這個通常沒有什麼意義,因此不勾選,不過你也能夠選擇,根據我的喜愛。類型的話就是選擇處理髮放中的報警介質,選擇你添加的。而後能夠保存信息,完成添加用戶(Permissions那項沒有不填寫)。
![134102162.png](http://static.javashuo.com/static/loading.gif)
三:報警觸發器觸發的動做設置
當監控項中的觸發器達到你設置的報警值以後,須要執行操做來發送郵件等動做。具體設置:
1:打開zabbix的系統配置---操做---- 選擇事件源爲觸發器------create action:sql
![134147651.jpg](http://static.javashuo.com/static/loading.gif)
2:觸發條件設置:
![134222827.jpg](http://static.javashuo.com/static/loading.gif)
3:詳細操做設置,即知足觸發條件以後執行什麼動做,這裏通常設置爲發郵件之類的,設置收郵件的用戶(建議每一個組對應一個用戶,這樣發郵件的時候容易設置發送對象):
![134257761.jpg](http://static.javashuo.com/static/loading.gif)
四: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爲不存在windows
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的核數tcp
4:查看系統的系統啓動時間和當前時間:system.boottime、system.localtime 返回值爲系統啓動時間和當前時間,爲時間戳格式
5:查看系統的簡單信息:system.uname 返回值爲192.168.8.120的系統信息,相似於linux系統的uname -a命令ide
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,減去上次取得值,除以時間間隔爲此段時間內的平均流量spa
/usr/local/zabbix/bin/zabbix_get -s192.168.8.120 -knet.if.out[192.168.8.120,bytes] 返回值爲IP爲192.168.8.120的出流量,此值爲計數值,單位爲bytes,減去上次取得值,除以時間間隔爲此段時間內的平均流量3d
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:
填寫模板名字和模板所在組保存便可。
![134340848.png](http://static.javashuo.com/static/loading.gif)
2:建立監控項:
打開zabbix的系統配置---模板---選擇對應模板中的監控項---create item:
![134419421.jpg](http://static.javashuo.com/static/loading.gif)
3:建立監控項的觸發器:
打開zabbix的系統配置---模板---選擇對應模板中的觸發器---create trigger:
![134455929.jpg](http://static.javashuo.com/static/loading.gif)
![134521804.jpg](http://static.javashuo.com/static/loading.gif)
這裏說明下這個 N 值的大小
好比說我檢測被監控端的httpd 進程數爲9個,這時這這個N的值就能夠設置爲 N=9 ,
當last value 最後一次檢測的值小於N,也就是小於9時,這個觸發器就會被觸發。
六:添加主機並應用模板
添加主機有兩種方法,一個是手動添加,一個是經過zabbix的自動發現來自動添加主機。
1:手動添加主機
作完以上的設置,添加主機就是很簡單的事情了。打開zabbix的系統配置---主機—create host:
![134552361.png](http://static.javashuo.com/static/loading.gif)
在這一步,只填寫主機名、顯示名、agent接口中的IP地址,選擇主機所在組,其餘的默認。
![134627511.png](http://static.javashuo.com/static/loading.gif)
選擇模板確認並保存主機,其餘的選項不須要設置,默認便可
添加完主機以下圖,可用性爲綠色是正常,紅色爲不可監控(主要是網絡不通或是沒有安裝zabbix客戶端),灰色爲正在檢測zabbix的狀態:
![134650497.png](http://static.javashuo.com/static/loading.gif)
2:經過自動發現自動添加主機:
打開zabbix的系統配置---自動發現—create discovery rule:
![134714485.png](http://static.javashuo.com/static/loading.gif)
須要添加名稱,ip地址段(這個地址段以覆蓋你全部IP的最小地址段爲好),checks。其中checks最爲重要,總共三項,只填寫key,這裏用system.uname這個key。而後點擊添加並保存。這裏的意思是zabbix服務器端掃描這個網段中的zabbix客戶端(客戶端端口默認爲10050),掃描到以後取客戶端的system.uname值,這個值返回的相似於linux系統中的uname –a命令,值爲下面形式:
![134741428.png](http://static.javashuo.com/static/loading.gif)
這個主要用於發現主機以後把主機自動分配到相應的組(好比linux組或是windowns組)中,而且應用相應的監控模板。
固然,這個key值不必定要用system.uname,也能夠用其餘的key,首先zabbix客戶端支持這個key,在這用這個key能夠區分不一樣類型的主機方便分組應用監控模板。
打開zabbix的系統配置---操做-------事件源下拉選擇自動發現—create action:
![134844599.png](http://static.javashuo.com/static/loading.gif)
![134854963.png](http://static.javashuo.com/static/loading.gif)
這幾項的意思是當自動發現經過發現zabbix客戶端,而且接收到key的中包含linux字符,即把他添加到linux_servers組中,應用linux_server模板。等一段時間便可查看自動發現的結果。結果能夠在zabbix首頁中最下面有狀態,也能夠在zabbix的狀態統計---自動發現中查看,能夠看到發現了多少,監控了多少。
到此爲止,zabbix的監控設置說明完畢。