Zabbix proxy 是一個可以從一個或多個受監(jiān)控設備采集監(jiān)控數(shù)據(jù)并將信息發(fā)送到 Zabbix server 的進程,主要是代表 Zabbix server 工作。 所有收集的數(shù)據(jù)都在本地緩存,然后傳輸?shù)?proxy 所屬的 Zabbix server。
部署Zabbix proxy 是可選的,但可能非常有利于分擔單個 Zabbix server 的負載。 如果只有代理采集數(shù)據(jù),則 Zabbix server 上會減少 CPU 和磁盤 I/O 的開銷。
Zabbix proxy 是無需本地管理員即可集中監(jiān)控遠程位置、分支機構(gòu)和網(wǎng)絡的理想解決方案。
Zabbix proxy 需要使用獨立的數(shù)據(jù)庫。
下載
cd /tmp && wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.9/zabbix-4.0.9.tar.gz
解壓
tar -xzf zabbix-4.0.9.tar.gz
創(chuàng)建用戶和組并創(chuàng)建安裝目錄
sudo groupadd zabbixsudo useradd -g zabbix zabbixsudo mkdir /opt/zabbix-proxysudo chown zabbix:zabbix /opt/zabbix-proxy
安裝依賴包
yum install -y mysql-devel net-snmp net-snmp-devel libssh2-devel
編譯安裝
cd zabbix-4.0.9# 如果想使用其它參數(shù)和數(shù)據(jù)庫,使用 ./configure --help 查看選項和參數(shù),使用mysql 作為 proxy 的數(shù)據(jù)庫./configure --prefix=/opt/zabbix-proxy --enable-proxy --with-net-snmp --with-mysql --with-ssh2make install
Zabbix proxy 是將數(shù)據(jù)儲存在本地,然后傳輸?shù)?Zabbix Server 的。所以我們需要創(chuàng)建 Zabbix proxy 的數(shù)據(jù)庫。
# 創(chuàng)建數(shù)據(jù)庫create database zabbix_proxy character set utf8 collate utf8_bin;# 創(chuàng)建用戶grant all privileges on zabbix_proxy.* to zabbix_fy@localhost identified by 'password';
導入數(shù)據(jù),zabbix proxy 不需要將所有的數(shù)據(jù)庫數(shù)據(jù)都導入,只需要導入 schema.sql
mysql -u zabbix_fy -p --database zabbix_proxy </tmp/zabbix-4.0.9/database/mysql/schema.sql
默認配置文件是 位于 安裝目錄的./etc/zabbix_proxy.conf
。
默認啟用的是主動模式,默認監(jiān)聽端口: 10051。參數(shù)詳解:官方文檔
Server=# 填入zabbix server 的ipServerPort= # zabbix server 監(jiān)聽的端口,默認為 10051Hostname=#zabbix Proxy 的名稱DBHost= # 數(shù)據(jù)庫地址DBName=zabbix_proxy # 數(shù)據(jù)庫名稱DBUser=zabbix_fy # 用戶名DBPassword=sRW123456 # 密碼ProxyOfflineBuffer=24 # 如果連接不到zabbix-server,數(shù)據(jù)保存多久。
systemd
服務創(chuàng)建 /usr/lib/systemd/system/zabbix-proxy.service
文件。并添加以下內(nèi)容:
[Unit]Description=Zabbix ProxyAfter=syslog.targetAfter=network.target[Service]User=zabbixGroup=zabbixEnvironment="CONFFILE=/opt/zabbix-proxy/etc/zabbix_proxy.conf"Type=forkingRestart=on-failurePIDFile=/tmp/zabbix_proxy.pidKillMode=control-groupExecStart=/opt/zabbix-proxy/sbin/zabbix_proxy -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10sTimeoutSec=0[Install]WantedBy=multi-user.target
啟動服務并設置為開機自啟
# sudo systemctl restart zabbix-proxy# sudo systemctl enable zabbix-proxy
開放對應的端口
sudo firewall-cmd --add-port=10051/tcp --permanent sudo firewall-cmd --reload
這里報的錯都是由于依賴包沒有安裝,導致編譯時報錯。
錯誤一
checking for the linux kernel version... unknown family (3.10.0-862.14.4.el7.x86_64)checking size of void *... 8checking for mysql_config... nochecking for mariadb_config... noconfigure: error: MySQL library not found
解決辦法
yum install -y mysql-devel
錯誤二
checking for Zabbix server/proxy database selection... okchecking for multirow insert statements... yeschecking for pkg-config... /usr/bin/pkg-configchecking pkg-config is at least version 0.9.0... yeschecking for net-snmp-config... noconfigure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解決辦法
yum install net-snmp net-snmp-devel -y
錯誤三
checking for main in -lnetsnmp... yeschecking for localname in struct snmp_session... yeschecking for SSH2 support... noconfigure: error: SSH2 library not found
解決辦法
yum install libssh2-devel -y
下載
cd /tmp && wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.9/zabbix-4.0.9.tar.gz
解壓
tar -xzf zabbix-4.0.9.tar.gz
創(chuàng)建用戶和組并創(chuàng)建安裝目錄
sudo groupadd zabbixsudo useradd -g zabbix zabbixsudo mkdir /opt/zabbix-agentsudo chown zabbix:zabbix /opt/zabbix-agent
編譯安裝
cd zabbix-4.0.9./configure --prefix=/opt/zabbix-agent --enable-agent
默認配置文件是 位于 安裝目錄的./etc/zabbix_agentd.conf
。
我們一般需要更改以下參數(shù):
Server: 設置該值為 Zabbix Server IP.默認為 127.0.0.1ServerActive:設置該值為 Zabbix Server IP,如果 Zabbix Server 不是使用的默認10051端口,我們可以在此加上端口號,形如:192.168.12.234:11051,默認為127.0.0.1Hostname :設置為主機的主機名,默認為 zabbix server LogFileSize=1 日志文件超過 1M 就進行切割。值為 0時表示不切割日志。 默認為 1EnableRemoteCommands:是否開啟遠程命令 默認為 0
systemd
服務創(chuàng)建 /usr/lib/systemd/system/zabbix-agent.service
文件。并添加以下內(nèi)容:
[Unit]Description=Zabbix AgentAfter=syslog.targetAfter=network.target[Service]User=zabbixGroup=zabbixEnvironment="CONFFILE=/opt/zabbix-agent/etc/zabbix_agentd.conf"Type=forkingRestart=on-failurePIDFile=/tmp/zabbix_agentd.pidKillMode=control-groupExecStart=/opt/zabbix-agent/sbin/zabbix_agentd -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10s[Install]WantedBy=multi-user.target
啟動服務并設置為開機自啟
sudo systemctl restart zabbix-agentsudo systemctl enable zabbix-agent
開放對應的端口
sudo firewall-cmd --add-port=10050/tcp --permanent sudo firewall-cmd --reload
源碼安裝官方文檔 :點我,官方文檔可能沒有我這里詳細哦。