(一)简介

  • 如果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

ed19c10f04196402cd31b0167bdd7627.png

3.2,全克隆该模板。

cee2b1eeb71cc1ba5ecc52d8dcd032d5.png

3.3,给新模板重命名,并点击添加。

fd8c0d7ffaf87fa92a89aa980f64e489.png

6e6251ae17fc8c401a22091ffb55f7ce.png

3.4,找到该模板--监控项--全选--批量更新--类型--zabbix客户端(主动式)--更新

fea5abe08bdc40ca6931c8f862ebcd98.png

3.5,更新自动发现规则,里边有两个。

637d5ceb6c0e818c7382025bd11eaf75.png3.6,点击进去,在类型中选择zabbix客户端主动式

10dc4e326ed3345d51ab5c2858eac300.png-wh_

3.7,把所有的监控项包括自动发现规则都变成主动监控式。

31ddf81906bdfbd96c3e2d8b8a1e35fa.png

3.8,把所有的监控项都要设置成主动式包括自动发现规则,不支持的停掉

cb3a0b893ea8291ea91b328fe95c5883.png


(四),在Zabbiex服务器WEB界面上添加主机

4.1,添加主机。配置--主机--创建主机

0652ee1e1bd654662e62abcedf30ed84.png4.2,添加主机的相关地址。

d62ed6bc6b1f1afaffb0d3d00ca816f4.png4.3,配置模板,见下图

fa90b290682499dd6634307e40c2e033.png

4.4,添加完成后,发现灯不亮是正常的,只要监控有数据就行。因为服务器是基于被动模式的,如果服务端无法直接连接到客户端被动模式端口这个灯是不绿的,就算是使用主被模式数据上来,这个灯也不绿

a4ded7f36fd73d8aef021da970513cf7.png4.5,查看数据图

d15c0859724fbdf7e873f6fc9140bf94.png




备注:无论是主动模式还是被动模式都是对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