zabbix監控軟件的使用排錯

 在linux系統中,幾乎所有運行的服務都會產生相對就的日誌(log),所運行的程序在出錯時都會有錯誤提示,即使沒有任何提示也可以通過“echo $”來查看運行是否成功。使用zabbix已經有一段時間了,整理一下遇到過的問題和解決的方法以。

zabbix的日誌存放在/tmp下,服務器端對應的日誌是zabbix_server.log,被監控端對應的日誌是zabbix_agentd.log.

一,zabbix服務是否已經開啓成功

  1. 查看系統是否已經有zabbix進程正在運行 
  2. # ps aux |grep zabbix 
  3. 查看系統是否已監聽zabbix server和zabbix agent所使用的10050、10051端口 
  4. # netstat -nplut |grep zabbix 
  5. 如果沒有,則開啓:#/etc/init.d/zabbix_server_ctl start 
  6. #/etc/init.d/zabbix_agent_ctl start

特別需要注意的是:每次修改完配置文件之後都需要重新啓動對應的zabbix server或者zabbix agentd。

部分運行腳本在做restart時無法關閉zabbix導致服務無法重新啓動,可用kill的命令把zabbix相關的進程殺掉再啓動。

二、zabbix_server.log出現的提示

2009:20121023:193549.354 Sending list of active checks to [192.168.30.3] failed: host [CentOS-3] not found

這是因爲zabbix_agentd.conf配置文件中的Hostname與web中的主機名對應。

三,網頁中了出現的錯誤

1,

 Get value from agent failed: cannot connect to [[192.168.30.2]:10050]: [111] Connection refused

192.168.30.2是我的zabbix server服務器,本身也有監控自己本身的agent功能。出現這種錯誤是因爲忘記在zabbix服務器開戶zabbix_agentd。在Last 20 issues中也有提示

Last 20 issues
 
Host Issue Last change Age Ack Actions
Zabbix server Server Zabbix server is unreachable 23 Oct 2012 18:42:14 6m 57s No
-

解決方法:開啓zabbix_agentd即可。

2,

 Get value from agent failed: cannot connect to [[192.168.30.3]:10050]: [113] No route to host

看提示“No route to host”,與網絡連接有關。排除的方法如下:

a)查看192.168.30.3這臺機器是否已開機

b)在zabbix server端向這臺機器ping,看網絡是否通

c)用telnet 登錄10050和10051端口,看該主機是否允許這兩個端口通訊

d)查看iptables防火牆規則是否攔截10050、10051端口

3,

網頁中不停地有以下紅色提示:

zabbix server is not running: the information displayed may not be current.

zabbix server is running | No.

查看/tmp/zabbix_server.log和/tmp/zabbix_agent.log無任何異常。看zabbix_server和zabbix_agent進程、端口都正常……幾翻google以後並嘗試,終於得到了解決!

http://www.zabbix.com/forum/showthread.php?t=23878&page=3 這裏面有說到zabbix受selinux的影響而已有這種錯誤提示。

http://www.zabbix.com/forum/showthread.php?t=25321 這裏面說到了修改hostname爲IP的做法。

我具體的做法是:

①查看selinux產生的log,確實有錯誤提示:

 

#tail -f /var/log/audit/audit.log

type=AVC msg=audit(1351863204.990:32): avc:  denied  { name_connect } for  pid=1575 comm="httpd" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket

type=SYSCALL msg=audit(1351863204.990:32): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=bfd494b0 a2=b76b0ad8 a3=d items=0 ppid=1434 pid=1575 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

②然後讓selinux允許它通過

  1. setsebool -P httpd_can_network_connect on 

③編輯zabbix.conf.php文件,把$ZBX_SERVER的值改爲本機的IP地址

$ZBX_SERVER                     = '192.168.30.2'; #######用IP代替hostname

④OK

 

 

用戶自定義腳本監控:

a)

有時候用戶自定義的腳本運行的時間可能比較長,如超過10秒的20秒的。這時在執行zabbix_agentd -p 或者zabbix_agentd -t時就可能出現“Alarm clock”,從而得不到想要的結果。這是因爲zabbix agentd配置文件中定義Timeout時間默認爲3秒,腳本運行取結果的時間超過了3秒就會出現這種情況。

解決方法:編輯配置文件/etc/zabbix/zabbix_agentd.conf,找到"Timeout"把它定義爲30秒或小於30秒。

b)

對a中的情況還需要注意對zabbix服務器端的配置,如我自己定義的腳本

  1. UserParameter=ping.avgtime,ping 192.168.30.2 -c 10 -w 29 |grep 'avg' |awk -F "/" '{print $5}' 
  2. 對192.168.30.2 ping 10取平均值,-w參數是對ping限定時間爲29秒 

這個腳本運行的大概時間爲10秒左右,此時在agent端雖然可以用zabbix_agentd -t得到結果,但是在zabbix服務器端日誌會不斷的出現

 

1762:20121023:191941.360 resuming Zabbix agent checks on host [Zabbix server]: connection restored

  1761:20121023:191952.149 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: first network error, wait for 15 seconds

  1762:20121023:192010.610 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: another network error, wait for 15 seconds

  1762:20121023:192028.628 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: another network error, wait for 15 seconds

 

這樣的錯誤日誌,並且在web端也沒有畫出圖來。

解決方法:

①編輯zabbix服務器端的配置文件/etc/zabbix/zabbix_server.conf找到"Timeout"把它定義爲30秒或小於30秒。

②如果還有類似提示則應該是zabbix服務器的內存設置得太小了,加大服務器內存便可。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章