zabbix 数据采集主被动模式
zabbix agent的主动模式与被动模式

zabbix agent的运行模式有以下两种:

  • 1、被动模式:此模式为zabbix默认的工作模式,由zabbix server 向zabbix agent 发出指令获取数据,zabbix agent被动地去获取数据并返回给zabbix server,zabbix server会周期性地向agent索取数据。此模式的最大问题就是会增加zabbix server的工作量,在大量的服务器环境下,zabbix server不能及时获取到最新的数据。
  • 2、主动模式:即由zabbix agent 主动采集数据并返回给zabbix server,不需要zabbix server 的另行干预,因此使用主动模式能在一定程序上减轻zabbix server的压力。
主动以及被动需要server端以及zgent端保持一致。

server主动去agent拿数据,agent得知道他会主动来,并且得给他。
不能一个主动来取数据,一个不给他,非要自己发过去。或者sever等着zgent上报数据,agent等着server来取数据。

所以在agent端设置同时允许agent主动上报数据以及server主动来取数据。

toto2 主机设置 agent配置文件:

Server=172.25.13.110   # 前来自己取agent数据的server端
StartAgents=3  # agent开启的进程
ServerActive=172.25.13.110   # # agent主动上报数据的服务端
Hostname=toto2   # 主机名称

重新启动zabbi-agent服务

[root@toto2 tomcat]# systemctl restart zabbix-agent

zabbix server设置监控项为主动上报数据

当zabbix server端添加的监控项为主动上报数据,则zabbix server不会再去采集该监控项的数据,等待着被检控的主机agent主动上报数据。

如果没有主动上报数据的监控项,可以使用已经存在的模板创造一个。

配置—》模板-----》随便选一个(Template OS Linux)----》全克隆------》随便起一个名字-----》

zabbix 被动agent 不可用 zabbix主被动_mysql


配置----模板----选中自己随便起名字的哪一个-----监控项-----选中所有的监控项----最下面的批量更新------第一个类型(选择zabbix客户端主动式)----最下面的更新

zabbix 被动agent 不可用 zabbix主被动_Server_02


zabbix 被动agent 不可用 zabbix主被动_zabbix 被动agent 不可用_03


zabbix 被动agent 不可用 zabbix主被动_mysql_04


zabbix 被动agent 不可用 zabbix主被动_mysql_05


zabbix 被动agent 不可用 zabbix主被动_Server_06

到次一个主动上报数据的监控项模板完成。将该模板连接到所需亚的主机就行了配置----主机----toto2----模板------取消已经存在的连接(如果不冲突的话可以直接添加)

选择-----选中自己创建好的主动上报数据的监控项模板----添加 ------更新

zabbix 被动agent 不可用 zabbix主被动_数据_07


zabbix 被动agent 不可用 zabbix主被动_zabbix 被动agent 不可用_08


到这里就好了,刚刚添加的监控项会自己上报数据到zabbix server 大大减轻了zabbix-server的压力。

zabbix 被动agent 不可用 zabbix主被动_mysql_09

使用proxy进行代理服务

zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式、分布式监控

并且servee主需要和proxy进行数据传输,就可以得到所有监控数据的信息。在防火墙策略设置也比较简单。

Zabbix代理必须使用一个单独的数据库。 代理服务器收集的所有数据都会在本地存储,然后再发送到服务器。 这样就不会因为服务器的任何临时通信问题而丢失数据。

zabbix 被动agent 不可用 zabbix主被动_数据_10


实验配置:

172.25.13.110 zabbix-server

172.25.13.120 zabbix-agent

172.25.13.130 proxy

代理端的配置

安装代理服务以及数据库

[root@toto3 ~]# yum install zabbix-proxy-mysql.x86_64 mariadb-server.x86_64 -y

设置数据库
安全初始化:

mysql_secure_installation

创建库以及授权用户,

[root@toto3 ~]# mysql -uroot -p
Enter password: 
MariaDB [(none)]> create database zabbix_proxy character set utf8;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'redhat';
MariaDB [(none)]> quit

导入数据等。

[root@toto3 zabbix-proxy-mysql-4.0.5]# zcat schema.sql.gz | mysql -uroot -p zabbix_proxy
Enter password:

修改proxy配置文件:

vim /etc/zabbix/zabbix_proxy.conf

Server=172.25.13.110 ##zabbix-server的ip 
DBUser=zabbix 
DBPassword=westos 
Hostname=proxy ##主机名 
JavaGateway=172.25.13.10
JavaGatewayPort=10052 
StartJavaPollers=5

启动代理服务:

[root@proxy mnt]# systemctl start zabbix-proxy.service 
[root@proxy mnt]# systemctl enable zabbix-proxy.service
agent端进行设置

主要是指定哪一个主机采集自己的数据。
修改配置文件:/etc/zabbix/zabbix_agentd.conf

[root@toto2 tomcat]# vim /etc/zabbix/zabbix_agentd.conf

Server=172.25.13.130
ServerActive=172.25.13.130

重新启动服务

[root@toto2 tomcat]# systemctl restart zabbix-agent

三台主机必须存在域名解析:

172.25.13.110   toto1
172.25.13.120   toto2
172.25.13.130   proxy
zabbix-server监控界面设置

创建agent代理程序

管理–agent代理程序–创建代理

zabbix 被动agent 不可用 zabbix主被动_Server_11

给被代理主机添加agent代理程序

配置–主机–toto2

zabbix 被动agent 不可用 zabbix主被动_zabbix 被动agent 不可用_12

到次已经设置完成。

zabbix 被动agent 不可用 zabbix主被动_zabbix 被动agent 不可用_13

查看日志确定数据传输过程

zabbix server

cat /var/log/zabbix/zabbix_server.log

29901:20190711:154917.244 sending configuration data to proxy "proxy" at "172.25.13.130", datalen 28430   # 将需要进行监控的数据项信息发送给代理服务器

zabbix proxy

cat /var/log/zabbix/zabbix_proxy.log 

 3941:20190711:155209.097 received configuration data from server at "172.25.13.110", datalen 28430   # 接收到从server端发送来的监控项数据