zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Zabbix 主被动模式解析

解析 Zabbix
2023-09-14 09:15:16 时间

Zabbix Agent的工作模式


工作模式概述:

Zabbix-Agent的工作模式可以分为主动模式(Active)和被动模式(Passive)。

主动模式是指: Zabbix-Agent将采集到的数据主动推送给 Zabbix-Server,其行为是Agent向Zabbix-Server主动发起的数据连接过程,Zabbix-Server不必等待Zabbix-Agent 的采集行为,Zabbix-Agent能够一次批量发送多条数据给Zabbix-Server,属于一对多的响模式,对Zabbix-Server的性能开销较少,适合大规模环境使用。

被动模式是指:Zabbix-Server向Zabbix-Agent请求数据,Zabbix-Agent被动接受数据请求后回应,属于一对一的响应模式。比如有100个监控项,Zabbix-Server需要向Zabbix-Agent 请求100次,同时,Zabbix-Agent在响应Zabbix-Server时,对监控项数据采集也需要消耗时间,Zabbix-Server 只能耗着时间安静地等待Zabbix-Agent。

相对于主动模式的高效,被动模观时间开销和发送数据量上都处于劣势,对Zabbix-Server的性能开销较大,适合小规模环境使用。

 

主动模式和被动模式在同一个Zabbix-Agent上,是可以共存的,比如让一部分被动模式,另一部分处于主动模式,处于主动模式的监控项由Zabbix-Agent周期性采集数据传输给 Zabbix-Server,处于被动模式的监控项,则由Zabbix-Server周期性地从Zabbix-Agent获取数据。

在 Zabbix-Ageet的配置文件中,有3个参数和工作模式有紧密关系,分别是Server,ServerActive和Hostname,如下所示:

egrep -v "(^$|^#)" /etc/zabbix/zabbix_agentd.conf

server=127.0.0.1,10.0.2.50 #被动模式连接的Zabbix-Server的IP地址

ServerActive=127.0.0.1,10.0.2.50 #主动模式连接的zabbix-server的IP地址, 开启此项参数将会自动打开主动模式,将其注释掉,则会关闭主动模式

Hostname=Host-001       #在主动模式中,Hostname作为zabbix-Server处理数据的唯一依据,要求Hostname在Zabbix-Server具有唯一性,当有多个zabbix-Agent的主机名相同时会造成该主机名下的主动模式监控项数据存储错乱,因为在不同的时间周期内,其存储的是不同Zabbix-Agent的数据

StartAgents=3           #Agent的进程个数,用于被动模式,如果大于0,会监听10050端口,如果只需要主动模式,则可以将其设置为0,将被动模式关闭

详细解释如下:

Server被动模式:允许目标Zabbix-Server服务器连接Zabbx-Agent,此处允许127.0.0.1和10.0.2.50访问10050端口,多个IP地址之间用逗号分隔。

ServerActive主动模式:向目标 ZabbixServer服务器传送数据。 需要确保zabbix_agentd.conf 配置的主机名(Hostname)和Zabbix-Web管理界面中的主机名保持一致。

当 Zabbix-Agent 配置的主机名和 Zabbix-Web 配置的主机名不同时,Zabbix-Agent,Zabbix-Server 日志均会报错如下所示:

[root@localhost ~]# tail -f /var/log/zabbixsrv/zabbix_server.log
7687:20200714:212633.987 cannot send list of active checks to "192.168.179.104": host [Host-001] not found

#Zabbix-Agent向zabbix-Server发起数据请求,查询主机名字为"Host-001"的监控项列表,而Zabbix-Serve经过查询后,发现不存在"Host-001"因此将此错误记录到日志当中

[root@localhost ~]# tail -f /var/log/zabbix/zabbix_agentd.log 
2830:20200714:092633.925 no active checks on server [192.168.179.103:10051]: host [Host-001] not found

在 Zabbix-web管理界面上的主机列表中并不存在主机名为"Host-001"的主机

在Zabbix-Web管理界面中并不存在这个主机名的主机,需要添加 Host-001这个主机名的主机

[root@localhost ~]# tail -f /var/log/zabbix/zabbix_agentd.log  
 2842:20200714:094401.804 Got signal [signal:15(SIGTERM),sender_pid:1,sender_uid:0,reason:0]. Exiting ...
  2842:20200714:094401.808 Zabbix Agent stopped. Zabbix 4.0.17 (revision a528a0a4bc).
  2911:20200714:094401.833 Starting Zabbix Agent [Host-001]. Zabbix 4.0.17 (revision a528a0a4bc).
  2911:20200714:094401.833 **** Enabled features ****
  2911:20200714:094401.833 IPv6 support:          YES
  2911:20200714:094401.833 TLS support:           YES
  2911:20200714:094401.833 **************************
  2911:20200714:094401.833 using configuration file: /etc/zabbix_agentd.conf
  2911:20200714:094401.834 agent #0 started [main process]
  2913:20200714:094401.835 agent #1 started [collector]
  2914:20200714:094401.836 agent #2 started [active checks #1]