关于zabbix运行期间的断点问题

           今天看到zabbix发送screen的邮件显示所有服务器system的图表出现了一部分的断点,主要时间集中在4:30--4:50之间以下是截取的zabbix日志:

貌似提示连接被中断

 3645:20160426:042119.190 active check configuration update from [192.168.1.2:10051] started to fail (ZBX_TCP_READ()    failed: [4] Interrupted system call)
  3645:20160426:042449.553 active check configuration update from [192.168.1.2:10051] is working again
  3645:20160426:043530.696 active check configuration update from [192.168.1.2:10051] started to fail (ZBX_TCP_READ() failed: [4] Interrupted system call)
  3645:20160426:043638.308 active check configuration update from [192.168.1.2:10051] is working again
  3645:20160426:044516.175 active check configuration update from [192.168.1.2:10051] started to fail (ZBX_TCP_READ() failed: [4] Interrupted system call)
  3645:20160426:045015.405 active check configuration update from [192.168.1.2:10051] is working again



可能出现的原因

1.

同时这种问题也有可能是zabbix-server监控的主机太多了,并且监控方式为被动

当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现如下:

1、Web操作很卡,容易出现502

2、图层断裂

3、开启的进程(Pollar)太多,即使减少item数量,以后加入一定量的机器也会有问题

所以下面主要往两个优化方向考虑:

1、用Proxy或者Node模式做分布式监控

2、调整Agentd为主动模式

由于第一个方案需要增加物理机器,所以先尝试第二方案

一、Agentd的配置调整:

LogFile=/tmp/zabbix_agentd.log
Server=14.18.xxx.xxx
ServerActive=14.18.xxx.xx
Hostname=119.146.xxx.xx
RefreshActiveChecks=60
BufferSize=10000
MaxLinesPerSecond=200
Timeout=30

比较重要的参数是ServerActive和Hostname,ServerActive是指定Agentd收集的数据往哪里发送,Hostname是必须要和Server端添加主机时的主机名对应起来,这样Server端接收到数据才能找到对应关系,我这里为了兼容被动模式,没有把StartAgents设为0,如果一开始就是使用主动模式的话建议把StartAgents设为0,关闭被动模式

二、Server的配置调整:

StartPollers=100

首先把这个主动收集数据进程减少,原来开到700多

StartTrappers=200

然后把这个负责处理Agentd推送过来的数据的进程开大一些,就可以了

三、调整模板

建议完整克隆一个Template OS Linux 模板来改,需要调整的地方就是:

关于zabbix运行期间的断点问题_第1张图片 把所有的item的类型由原来的“zabbix代理”改成“zabbix端点代理程序(主动式)”

只需要简单的几步,就完成了主动模式的切换,调整之后服务器不卡了,图层不裂了,进程也少了。


2。主动模式跟被动模式模糊

  玩过zabbix的童鞋都知道在关于zabbix_agent客户端监控主要有俩种模式,一种是主动模式,一种是被动模式。

主动模式:zabbix_agent主动收集主机上面的信息,将它提交给server端

被动模式:zabbix_server主动去zabbix_agent上面抓取数据信息

    今天中午我们公司的agent.ping这个监控项发生报警,在这个监控项我们采用的是zabbix_agent(active)模式,即由客户端自己收集数据发送给server端,因为之前我们一直是zabbix_agent的模式,中午将它更改未主动模式,结果就有20多台服务器报警zabbix agent on #### unreachable for 5 minute,当看到这个信息之后,我立马就去观察zabbix_agent端的日志,在日志中全部显示的是

1800:20150902:191605.465 active check configuration update from [:10051] started to fail (cannot connect to [[10.10.251.5]:10051]: [0x0000274D] 由于目标计算机积极拒绝,无法连接。)

1800:20150902:192312.403 active check configuration update from [:10051] is working again
1800:20150907:111627.125 active check configuration update from [:10051] started to fail (cannot connect to [[10.10.251.5]:10051]: [0x0000274D] 由于目标计算机积极拒绝,无法连接。)
1800:20150907:120350.378 active check configuration update from [:10051] is working again
1800:20150909:094456.703 active check configuration update from [:10051] started to fail (ZBX_TCP_READ() failed: [0x0000274C] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)
1800:20150909:094717.398 active check configuration update from [:10051] is working again

    全部是如上的这种错误,但是打开任意一台主机的图形数据,发现图形数据还是连续的,并没有出现昨天的那种产生图形中断的情况,就在这个时候我想到在百度上面开启zabbix_agent(active)模式,上面特意强调了俩个参数,一个是ServerActive和Hostname这俩个参数,ServerActive这个参数指的是客户端将自己收集到的数据发送给谁,Hostname则是显示这个数据是由谁发送的。然后我就随意打开几台主机,果然发现它们的配置文件里面Hostname这个参数未空,并且在zabbix WEB界面上的Hostname填写的都是主机的主机名,然后我把配置文件里面的Hostname和WEB界面端的Hostname全部更改未主机的IP,过了一段时间之后,报警就消失了。

    最后我总结了一下,在zabbix添加和安装的时候就有强调web界面和配置文件中Hostname主机名必须保持一致,否则zabbix WEB界面有可能接收不到数据,估计当初zabbix的添加人员或许注意到了这个问题,但是由于使用的是zabbix_agent模式,再加上zabbix并没有产生报警,所以将这个问题给忽视不计了,结果等到我们由于zabbix压力增大进行优化之后才会导致这种事情发生。


你可能感兴趣的:(Zabbix-分布式监控系统)