一、server端配置
LogFile=/tmp/zabbix_server.log #默認即可
PidFile=/tmp/zabbix_server.pid #默認即可
DBHost=localhost #默認即可
DBName=zabbix #在數據庫中創建的,默認即可
DBUser=zabbix #在數據庫中創建的,默認即可
DBPassword=zabbix #在數據庫中創建的,默認即可
以上基本都是默認的,此外,監聽端口爲10051等也是默認的;即基本不用修改server端
二、agent端配置
LogFile=/tmp/zabbix_agentd.log #默認即可
Server=172.16.2.11 #這裏配置的IP爲zabbix-server端的IP 即爲被動模式下,由服務端主動請求AGENT,去獲取所採集到的監控數據
ServerActive=127.0.0.1 #這裏配置的IP爲zabbix-server端的IP 即主動模式下,AGENT端(即採集客戶端)將所採集的結果,主動提交給服務端服務器
說明:這裏若不修改ServerActive(即默認爲127.0.0.1),則意思是雖然開啓了主動監控,但是沒有配置遠程server端的IP,所以主動監控就無法實現;也即是這裏採用的即爲被動監控;
Hostname=Zabbix server #這裏不需要設置,默認即可
UnsafeUserParameters=0 #爲0意思是不開啓用戶自定義監控項,爲1是開啓自定義監控項
修改配置之後重啓zabbix_agentd,則zabbix_agentd監控被動模式監控開啓;
PS1:zabbix_agentd的自定義監控說明,在配置文件中
UserParameter= #這裏是開啓用戶自定義監控項後,可以定義監控項的名稱,格式爲UserParameter=<key>,<shellcommand>,一個例子如下:
UserParameter=memory_userd, free -m|grep Mem|awk '{print$3}',這裏的監控key值爲memory_userd,Shell命令或腳本爲free -m|grep Mem|awk '{print $3}',然後再web界面找到這個agent所在的主機,添加item
PS2:zabbix在server端的測試命令
export PATH=$PATH:/usr/local/zabbix/bin ##稱爲環境變量
zabbix_get -s 172.16.2.3 -p 10050 -k 'dubbo.ping[mobile]' ##測試命令
三、web界面配置
1、添加一個主機
(1)主機名稱:填寫主機名稱 ##這裏不必和agent.conf中的hostname必須一致(大多數博客沒有搞清楚這裏,說必須一致),只要下面的ip一致就可以了;
(2)agent代理程序的藉口:填寫入agent端所在主機的IP(後面的端口爲默認即可)
(3)添加完主機後,再添加鏈接的模板;
其他項可根據實際填寫,或者不填取默認值;也可直接克隆主機(較爲方便);
2、添加一個監控項
對監控項的理解:就是從主機獲取到的所有數據,通常稱爲item,構成方式爲“key+參數”;例如,監控項中需要獲取cpu信息,則需要一個對應的監控key:system.cpu.load。一般情況下key要與參數結合起來使用,例如獲取5分鐘的負載情況:system.cpu.load[avg5],即兩者合起來稱之爲“鍵值”。
(1)名稱:監控項的名稱,可以自己來自定義。可以使用如下的宏變量,$1, $2…$9,這9個參數對應item key的參數位置。例如: Free disk space on $1,如果item key爲“vfs.fs.size[/,free]”,那麼對應的名稱會變成”Free disk space on /“,$1對應了第一個參數”/“
(2)類型:一般默認爲agent客戶端,不同類型對應的key不同
(3)鍵值:監控item的key表達式,點擊可選擇系統自帶的key,用戶也可以自定義key
PS:只有系統自帶的key,纔可以不用在agent端添加userParamater,否則需要添加自定義的參數;
(4)主機接口:默認爲本機( 在哪個主機上添加就是哪個主機的IP和端口)
(5)信息類型:獲取到的信息類型,有數字、浮點數、字符、文本、日誌等,默認爲數字,根據監控項返回的信息來選擇
(6)數據類型:獲取到的信息類型若爲整數,這裏選擇整數的類型,默認爲10進制
(7)單位:默認情況下,若返回的信息類爲數字超過1000,則會處以1000來處理,如的單位爲bytes時,返回11200時會處理爲11.2kbytes
(8)自定義倍數:
(9)數據更新間隔時間:默認多久刷新一次數據
(10)自定義時間間隔:可以自定義哪段時間內多久進行刷新數據,可知不能用在主動方式的監控項;
(11)查看值:值的映射,可以定義返回值映射爲一段可理解的文字,例如0代表宕機,1代表正常等;可以自己創建值映射;
(12)應用集:屬於哪個應用集合;
3、item中的key和用戶自定義參數userParameter的詳細說明
(1)對key的說明
key是監控項的載體,用來承載這個監控項的數值,由key和參數組成,格式爲:key[parameters],例如vfs.fs.size[/,pfree];key有不同的類型,對於zabbix_agent類型的key,需要大概瞭解一下其功能和參數含義。
(2)對觸發器的說明
觸發器其實就是一個表達式,用來表達一個key的臨界值(正常與否的臨界)。在添加觸發器時,主要是添加觸發器的表達式和觸發結果的級別(嚴重、一般等),表達式的格式爲:{<server>:<key>.<function>(<parameter>)}<operator><constant>,即{主機:key.函數(參數)}<表達式>常數,例如{dubbo1:vfs.fs.size[/,pfree].last(0)}<20。可見,對於觸發器表達式來講,需要了解一下一些常用的函數;
一般的,表達式裏的server用的是“模板名稱”,例如{Template OS Linux:system.hostname.diff(0)}>0,此處的Template OS Linux即爲模板名稱(非“模板可見名稱”),system.hostname即爲key,diff(0)即爲函數,>0即爲表達式。可知,觸發器是一個組合的表達式。
#定義用戶自定義的參數項
UserParameter=mysql.version,/mysql/3306/app/mysql/bin/mysql -V
UserParameter=mysql.ping,/mysql/3306/app/mysql/bin/mysqladmin --defaults-file=/home/zabbix/.my.cnf -S /mysql/3306/tmp/mysql.sock ping | grep -c alive
UserParameter=mysql.status[*],/home/zabbix/checkmysql_status.sh $1
UserParameter=mysql.slavestatus,/home/zabbix/mysql_slave.sh
告警ip:{IPADDRESS}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
事件ID:{EVENT.ID}
LISTEN_IP="0.0.0.0" #監聽地址 LISTEN_PORT=10052 #監聽端口 START_POLLERS=5 # 開啓的工作線程數(必須大於等於後面zabbix_server.conf文件的StartJavaPollers參數)
JavaGatewayPort=10052
StartJavaPollers=5
(1)下載catalina-jmx-remote.jar wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.36/bin/extras/catalina-jmx-remote.jar #我的tomcat版本是8.0.36 (2)將下載好的文件存放到tomcat子目錄目錄lib錄下 mv catalina-jmx-remote.jar /usr/local/tomcat/apache-tomcat-7.0.53/lib/ (3)修改啓動腳本文件 cd /usr/local/tomcat/apache-tomcat-7.0.53/bin vim catalina.sh (4)在# ----- Execute The Requested Command -----------------下面添加如下內容: export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=54321 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.2.2.155" -----備註(x.x.x.x是客戶端ip地址,即tomcat本身ip地址,我的內網IP爲10.2.2.155) -----這裏的Port是自己定義的port端口,可以自己定義,不要和tomcat主機上其他的端口衝突即可,這裏設置爲54321 (5)重啓tomcat3、測試是否可以獲取數據
java -jar cmdline-jmxclient-0.10.3.jar - 10.2.2.155:54321 java.lang:type=Memory NonHeapMemoryUsage
06/11/2015 15:49:30 +0800 org.archive.jmx.Client NonHeapMemoryUsage: committed: 26214400 init: 2555904 max: -1 used: 25515648有以上信息展示,說明配置沒問題