一、簡化分佈式監控的維護
zabbix proxy 僅僅需要一條 tcp 連接到 zabbix server,所以防火牆上僅僅需要加上一條規則即可
zabbix proxy 數據庫必須和 server 分開,否則數據會被破壞
proxy 收集到數據之後,首先將數據緩存在本地,然後在一定的時間之後傳遞給 zabbix server,這樣就不會因爲服務器的任何臨時通信問題而丟失數據。這個時間由 proxy配置文件中參數 ProxyLocalBuffer 和 ProxyOfflineBuffer 決定
注意從Zabbix server數據庫直接更新最新配置的proxy可能會比Zabbix server新,而Zabbix server的配置由於 CacheUpdateFrequency 的原因而無法快速更新。因此,proxy收集發送Zabbix server數據可能會被忽略
zabbix proxy 是一個數據收集器,它不計算觸發器、不處理事件、不發送報警。有關proxy功能的概述,如下表:
二、分佈式監控部署
環境說明
系統版本 CentOS 7.2 x86_64
軟件版本 zabbix 3.0.18
機器角色及ip
zabbix server 10.0.0.63
zabbix proxy eth0:10.0.0.65 eth1:192.168.1.65
zabbix agent 192.168.1.66
通過zabbix proxy的搭建,zabbix server可以遠程從proxy獲取到數據,這裏的環境相當於zabbix server具有一個公網ip地址,zabbix agent只具有內網地址,zabbix proxy具有外網地址和內網地址,搭建zabbix proxy使zabbix server能通過proxy遠程獲取到zabbix agent的數據
1、配置zabbix proxy
1.1 安裝並配置zabbix的源
#安裝源
[root@zabbix-proxy ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
#修改配置文件,將地址改爲清華的
[root@zabbix-proxy ~]# vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/$basearch/
……
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/
……
#更新緩存
[root@zabbix-proxy ~]# yum makecache
1.2 安裝配置zabbix proxy
#安裝zabbix-proxy
[root@zabbix-proxy ~]# yum install -y zabbix-proxy-mysql
#安裝數據庫
[root@zabbix-proxy ~]# yum install -y mariadb-server
#啓動數據庫
[root@zabbix-proxy ~]# systemctl start mariadb.service
#開機啓動
[root@zabbix-proxy ~]# systemctl enable mariadb.service
#登錄數據庫
[root@zabbix-proxy ~]# mysql
#創庫
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
#授權
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by '123456';
MariaDB [(none)]> exit
[root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql|grep sql
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-3.0.18
/usr/share/doc/zabbix-proxy-mysql-3.0.18/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-3.0.18/COPYING
/usr/share/doc/zabbix-proxy-mysql-3.0.18/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-3.0.18/NEWS
/usr/share/doc/zabbix-proxy-mysql-3.0.18/README
/usr/share/doc/zabbix-proxy-mysql-3.0.18/schema.sql.gz
#導入數據庫
[root@zabbix-proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.18/
[root@zabbix-proxy zabbix-proxy-mysql-3.0.18]# zcat schema.sql.gz | mysql -uzabbix -p123456 zabbix_proxy
#修改zabbix-proxy的配置文件
[root@zabbix-proxy zabbix-proxy-mysql-3.0.18]# cd
[root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
24 Server=10.0.0.63 #zabbix-server的地址
43 Hostname=zabbix-proxy #主機名
128 DBHost=localhost #數據庫主機
139 DBName=zabbix_proxy #數據庫名稱
154 DBUser=zabbix #數據庫用戶名
162 DBPassword=123456 #數據庫密碼
配置文件中沒有配置的內容如下:(有需要可以配置)
ProxyLocalBuffer=0
#數據保留的時間(小時爲單位)
ProxyOfflineBuffer=1
#連不上Server,數據要保留多久(小時爲單位,默認1小時)
DataSenderFrequency=1
#數據的發送時間間隔(默認是1秒)
StartPollers=5
#啓動的線程數
StartIPMIPollers=0
#啓動IPMI的線程數
#啓動zabbix-proxy
[root@zabbix-proxy ~]# systemctl start zabbix-proxy.service
[root@zabbix-proxy ~]# systemctl enable zabbix-proxy.service
2、server端的web界面添加zabbix proxy
配置——>anget代理程序——>創建代理
agent代理程序名稱和proxy代理的主機名相同
proxy代理添加後,等待發現代理,如果不能及時發現代理,可以通過查看server和proxy的日誌進行檢查
[root@zabbix-server ~]# tail -f /var/log/zabbix/zabbix_server.log
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log
#重啓server端服務
[root@zabbix-server ~]# systemctl restart zabbix-server.service
#再重啓proxy端服務
[root@zabbix-proxy ~]# systemctl restart zabbix-proxy.service
Web界面進行檢查,代理成功添加
3、安裝配置zabbix-agent
由於agent端只有一個內網卡,不能上網,要安裝zabbix-agent可以採取的方法有:
a、將proxy配置爲路由器和agent的網關,使agent通過proxy上網安裝
b、在proxy端下載好agent程序發送到agent端再安裝
這裏選擇方法b
在proxy下載併發送
[root@zabbix-proxy ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.18-1.el7.x86_64.rpm
[root@zabbix-proxy ~]# scp zabbix-agent-3.0.18-1.el7.x86_64.rpm [email protected]:/root/
root@192.168.1.66's password:
zabbix-agent-3.0.18-1.el7.x86_64.rpm 100% 341KB 341.4KB/s 00:00
agent端yum本地安裝
[root@zabbix-agent ~]# yum localinstall -y zabbix-agent-3.0.18-1.el7.x86_64.rpm
#修改配置文件
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.conf
95 Server=192.168.1.65 #服務端即proxy的ip地址,內網地址
147 Hostname=192.168.1.66 #填寫主機名稱,或填寫爲ip地址便於區分
#啓動zabbix-agent
[root@zabbix-agent ~]# systemctl start zabbix-agent.service
[root@zabbix-agent ~]# systemctl enable zabbix-agent.service
4、server端的web界面添加主機
配置——>主機——>創建主機
主機名稱和agent端配置文件中相同,選擇代理
爲主機鏈接模板
5、檢驗
等待添加的主機變綠,變綠之後查看最新數據
若不能及時變綠,則需要重啓服務或使用命令zabbix_server -R config_cache_reload刷新配置緩存
至此,zabbix跨網段通過proxy代理監控主機配置完成!