zabbix3 ---- zabbix proxy
zabbix3 ---- zabbix proxy
zabbix proxy
https://www.zabbix.com/documentation/4.0/zh/manual/concepts/proxy
Zabbix proxy 是一个可以从一个或多个受监控设备采集监控数据并将信息发送到 Zabbix server 的进程,主要是代表 Zabbix server 工作。 所有收集的数据都在本地缓存,然后传输到 proxy 所属的 Zabbix server。
部署 Zabbix proxy 是可选的,但可能非常有利于分担单个 Zabbix server 的负载。 如果只有代理采集数据,则 Zabbix server 上会减少 CPU 和磁盘 I/O 的开销。(主机多的情况下,使用zabbix proxy是一种很好的优化方案)
Zabbix proxy 需要使用独立的数据库。
应用场景
多机房:在两个或以上的机房环境中,无法通过一台zabbix server对agent进行有效的实时的监控。
主机多:主机数量数百上千台。一台zabbix server无法承受如此之大的工作量。
网络隔离:网络之间互相隔离,一台zabbix server无法与所有agent的网络相连接。
主动和被动(这里指的是agent)
被动模式
zabbix server 根据策略指定的时间主动发送请求给zabbix agent获取监控项,agent收集完数据并发送给zabbix server,在百台服务器环境下不能及时获取新的数据
对zabbix server 来说是主动模式
对zabbix agent来说是被动模式,默认模式
主动模式
zabbix agent和zabbix server 第一次建立连接后,获取监控项后,周期性主动向zabbix server发送数据,监控项也会根据策略周期性同步,不再需要zabbix serve进行干预,因此主动模式在一定程度上可减轻zabbix server的压力
对zabbix server 来说是被动模式
对zabbix agent来说是主动模式
安装proxy
zabbix agent 采集数据给 zabbix proxy ,proxy可将数据缓存并发送给server
对于proxy来说,被动模式效率较低
安装zabbix proxy
yum install zabbix-proxy-mysql
proxy 主动模式
创建主动模式数据库
create database zabbix_proxy_active character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy_active .* to zabbix_active@"192.168.10.%" identified by 'pass123';
zcat /usr/share/doc/zabbix-proxy-mysql-4.0.34/schema.sql.gz | mysql -h192.168.10.2 -uzabbix_active -p zabbix_proxy_active
修改配置文件
grep ^[a-Z] /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #0为主动,1为被动,被动模式效率较低
Server=192.168.10.2 #zabbix server主机名或IP
ServerPort=10051 #zabbix server端口
Hostname=zabbix_proxy_active #代理服务器名称,与在zabbix web中添加代理proxy name保持一致
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=192.168.10.11 #proxy连接数据的地址
DBName=zabbix_proxy_active #数据库名称
DBUser=zabbix_active #连接数据库用户
DBPassword=pass123 #连接数据库密码
ProxyLocalBuffer=720 #提交到zabbix server的数据保留时间,性能较好的机器数据可设置,取值范围0-720
ProxyOfflineBuffer=720 #未提交到zabbix server数据保存时间,推荐设置最大值720
HeartbeatFrequency=60 #心跳信息的频率,探测服务端的可用性,被动模式可忽略此选项
ConfigFrequency=60 #代理每秒从Zabbix服务器检索配置数据的频率(更新监控项),推荐值设置短一点,被动模式可忽略
DataSenderFrequency=5 #代理将每隔N秒向服务器发送一次所选数据,数据发送间隔时间,被动可忽略
StartPollers5 #预启动时,启动多少个采集器
JavaGateway=192.168.10.2 #zabbix java gateway 主机
JavaGatewayPort=10052 #java gateway端口
CacheSize=8M 用于存储主机和数据项的配置缓存大小,推荐设置大一点
HistoryCacheSize=16M 用于存储历史数据的共享内存大小
HistoryIndexCacheSize=4M 索引历史缓存的共享内存大小
Timeout=30 #监控超时时间,默认单位秒
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000 #数据库查询会被记录到日志,默认单位毫秒
启动zabbix proxy服务
systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service
web添加proxy
克隆一套模板并修改主动模式
Template OS Linux Active --> 监控项 --> 全选 --> 批量更新
修改模板自动发现规则
将默认被动模式修改为主机模式,更新时间可根据实际情况修改
监控项原型也需要修改
添加/修改一台主机到proxy中
修改agent配置
grep ^[a-Z] /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1,192.168.10.2
ServerActive=192.168.10.3 指定proxy的地址
Hostname=192.168.10.11
Include=/etc/zabbix/zabbix_agentd.d/*.conf
此时数据是通过proxy采集过来的
proxy 被动模式
创建被动模式数据库
create database zabbix_proxy_passive character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy_passive .* to zabbix_passive@"192.168.10.%" identified by 'pass123';
zcat /usr/share/doc/zabbix-proxy-mysql-4.0.34/schema.sql.gz | mysql -h192.168.10.2 -uzabbix_active -p zabbix_proxy_active
修改配置文件
grep ^[a-Z] zabbix_proxy.conf
ProxyMode=1
Server=192.168.10.2
ServerPort=10051
Hostname=zabbix_proxy_passive
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=192.168.10.11
DBName=zabbix_proxy_passive
DBUser=zabbix_passive
DBPassword=pass123
ProxyLocalBuffer=60
ProxyOfflineBuffer=720
StartPollers=5
JavaGateway=192.168.10.2
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=8M
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
启动zabbix proxy服务
systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service
修改agent配置
serveractive 在Proxy被动模式下不生效
grep ^[a-Z] zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.10.4
ListenIP=0.0.0.0
StartAgents=3
ServerActive= #如果设置为空或者注释,就代表关闭 zabbix agent 的主动模式
Hostname=192.168.10.14
Include=/etc/zabbix/zabbix_agentd.d/*.conf
web添加proxy
添加一台主机到proxy中
此过程有点慢,需要等待一段时间,大约在30分钟
查看proxy采集的数据
小结
proxy一般用于跨机房或者跨网段
被动模式应用较少,效率较低
proxy被动模式,agent也是被动模式,连接大约在30分钟
关于agent主动与被动排查问题
1、找错误日志,没有开DEBUG
2、检查网络
3、检查进程
4、检查配置文件ServerActive指向正常的server/proxy,确保是主动模式
5、zabbix server 与 zabbix agent 版本是否兼容
6、参考:HostMetadataItem=system.uname
7、其他可能性
关于zabbix web查看主机zbx图标不亮,主动模式
1、其他可以忽略,主模式模式,agent主动发数据给server,可忽略客户端端口
2、可添加agent配置文件active允许server/proxy连接,监听端口打开
3、采集器数量是否合理分配
zabbix agent active --> zabbix proxy passive --> zabbix server