一、简介
主动模式流程:
Agent向Server建立一个TCP连接
Agent请求需要检测的数据列表
Server响应Agent,发送一个Items列表
Agent允许响应
TCP连接完成本次会话关闭
Agent开始周期性地收集数据
被动模式工作流程:
Server 打开一个TCP连接
Server发送一个key 为agent.ping
Agent接受这个请求,然后响应
Server对接受到的数据进行处理
TCP连接关闭
二、zabbix客户端和服务端配置
zabbix Agent端主动模式配置
# cat /etc/zabbix/zabbix_agentd.conf | grep -Ev "^#|^$"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=xx.xx.xx.xx
# 如果设置为纯被动模式,则可注释掉,不注释也没关系,写zabbix server 的IP或域名
StartAgents=0
#客户端agent模式:设置为0表示启用主动模式, 不监听本地端口
ServerActive=xx.xx.xx.xx
# 主动模式的 zabbix server 的IP或域名
Hostname=TestServer
# 重要:客户端的hostname,不配置则使用主机名,在zabbix server添加主机监控要用到
Include=/etc/zabbix/zabbix_agentd.d/*.conf
重要的参数是ServerActive和Hostname
ServerActive是指定Agentd收集的数据往哪里发送
Hostname是必须要和Server端添加主机时的主机名一样,这样Server端接收到数据才能找到对应关系。
Zabbix Server端的主动模式配置
# vim /etc/zabbix/zabbix_server.conf
StartPollers=100
# 减少server主动收集数据进程
StartTrappers=200
# 开大负责处理agentd推送过来的数据的进程
三、调整监控模板为主动模式
1.点击模板Template OS Linux,配置--模板--Template OS Linux
2.全克隆该模板
3.给新模板重命名为Template OS Linux ActiveMode 并点击添加
4.模板--监控项--全选--批量更新--类型--zabbix客户端(主动式)--更新
5.更新自动发现规则,里边有两个
6.点击进去,在类型中选择zabbix客户端主动式
6.将所有的监控项包括自动发现规则都变成主动监控式
四、在Zabbiex服务器WEB界面上添加被监控主机
1.添加主机 配置--主机--创建主机
2.添加主机的相关地址
3.配置模板,见下图
4.添加完成后,发现灯不亮是正常的,只要监控有数据就行
服务器是基于被动模式的,如果服务端无法直接连接到客户端被动模式端口,这个灯是不绿的,就算是使用主被模式数据上来,这个灯也不绿!
注意:无论是主动模式还是被动模式都是对zabbix客户端(zabbix_agentd)来说的,许多设备都是通过snmp协议进行监控的,是无法实行主动监控,因为监控类型不支持。