zabbix4.0:zabbix_proxy代理编译安装+zabbix_proxy.conf配置文件
zabbix_proxy的部署需要用到proxy本身及myslq数据库,其中数据库用来存储proxy从agent端获取到的"key:value"数据。
因此需要的安装包为:
mariadb(base源yum安装)

即:①agent会打开一个随机端口向proxy的10051端口发起请求,请求监控项,proxy本身没有监控项,所以proxy会通过本身的10051端口把请求发送给server的10051端口,请求agent的监控项(通过agent配置文件中的hostname识别不同的agent),server会通过数据库查找到agent对应的监控项,把监控项返还给proxy,proxy返还给agent,agent从而获得了监控项,进行数据采集;②agent把采集到的数据发送给proxy,proxy会把数据临时记录到数据库中,proxy根据配置文件中所设定的时间,把数据推送给server,server再把数据记录到数据库中;
主被动模式都是agent第一次获得监控项后,后面会根据该监控项采集数据,当达到server或者proxy配置文件中设置的指定同步时间后,由proxy向server获取最新的监控项,或由server把最新的监控项推送给proxy。
这样设置的好处:可以有效减轻server端的压力。将压力分散给各proxy端。
#ProxyMode=0 #{0表示主动式,1表示被动式;默认是主动式}
然后再结合zabbix_server的web端的proxy配置的Active(主动)、Passive(被动)来使用;
使用zabbix_proxy注意事项
# /opt/zabbix/sbin/zabbix_proxy -c /opt/zabbix/etc/zabbix_proxy.conf
# /opt/zabbix/sbin/zabbix_server
# /opt/zabbix/sbin/zabbix_proxy -c /opt/zabbix/etc/zabbix_proxy.conf
# /opt/zabbix/sbin/zabbix_server
zabbix_proxy编译安装
#yum install mariadb-server mariadb mariadb-devel -y
#systemctl restart mariadb
#systemctl enable mariadb
#yum install -y tar gcc make gcc-c++ net-snmp-devel libxml2-devel libcurl-devel pcre-devel #useradd -s /sbin/nologin zabbix #cd /usr/local/src/ #将源码包拷贝进去 #tar -zxvf zabbix-4.0.5.tar.gz #cd zabbix-4.0.5 #./configure --prefix=/opt/zabbix --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 #make && make install #chown -R zabbix:zabbix /opt/zabbix 可选择配置zabbix_proxy的环境变量,便于执行zabbix_proxy命令 验证proxy的安装 1.二进制文件/opt/zabbix/sbin/zabbix_proxy 2./opt/zabbix/sbin/zabbix_proxy --version
三、初始化mariadb数据库
#mysql_secure_installation (设置root密码,及一些初始设置)
#mysql -uroot -h 127.0.0.1 >create database zabbix character set utf8 collate utf8_bin; >grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbixpwd'; >set names utf8;(设置编码) >use zabbix;(进入zabbix数据库) >source /home/gaokai/zabbix-4.0.34/database/mysql/schema.sql;(导入表结构,zabbix_server需要导入三个文件,zabbix_proxy只导入一个文件;) 注意:导入的文件不是编译后的zabbix文件夹,而是zabbix-4.0.5.tar.gz解压后的zabbix-4.0.5文件夹。
如图
四、编辑zabbix_proxy的配置文件
#vim /usr/local/zabbix/etc/zabbix_proxy.conf Hostname=bjproxy(与网页上指定的proxy配置一样) Server=192.168.237.49(zabbix_server的地址) LogFile=/usr/local/zabbix/zabbix_proxy.log DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix DBPassword=zabbixpwd DBPort=3306 ConfigFrequency=60 启动:zabbix_proxy 验证: 1.启动zabbix_proxy 2.进程:#ps -aux |grep zabbix_proxy 3.端口:#netstat -nutlp 4.日志
五、配置完毕后,启动zabbix_proxy
正常情况下,启动zabbix_proxy后会有如下报警,是因为zabbix_web页面还未对proxy进行配置,当zabbix_web页面配置完毕后,该报警则会消失。

#ProxyMode=0 #{0表示主动式,1表示被动式;proxy默认是主动式} Server=192.168.221.129 #zabbix_server地址 #ServerPort=10051 #默认是10051 Hostname=proxy #proxy代理的Hostname,要与web配置一致。 DBHost=127.0.0.1 #数据库地址 DBName=zabbix #数据库名 DBUser=zabbix #数据库zabbix的user DBPassword=zabbixpwd #数据库zabbix的密码 #ProxyLocalBuffer=0 #{范围:0-720h}proxy在本地保存数据的时间,默认是0。当本地数据将由第三方应用程序使用时,则可以使用此参数。 #ProxyOfflineBuffer=1 #{范围:1-720h}proxy将保留数据N小时,以防与zabbix服务器没有连接。同时旧数据将会丢失。 #HeartbeatFrequency=60 #{范围:0-3600s}心跳消息的频率(秒)。用于监控在zabbix_server端该proxy的可用性。0表示心跳检查禁用。被动模式下的proxy,此参数将被忽略。 #ConfigFrequency=3600 #{范围:1-3600*24*7 (s)},proxy从zabbix服务器检索配置数据的频率(秒)。被动模式下的proxy,此参数将被忽略。 #DataSenderFrequency=1 #{范围:1-3600s} 代理将每隔N秒向zabbix_server端发送收集的数据。被动模式下的proxy,此参数将被忽略。 #StartPollers=5 #{范围:0-1000},轮询器中pre-forked实例的数量,默认是5。 #HistoryCacheSize=16M #{范围:128k-2G},历史缓存的大小,以字节为单位。用于存储历史数据的共享内存大小。 #CacheSize=8M #{范围:128k-64G},配置缓存的大小,以字节为单位。共享内存大小,用于存储主机和项目数据。 #Timeout=3 #{范围:1-30s}设置等待时间,即超时时间。 #User=zabbix #默认的运行用户。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统