之前已经搭建过zabbix了,在实际生产环境中可能会有大量的监控单元,这个时候如果还是单纯的靠zabbix server来接收监控数据的话,则可能有严重消耗zabbix server的性能导致监控故障。这个时候就需要部署proxy来进行分布式监控数据采集。
首先需要再proxy服务器端安装zabbix源。
rpm -Uvh https://repo.huaweicloud.com/zabbix/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
安装zabbix proxy
dnf install -y zabbix-proxy-mysql
安装完成后修改配置文件/etc/zabbix/zabbix_proxy.conf,主要修改如下内容:
ProxyMode=0 #proxy工作模式,0表示主动模式
Server=192.168.77.200 #zabbix-server的IP地址
ServerPort=10051 #zabbix-server的监听端口
Hostname=Zabbix_proxy #proxy主机名称
DBPassword=Password #数据库密码
ProxyOfflineBuffer=1 #与zabbix-server离线后数据保留时间(单位:小时)
HeartbeatFrequency=60 #与zabbix-server心跳检测时间(单位:秒)
ConfigFrequency=5 #拉取zabbix-server配置间隔时间(单位:秒)
DataSenderFrequency=1 #向zabbix-server提交监控数据的时间间隔(单位:秒)
zabbix proxy需要独立的数据库,所以我在proxy服务器本地安装一个mairdb,并进行配置,主要配置如下:
mysql -uroot -p
create database zabbix_proxy character set utf8 collate utf8_bin;
create user zabbix_proxy@localhost identified by '3e$R5t^Y';
grant all privileges on zabbix_proxy.* to zabbix_proxy@localhost;
flush privileges;
数据库配置完成后需要创建数据库库表,命令如下:
cp /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz ~
gunzip schema.sql.gz
cat schema.sql | mysql -uzabbix -p
开启端口,并关闭SELINUX,并启动服务,同时将服务加入自启动
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --reload
systemctl enable zabbix-proxy.service --now
至此proxy端配置完成。
下面开始在web页面中进行配置,进入“管理”选择“agent代理程序”,选择“创建代理”。如下图:
在窗口中输入代理的名称,根据proxy端的配置配置模式,填入proxy服务器的地址。如下图:
填加完成后入下图所示:
添加一台被监控主机,添加是与无proxy服务的区别是在agent代理程序检测处选择我们添加的proxy服务器。如下图:
添加主机并完成监控的效果如下图,被监控主机会显示proxy服务器的名称。