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