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客户端主动式)----最下面的更新
到次一个主动上报数据的监控项模板完成。将该模板连接到所需亚的主机就行了配置----主机----toto2----模板------取消已经存在的连接(如果不冲突的话可以直接添加)
选择-----选中自己创建好的主动上报数据的监控项模板----添加 ------更新
到这里就好了,刚刚添加的监控项会自己上报数据到zabbix server 大大减轻了zabbix-server的压力。
使用proxy进行代理服务
zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式、分布式监控
并且servee主需要和proxy进行数据传输,就可以得到所有监控数据的信息。在防火墙策略设置也比较简单。
Zabbix代理必须使用一个单独的数据库。 代理服务器收集的所有数据都会在本地存储,然后再发送到服务器。 这样就不会因为服务器的任何临时通信问题而丢失数据。
实验配置:
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代理程序–创建代理
给被代理主机添加agent代理程序
配置–主机–toto2
到次已经设置完成。
查看日志确定数据传输过程
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端发送来的监控项数据