官網介紹:
zabbix proxy 可以代替 zabbix server 收集性能和可用性數據,然後把數據彙報給 zabbix server,並且在一定程度上分擔了zabbix server 的壓力。
此外,當所有agents和proxies報告給一個Zabbix server並且所有數據都集中收集時,使用proxy是實現集中式和分佈式監控的最簡單方法。
zabbix proxy 使用場景:
- 監控遠程區域設備
- 監控本地網絡不穩定區域
- 當 zabbix 監控上千設備時,使用它來減輕 server 的壓力
- 簡化分佈式監控的維護
zabbix proxy 僅僅需要一條 tcp 連接到 zabbix server,所以防火牆上僅僅需要加上一條規則即可。
proxy 收集到數據之後,首先將數據緩存在本地,然後在一定得時間之後傳遞給 zabbix server,這樣就不會因爲服務器的任何臨時通信問題而丟失數據。這個時間由 proxy配置文件中參數 ProxyLocalBuffer 和 ProxyOfflineBuffer 決定。
實驗環境:(同一個局域網)
系統 角色 內網IP 公網IP
Centos7.6 zabbix-server 10.1.88.200 113.108.x.x
Centos7.6 zabbix-proxy 192.168.14.211 121.32.x.x
Centos7.6 zabbix-agent 192.168.14.212
服務器公網
客戶端公網
一、Zabbix-server部署
1、查看https://blog.csdn.net/tladagio/article/details/79056421
二、Zabbix-proxy部署
1、測試環境,關閉防火牆和selinux
#修改主機名
[root@localhost ~]# hostnamectl set-hostname proxy
#關閉防火牆和selinux
[root@proxy ~]# systemctl stop firewalld.service
[root@proxy ~]# systemctl disable firewalld.service
[root@proxy ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@proxy ~]# setenforce 0
2、可選,刪除系統自帶數據庫
3、安裝zabbix rpm包(注意鏈接會更新)
[root@proxy ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
4、數據庫安裝和配置
#yum安裝
[root@proxy ~]# yum -y install mariadb mariadb-server
#啓動mysql
[root@proxy ~]# systemctl start mariadb
[root@proxy ~]# systemctl enable mariadb
#初始化mysql(修改root用戶密碼爲redhat)
[root@proxy ~]# mysql_secure_installation
#創建proxy數據庫,proxy用戶
[root@proxy ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix_proxy character set utf8;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbix_proxy.* to 'zabbix'@'localhost' IDENTIFIED BY 'Proxy123!';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
Bye
5、安裝zabbix-proxy
[root@proxy ~]# yum install -y zabbix-proxy zabbix-proxy-mysql zabbix-agent
6、導入數據庫(注意版本號zabbix-proxy-mysql-3.4.15會隨着zabbix rpm包改變)
[root@proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.4.15/schema.sql.gz | mysql -uroot -p zabbix_proxy
Enter password: 輸入密碼redhat
7、修改zabbix_proxy配置文件(注意是Server IP指向zabbix-server的公網映射IP)
[root@proxy ~]# vi /etc/zabbix/zabbix_proxy.conf
[root@proxy ~]# cat /etc/zabbix/zabbix_proxy.conf |grep -v "^#"|grep -v "^$"
Server=113.108.x.x
Hostname=proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=Proxy123!
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
8、修改zabbix_agent配置文件(注意Server IP指定zabbix-proxy服務器的IP,這裏是同一臺機器)
[root@proxy ~]# vi /etc/zabbix/zabbix_agentd.conf
[root@proxy ~]# cat /etc/zabbix/zabbix_agentd.conf |grep -v "^#"|grep -v "^$"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.14.211
ServerActive=192.168.14.211
Hostname=proxy
Include=/etc/zabbix/zabbix_agentd.d/*.conf
9、重啓服務(如何有新的agent加入,建議重啓proxy服務)
[root@proxy ~]# systemctl restart zabbix-agent
[root@proxy ~]# systemctl restart zabbix-proxy
10、主機名解析
[root@proxy ~]# vi /etc/hosts
[root@proxy ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.14.211 proxy
192.168.14.212 client-212
11、查看相關日誌
[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log
三、Zabbix-agent部署
1、測試環境,關閉防火牆和selinux
#更改主機名
[root@localhost ~]# hostnamectl set-hostname client-212
#關閉防火牆和selinux
[root@client-212 ~]# systemctl stop firewalld.service
[root@client-212 ~]# systemctl disable firewalld.service
[root@client-212 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@client-212 ~]# setenforce 0
2、安裝zabbix rpm包(注意鏈接會更新)
[root@client-212 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
3、安裝zabbix-agent
[root@client-212 ~]# yum install -y zabbix-agent
4、修改zabbix_agent配置文件(注意Server IP指定zabbix-proxy服務器的IP)
[root@client-212 ~]# vi /etc/zabbix/zabbix_agentd.conf
[root@client-212 ~]# cat /etc/zabbix/zabbix_agentd.conf |grep -v "^#"|grep -v "^$"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.14.211
ServerActive=192.168.14.211
Hostname=192.168.14.212
Include=/etc/zabbix/zabbix_agentd.d/*.conf
5、啓動服務
[root@client-212 ~]# systemctl start zabbix-agent
[root@client-212 ~]# systemctl enable zabbix-agent
四、華爲防火牆配置
1、華爲防火牆添加zabbix-server的10051端口映射
五、Zabbix-server的Web頁面設置
1、創建代理
2、填寫代理名稱並設置模式爲主動
3、創建主機
4、填寫內容
5、查看狀態
6、查看圖形能正常收集到數據
至此,zabbix客戶端和zabbix服務器在不同的兩個公網範圍,通過zabbix-proxy代理成功。