首先我萌先理解下为什么要突然冒出zabbix proxy
它是一个代理,也就是agent与server的中间层,他会代替server收集agent的数据保存起来,然后推送给server,那么很明显,它也是需要安装数据库了
作用也就清晰了,一是为了减轻server的收集压力,二是网络上的优化(不需要server与任何agent都需要通信了)
我们之前在node2上已经安装了proxy,现在我们使用node2作为node3的代理,最终让node3被server监控到,很明显,我只需要node2与node3可以通信即可
我们开始配置node2上的代理
1 [root@linux-node2 ~]# mysql -uroot -p123 -e "create database zabbix_proxy character set utf8 collate utf8_bin;" 2 [root@linux-node2 ~]# mysql -uroot -p123 -e "grant all on zabbix_proxy.* to zabbix_proxy@'localhost' identified by 'zabbix_proxy';" 3 [root@linux-node2 ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.13/ 4 [root@linux-node2 zabbix-proxy-mysql-3.0.13]# ls 5 AUTHORS ChangeLog COPYING NEWS README schema.sql.gz 6 [root@linux-node2 zabbix-proxy-mysql-3.0.13]# zcat schema.sql.gz |mysql -uzabbix_proxy -pzabbix_proxy zabbix_proxy 7 [root@linux-node2 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_proxy.conf 8 Server=192.168.56.11 # server的ip 9 Hostname=linux-node2.example.com # 自己的主机名 10 LogFile=/var/log/zabbix/zabbix_proxy.log 11 LogFileSize=0 12 PidFile=/var/run/zabbix/zabbix_proxy.pid 13 DBName=zabbix_proxy # 数据库名 14 DBUser=zabbix_proxy # 数据库用户名 15 DBPassword=zabbix_proxy # 数据库用户密码 16 ProxyLocalBuffer=0 # 收集到数据后多长时间给server汇报 17 ProxyOfflineBuffer=1 # 当server无法接受数据时暂时保留一定时间数据 18 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log 19 Timeout=4 20 ExternalScripts=/usr/lib/zabbix/externalscripts 21 LogSlowQueries=3000 22 [root@linux-node2 zabbix-proxy-mysql-3.0.13]# systemctl start zabbix-proxy.service
然后页面操作
填写你的主机名,然后跟你你监控的模式选择主动还是被动代理
我们再去node3配置agent,此时的node3不需要知道node1的存在,只需要知道我要把数据汇报给node2即可,在我眼里node2就是我的server,因此配置如下
1 [root@linux-node3 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf 2 PidFile=/var/run/zabbix/zabbix_agentd.pid 3 LogFile=/var/log/zabbix/zabbix_agentd.log 4 LogFileSize=0 5 Server=192.168.56.12 6 ServerActive=192.168.56.12 7 Hostname=linux-node3.example.com 8 Include=/etc/zabbix/zabbix_agentd.d/ 9 [root@linux-node3 ~]# systemctl start zabbix-agent.service
再去页面主机添加node3
过一会node3也就被监控好了,恰面灰色的是代理名