一.概述
zabbix proxy 可以代替 zabbix server 收集性能和可用性數(shù)據(jù),然后把數(shù)據(jù)匯報(bào)給 zabbix server,并且在一定程度上分擔(dān)了zabbix server 的壓力.此外,當(dāng)所有agents和proxies報(bào)告給一個(gè)Zabbix server并且所有數(shù)據(jù)都集中收集時(shí),使用proxy是實(shí)現(xiàn)集中式和分布式監(jiān)控的最簡單方法。(摘自官網(wǎng))
zabbix proxy 使用場景:
監(jiān)控遠(yuǎn)程區(qū)域設(shè)備
監(jiān)控本地網(wǎng)絡(luò)不穩(wěn)定區(qū)域
當(dāng) zabbix 監(jiān)控上千設(shè)備時(shí),使用它來減輕 server 的壓力
簡化分布式監(jiān)控的維護(hù)

zabbix proxy 僅僅需要一條 tcp 連接到 zabbix server,所以防火墻上僅僅需要加上一條規(guī)則即可
分布式監(jiān)控原理
proxy收集到數(shù)據(jù)之后,首先將數(shù)據(jù)緩存在本地,然后在一定得時(shí)間之后傳遞給zabbix server,這樣就不會(huì)因?yàn)榉?wù)器的任何臨時(shí)通信問題而丟失數(shù)據(jù)。這個(gè)時(shí)間由proxy配置文件中參數(shù)ProxyLocalBuffer和 ProxyOfflineBuffer決定。
二.實(shí)踐配置
環(huán)境說明:
zabbix-server 處于外網(wǎng),zabbix-agent 處于各個(gè)地方的內(nèi)網(wǎng),各地的內(nèi)網(wǎng)都是互通的。其中有一臺(tái)內(nèi)網(wǎng)服務(wù)器既可以和內(nèi)網(wǎng)通信,也可以和外網(wǎng)進(jìn)行通信。
實(shí)踐場景與地址分配

1.操作配置
1)zabbix-server端
這里省略,之前已有安裝好的。
2)zabbix-proxy端安裝。
#下載安裝包
[root@sh-proxy ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@sh-proxy ~]# yum -y install zabbix-proxy-mysql
#安裝數(shù)據(jù)庫
[root@sh-proxy ~]# yum -y install mariadb-server
#啟動(dòng)數(shù)據(jù)庫并設(shè)置開機(jī)自啟
[root@sh-proxy ~]# systemctl start mariadb
[root@sh-proxy ~]# systemctl enable mariadb
#初始化數(shù)據(jù)庫并創(chuàng)建數(shù)據(jù)庫以及授權(quán)
[root@sh-proxy ~]# mysql_secure_installation
[root@sh-proxy ~]# mysql -uroot -p123456
MariaDB [(none)]> create database zabbix_proxy default charset utf8;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix_proxy@'localhost' identified by 'zabbix_proxy';
Query OK, 0 rows affected (0.00 sec)
#導(dǎo)入數(shù)據(jù)
[root@sh-proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.16/
[root@sh-proxy /usr/share/doc/zabbix-proxy-mysql-4.0.16]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz
[root@sh-proxy /usr/share/doc/zabbix-proxy-mysql-4.0.16]# zcat schema.sql.gz |mysql -uzabbix_proxy -pzabbix_proxy zabbix_proxy
#配置proxy連接數(shù)據(jù)庫
[root@sh-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=10.0.0.71
Hostname=sh-proxy #與主機(jī)名保持一致
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
#啟動(dòng)zabbix-agent
[root@sh-proxy ~]# systemctl start zabbix-proxy.service
[root@sh-proxy ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7959/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7127/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 7224/master
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 8201/zabbix_proxy
tcp6 0 0 :::22 :::* LISTEN 7127/sshd
tcp6 0 0 ::1:25 :::* LISTEN 7224/master
tcp6 0 0 :::10051 :::*
2.server端 Web 配置
1)創(chuàng)建一個(gè)agent代理程序;進(jìn)入:配置 -> agent代理程序 -> 創(chuàng)建代理

agnet代理名稱(必須是zabbix-proxy上面的主機(jī)名),模式根據(jù)配置里面來定,代理地址(zabbix-proxy上面能和zabbix-server通信的地址)

2)配置zabbix-agent
[root@zabbix-agent ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.1.8
ServerActive=172.16.1.8
Hostname=172.16.1.7
Include=/etc/zabbix/zabbix_agentd.d/*.conf
3)添加主機(jī)
自動(dòng)添加

手動(dòng)添加

注意:根據(jù)實(shí)際需求配置數(shù)據(jù)同步和配置同步的頻率,由于地域和網(wǎng)絡(luò)的問題,配置有不同,自行配置即可。