zabbix proxy定义
zabbix 作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据然后由
zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy 可以代替 zabbix server 收集监控数据,然后把
数据汇报给 zabbix server,所以zabbix proxy可以在一定程度上分担了zabbix server 的数据收集压力,从而降低
了数据的采集时间、也相应的增加了zabbix server的监控能力。
另外zabbix proxy也区分主动模式和被动模式,通信方式与zabbix server主动模式和被动模式一样,区别是zabbix
proxy由于没有zabbix agent的配置,所以zabbix proxy在主动模式下要向zabbix server周期性的申请获取zabbix agent的监控项信息,但是zabbix proxy在被动模式下也是等待zabbix server的连接并接受zabbixserver发送的监控项指令,然后再有zabbix proxy向zabbix agent发起请求获取数据。

zabbix proxy和zabbix server
功能 | zabbix proxy | zabbix server |
---|---|---|
轻量级 | 是 | 相对重量级 |
图形 | 无 | 带图形控制界面 |
可以独立工作 | 是,可以独立采集数据并存储 | 是,数据采集、存储分析、展示 |
易维护 | 配置完成后基本无需管理 | 维护也不难 |
独立数据库 | 保留少量最新数据 | 保留指定时间内所有数据 |
报警通知 | 代理服务器不发邮件通知 | 支持邮件短信微信等告警 |
zabbix proxy版本选择
zabbix proxy的大版本必须要和zabbix server版本一致,否则会导致出现zabbix server与zabbix proxy不兼容的问题。
zabbix proxy安装
操作系统:centos 7
架构
zabbix server 主动模式 + proxy + agent
zabbix server 175.24.227.179
zabbix proxy 23.95.107.249
zabbix agent 154.17.29.27
安装zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
安装zabbix proxy
yum install zabbix-proxy-mysql
yum -y install zabbix-agent
安装mariadb-server
yum -y install mariadb-server.x86_64
systemctl start mariadb
systemctl enable mariadb
安装初始化数据库
我没有设置root密码
mysql_secure_installation
n y y y y
登录数据库
mysql -uroot -p
在数据库里执行以下SQL语句
create database zabbix_proxy character set utf8 collate utf8_bin;
create user zabbix@23.95.107.249 identified by '123456';
grant all privileges on zabbix_proxy.* to zabbix@23.95.107.249;
quit;
导入初始架构和数据
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix_proxy
配置/etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #0主动,1被动
Server=175.24.227.179 #zabbix server的IP
Hostname=frog-proxy #代理服务器名称,添加代理时名称必须一致
LogFile=/var/log/zabbix/zabbix_proxy.log
DebugLevel=3
EnableRemoteCommands=1 #允许zabbix server执行远程命令
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=23.95.107.249 #数据库服务器地址
DBName=zabbix_proxy #使用的数据库名称
DBUser=zabbix #连接数据库的用户名称
DBPassword=123456 #数据库用户密码
DBPort=3306
ProxyLocalBuffer=24 #已经提交到zabbix server的数据保留时间,不需要配置太久
ProxyOfflineBuffer=720 #未提交到zabbix server的时间保留时间,配到最大
HeartbeatFrequency=60 #心跳间隔检测时间,被动模式不使用
ConfigFrequency=60 #间隔多少秒从zabbix server获取监控项信息
DataSenderFrequency=5 #数据发送时间间隔,被动模式不使用
StartPollers=20 #启动的数据采集器数量
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=100M #保存监控项而占用的最大内存
HistoryCacheSize=16M #保存监控历史数据占用的最大内存
Timeout=30 #监控项超时时间
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000 #毫秒,多久的数据库查询会被记录到日志
StatsAllowedIP=127.0.0.1
重启服务
systemctl restart zabbix-proxy
在server端添加代理
zabbix server的配置可以看我之前的监控分类的下博客
点击 Administration — Proxies — Create Proxy
这里的 Proxy name 一定要和刚才配置文件中的Hostname一致

配置zabbix agent
配置 /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
Server=175.24.227.179,23.95.107.249 #server和proxy的地址都配上
ServerActive=23.95.107.249
Hostname=154.17.29.27
Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
重启服务
systemctl restart zabbix-agent.service
添加主机
添加上等一段时间就变绿了,如果不绿先检查日志确保没有错误,过了很久还是灰色的可以看我写的关于主动代理的模板的那篇博客。





总结
本文配置的是主动模式,也就是生产中使用的模式,被动模式的配置我就不写了因为用不上。做实验只用了三台服务器,生产环境中agent可以加很多台,方法都一样。