zabbix监控软件的使用排错

一,zabbix服务是否已经开启成功

查看系统是否已经有zabbix进程正在运行

# ps aux |grep zabbix

查看系统是否已监听zabbix server和zabbix agent所使用的10050、10051端口

# netstat -nplut |grep zabbix

如果没有,则开启:#systemctl start zabbix.agent.service

 

二、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中的主机名对应。

 

三,网页中了出现的错误

A、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中也有提示

解决方法:开启zabbix_agentd即可。

B、 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端口

C、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进程、端口都正常

①查看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允许它通过

setsebool -P httpd_can_network_connect on

③编辑zabbix.conf.php文件,把$ZBX_SERVER的值改为本机的IP地址

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

D、“Zabbix poller processes more than 75% busy”警报问题解决

1、StartPollers=10

service zabbix-server restart

2、@daily service zabbix-server restart > /dev/null 2>&1

这个计划会每天自动重启Zabbix服务以结束僵尸进程并清理内存等。目前Kaijia这样配置Zabbix后还没有再次遇到过“Zabbix poller processes more than 75% busy”的问题。

或者/zabbix_server.conf

最有可能你有这个设置是这样的:

StartDiscoverers = 1                   也可以变大

继续增加pre-forked发现的实例的数量。

如果你决定不使用发现功能你可以设置参数:

StartDiscoverers = 0

E、配置了discovery任务后,zabbix dashboard 告警如下:

Zabbix discoverer processes more than 75% busy

  1. 配置的每个discovery任务在一定时间内占用1个discovery进程,而zabbix_server.conf中默认配置只有1个discovery(被注释,默认生效);
  2. 同时为了快速验证自动发现效果,将discovery任务的"Delay"时间由默认的3600s设置成60s。

总结:两个原因导致平均时间内discovery processes过高而报警。

  1. 修改zabbix_server.conf中discovery进程数量;

#StartDiscoverers可根据设置的discovery任务数量设置,范围是0~250

[root@localhost ~]# sed -i 's|# StartDiscoverers=1|StartDiscoverers=2|g' /usr/local/zabbix/etc/zabbix_server.conf

[root@localhost ~]# service zabbix_server restart

  1. 将discovery任务的"Delay"时间设置足够长,降低平均时间内进程的占用率。

 

四、/var/log/zabbix/zabbix_server.log出现的错误

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

解决方法:

①编辑zabbix服务器端的配置文件/etc/zabbix/zabbix_server.conf找到"Timeout"把它定义为30秒或小于30秒。

②如果还有类似提示则应该是zabbix服务器的内存设置得太小了,加大服务器内存便可。