Zabbix-proxy源码安装,超详细教程
一 、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安装
下载
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.9.tar.gz
解压
[yunwei@1 home]# tar zxvf zabbix-6.0.9.tar.gz
创建用户和组并创建安装目录
[yunwei@1 home]# groupadd zabbix
[yunwei@1 home]# useradd -g zabbix zabbix
[yunwei@1 home]# mkdir /home/zabbix_proxy
[yunwei@1 home]# chown -R zabbix:zabbix /home/zabbix_proxy/
[root@mysql_slave home]# ll
总用量 0
drwxr-xr-x 2 zabbix zabbix 4096 Dec 20 11:01 zabbix_proxy
安装依赖包
[yunwei@1 home]# yum -y install mysql-devel net-snmp net-snmp-devel libssh2-devel gcc gcc-c++ libevent-devel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Package 1:mariadb-devel-5.5.68-1.el7.x86_64 already installed and latest version
Package 1:net-snmp-5.7.2-49.el7_9.1.x86_64 already installed and latest version
Package 1:net-snmp-devel-5.7.2-49.el7_9.1.x86_64 already installed and latest version
Package libssh2-devel-1.8.0-4.el7.x86_64 already installed and latest version
Package gcc-4.8.5-44.el7.x86_64 already installed and latest version
Package gcc-c++-4.8.5-44.el7.x86_64 already installed and latest version
Package libevent-devel-2.0.21-4.el7.x86_64 already installed and latest version
Nothing to do
编译安装
[yunwei@1 home]# cd zabbix-6.0.9/
# 如果想使用其它参数和数据库,使用 ./configure --help 查看选项和参数,使用mysql 作为 proxy 的数据库
[yunwei@1 zabbix-6.0.9]# ./configure --prefix=/home/zabbix_proxy --enable-proxy --with-net-snmp --with-mysql --with-ssh2
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[yunwei@1 zabbix-6.0.9]# make install
创建Zabbix proxy数据库并导入数据
Zabbix proxy 是将数据储存在本地,然后传输到 Zabbix Server 的。所以我们需要创建 Zabbix proxy 的数据库。
# 创建数据库
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
# 创建用户
mysql> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by '5ID3#OdTiS6YvM8x';
mysql> grant all privileges on zabbix_proxy.* to zabbix@'192.168.0.3' identified by '5ID3#OdTiS6YvM8x';
导入数据,zabbix proxy 不需要将所有的数据库数据都导入,只需要导入 schema.sql
[yunwei@1 home]# mysql -u zabbix -p5ID3#OdTiS6YvM8x --database zabbix_proxy < /home/zabbix-6.0.9/database/mysql/schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
更改Zabbix proxy 配置文件
默认配置文件是 位于 安装目录的./etc/zabbix_proxy.conf
。
默认启用的是主动模式,默认监听端口: 10051
Server= # 填入zabbix server 的ip
ServerPort= # zabbix server 监听的端口,默认为 10051
Hostname=#zabbix Proxy 的名称
DBHost= # 数据库地址
DBName=zabbix_proxy # 数据库名称
DBUser=zabbix # 用户名
DBPassword=5ID3#OdTiS6YvM8x # 密码
DBPort=3309 # 端口
ProxyOfflineBuffer=24 # 如果连接不到zabbix-server,数据保存多久。
ConfigFrequency=60 #多久从zabbix-server接受配置,默认3600s
DataSenderFrequency=60 #多久向zabbix-server发送收集数据,默认1
Timeout=10 #等待agent回应超时时间,默认4s
设置为 systemd 服务
创建 vim /usr/lib/systemd/system/zabbix-proxy.service 文件。并添加以下内容:
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target
[Service]
User=zabbix
Group=zabbix
Environment="CONFFILE=/home/zabbix_proxy/etc/zabbix_proxy.conf"
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_proxy.pid
KillMode=control-group
ExecStart=/home/zabbix_proxy/sbin/zabbix_proxy -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target
启动服务并设置为开机自启
[yunwei@1 ~]# systemctl restart zabbix-proxy
[yunwei@1 ~]# systemctl enable zabbix-proxy
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.
[yunwei@1 ~]# systemctl status zabbix-proxy
● zabbix-proxy.service - Zabbix Proxy
Loaded: loaded (/usr/lib/systemd/system/zabbix-proxy.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-12-20 11:44:48 CST; 12s ago
Main PID: 66226 (zabbix_proxy)
CGroup: /system.slice/zabbix-proxy.service
└─66226 /home/zabbix_proxy/sbin/zabbix_proxy -c /home/zabbix_proxy/etc/zabbix_pr...
Dec 20 11:44:48 1 systemd[1]: Starting Zabbix Proxy...
Dec 20 11:44:48 1 systemd[1]: Started 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
错误四
configure: error: no acceptable C compiler found in $PATH
解决办法:
yum -y install gcc gcc-c++
错误五
# tail -f /tmp/zabbix_proxy.log
42168:20221220:180706.930
42205:20221220:180719.160 Starting Zabbix Proxy (active) [yizhuang_proxy]. Zabbix 6.0.9 (revision 64721203c07).
42205:20221220:180719.160 **** Enabled features ****
42205:20221220:180719.160 SNMP monitoring: YES
42205:20221220:180719.161 IPMI monitoring: NO
42205:20221220:180719.161 Web monitoring: NO
42205:20221220:180719.161 VMware monitoring: NO
42205:20221220:180719.161 ODBC: NO
42205:20221220:180719.161 SSH support: YES
42205:20221220:180719.161 IPv6 support: NO
42205:20221220:180719.161 TLS support: NO
42205:20221220:180719.161 **************************
42205:20221220:180719.161 using configuration file: /home/zabbix_proxy/etc/zabbix_proxy.conf
42205:20221220:180719.177
42205:20221220:180719.177 Unable to start Zabbix proxy due to unsupported MySQL database version (5.07.38).
42205:20221220:180719.177 Must be at least (8.00.0).
42205:20221220:180719.177 Use of supported database version is highly recommended.
42205:20221220:180719.177 Override by setting AllowUnsupportedDBVersions=1 in Zabbix proxy configuration file at your own risk.
原因
根据提示分析是因为zabbix 6.0.9对数据库的版本有要求,但是可以通过设置跳过检查 执行下面的命令添加配置跳过检查
echo "AllowUnsupportedDBVersions=1" >> /home/zabbix_proxy/etc/zabbix_proxy.conf
解决办法
mysql尽量使用8版本以上的
添加代理
管理---agent代理程序---创建代理
agent配置代理
查看agent代理程序是否发现了agent
查看agent数据是否正常上传到server