(一)简介
-
如果zabbix_server端当主机数量过多的时候,虽然可以通过增加代理的方式来进行收集数据,但是需要增加proxy机,所以还可以通过zabbix_agent主动往由Server端去发生数据来解决,否则,Zabbix会出现严重的性能问题,主要表现如下:
1、当被监控端主机过多时,web操作很卡,容易出现502,已经数据库等方面的问题。
2、容易造成图层断裂 。
3、开启的进程(Pollar)太多,即使减少item数量,以后加入一定量的机器也会有问题 -
所以下面主要往两个优化方向考虑:
1、添加Proxy节点做分布式监控
2、调整Agentd为主动模式由于分布式监控上边已讲,现在主要讲解通过zabbix_agentd主动模式的监控。
(二)被监控端zabbix_agnetd.conf的配置设置
[root@vos-gsm-35 etc]# grep '^[a-Z]' zabbix_agentd.conf LogFile=/tmp/zabbix_agentd.log StartAgents=0 ServerActive=192.168.99.99 Hostname=192.168.1.36 RefreshActiveChecks=120
解释:
StartAgents=0 #客户端agent模式。设置为0表示启用主动模式,而被动模式被关闭,但被监控端的 zabbix_agentd 不监听本地端口.
#ListenPort=10050被注释掉,所以无法在 netstat -lntp|grep zabbix命令中查看zabbix_agentd进程
#Server=x.x.x.x 如果设置为纯被动模式,则应该注释掉这一条指令
ServerActive=**.**.**.** #主动模式的server IP地址
Hostname=test_host #重要:客户端的hostname,不配置则使用主机名
RefreshActiveChecks=120 #被监控端到服务器获取监控项的周期,默认120s即可
注:纯主动模式下的zabbix agent,只能支持Zabbix Agent (Active)类型的监控项。
(二)调整监控模板
3.1,点击模板Template OS Linux。配置--模板--Template OS Linux
备注:无论是主动模式还是被动模式都是对zabbix客户端(zabbix_agentd)来说的,许多设备都是通过snmp协议进行监控的,是无法实行主动监控,因为监控类型不支持。
被动模式工作流程: Server 打开一个TCP连接 Server发送一个key 为agent.ping Agent接受这个请求,然后响应<HEADER><DATALEN>1 Server对接受到的数据进行处理 TCP连接关闭 ##################### 主动模式设置方法: LogFile=/tmp/zabbix_agentd.log SourceIP=192.168.99.99 Server=192.168.99.99 ListenPort=10050 ServerActive=192.168.99.99 Hostname=Zabbix server
主动模式流程: Agent向Server建立一个TCP连接 Agent请求需要检测的数据列表 Server响应Agent,发送一个Items列表 Agent允许响应 TCP连接完成本次会话关闭 Agent开始周期性地收集数据 ######################## 主动模式的设置方法: LogFile=/tmp/zabbix_agentd.log StartAgents=0 ServerActive=192.168.99.99 Hostname=192.168.1.36 RefreshActiveChecks=120