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