一、 介绍
Zabbix代理可以代表Zabbix服务器收集性能和可用性数据。这样,代理可以承担一些收集数据的负担,并减轻Zabbix服务器的负担。
此外,当所有代理和代理都报告给一台Zabbix服务器并且集中收集所有数据时,使用代理是实现集中式和分布式监视的最简单方法。
Zabbix代理可用于:
- 监控远程位置的相关设备和主机
- 监视通讯不可靠的,网络不稳定的位置
- 监视数千个设备时,使用 Proxy 进行分布式监控。
- 简化分布式监控的维护
上图中,Proyx 仅需要一个与Zabbix服务器的TCP连接即可。这样,您只需配置一个防火墙规则,就可以轻松绕过防火墙。
注意:Zabbix代理必须使用单独的数据库。将其指向Zabbix服务器数据库将破坏配置。
代理收集的所有数据都存储在本地,然后再传输到服务器。这样,不会由于与服务器的任何临时通信问题而丢失任何数据。代理配置文件中的 ProxyLocalBuffer
和 ProxyOfflineBuffer
参数控制数据在本地保留多长时间。
zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。有关proxy功能的概述,如下表:
功能 | proxy支持(yes/no) | |
项目(Items) | ||
Zabbix agent checks | Yes | |
Zabbix agent checks (active) | Yes 1 | |
Simple checks | Yes | |
Trapper items | Yes | |
SNMP checks | Yes | |
SNMP traps | Yes | |
IPMI checks | Yes | |
JMX checks | Yes | |
日志文件监控(Log file monitoring) | Yes | |
内部检查(Internal checks) | Yes | |
SSH checks | Yes | |
Telnet checks | Yes | |
外部检查(External checks) | Yes | |
内置web监控(Built-in web monitoring) | Yes | |
网络发现(Network discovery) | Yes | |
自动发现(Low-level discovery) | Yes | |
触发器计算(Calculating triggers) | No | |
处理事件(Processing events) | No | |
发送报警(Sending alerts) | No | |
远程命令(Remote commands) | No |
注意: 使用 agent active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的 IP 地址。
二、 安装 Zabbix Proxy
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
2 数据库准备
为 Proxy 搭建单独的 MysQL 数据库服务器,并创建逻辑库、授权的用户。
# mysql -uroot -p
password
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost;
mysql> quit;
导入初始表结构。
# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix_proxy
3 配置 Zabbix Proxy
编辑 /etc/zabbix/zabbix_proxy.conf
3.1 为 Zabbix proxy 配置到数据库连接信息
# vi /etc/zabbix/zabbix_proxy.conf
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=<password>
3.2 为 Zabbix proxy 配置到 Zabbix Server 的信息
# 代理模式 0 主动上报给 Zabbix Server, 1 被动,默认 0
ProxyMode=0
Server=Zabbix 服务器的IP
# 唯一的、区分大小写的代理名称。确保服务器知道代理名称!
# 如果未定义,则从HostnameItem获取值。
Hostname=bj-proxy
# 允许日志文件最大多少 MB, 默认是 0,就是不限制大小,也就是不进行日志切割
LogFileSize=2
# 即使数据已经与服务器同步,代理也会在本地保留N个小时。
#如果第三方应用程序将使用本地数据,则可以使用此参数
# 默认 0
ProxyLocalBuffer=0
# 如果没有与Zabbix服务器连接,代理将保留数据N小时。
# 旧数据将丢失。
# 默认 1
ProxyOfflineBuffer=1
# 心跳消息的频率(秒)。
#用于监控服务器端代理的可用性。
#0-已禁用心跳消息。
#对于处于被动模式的代理,此参数将被忽略。
# 默认 60
HeartbeatFrequency=60
# 向服务端更新监控配置的间隔时间
# 为了快速看到实验效果,这里设置5秒,默认3600秒
ConfigFrequency=5
# 向服务端发送监控数据的间隔时间,单位秒
DataSenderFrequency=5
4 启动Zabbix Proxy 并检查
systemctl start zabbix-proxy.service
二、配置被 Proxy 监控的主机
# vi /etc/zabbix/zabbix_agentd.conf
# Zabbix Proxy 的 IP
Server=192.168.122.100
# 假如开启了 agent 的主动模式,这里也是 Zabbix Proxy 的 IP
ServerActive=192.168.122.100
二、在 Zabbix Server 端添加一个 Zabbix Proxy
1 页面上创建 Agent 代理
Zabbix Proxy 在服务端页面中叫做 agent 代理
2 配置代理的相关信息
三、在 Zabbix Server 端添加一个 被 Proxy 监控的主机