zabbix proxy代理概述
zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.
此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
zabbix proxy 使用场景:
-
监控远程区域设备
-
监控本地网络不稳定区域
-
当 zabbix 监控上千设备时,使用它来减轻 server 的压力
-
简化分布式监控的维护
分布式监控
zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力,此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都
集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
应用场景
监控远程区域设备
监控本地网络不稳定区域
当 zabbix 监控上千设备时,使用它来减轻 server 的压力
简化分布式监控的维护
注意:zabbix_proxy的数据库必须与zabbix_server的数据库分开。不过可以同时在server端创建zabbix数据库与zabbix_proxy数据库,记得授权即可。
实战部署
实验环境:
监控端:192.168.179.102
代理端:192.168.179.103
被监控端:192.168.179.104
代理端:192.168.179.103 zbbix proxy安装与配置
这里使用yum安装,在192.168.179.103执行下列命令
安装proxy和连接mysql数据库的组件
[root@localhost ~]# yum install zabbix40-proxy.noarch zabbix40-proxy-mysql.x86_64 zabbix40-dbfiles-mysql.noarch -y
因为zabbix proxy是会收集agent的数据,所以也需要数据库
[root@localhost ~]# yum install mariadb mariadb-server mariadb-devel -y
[root@localhost ~]# systemctl start mariadb
创建数据库,导入表结构,对于Zabbix proxy 数据库, 只需要导入 schema.sql (不需要 images.sql 和 data.sql)
MariaDB [(none)]> create database zabbix_proxy charset utf8;
MariaDB [(none)]> grant all on zabbix_proxy.* to "zabbix"@localhost identified by "123456";
MariaDB [(none)]> flush privileges;
[root@localhost ~]# mysql -uzabbix -p123456 zabbix_proxy < /usr/share/zabbix-mysql/schema.sql
MariaDB [(none)]> use zabbix_proxy;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [zabbix_proxy]> show tables;
+----------------------------+
| Tables_in_zabbix_proxy |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
| application_template |
| applications |
修改配置文件/etc/zabbix_proxy.conf
[root@localhost ~]# vim /etc/zabbix_proxy.conf
############ GENERAL PARAMETERS #################
### Option: ProxyMode
# Proxy operating mode.
# 0 - proxy in the active mode
# 1 - proxy in the passive mode
#
# Mandatory: no
# Default:
# ProxyMode=0
ProxyMode=0 #0为主动, 1为被动
Hostname=proxy-123 #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
Server=192.168.179.102 #zabbix server服务器的地址或主机名
DBHost=localhost #数据库服务器地址
DBUser=zabbix
HeartbeatFrequency=60 #心跳间隔检测时间,默认60秒,范围0-3600秒, 被动模式不使用
ConfigFrequency=60 #间隔多久从zabbix server 获取监控信息
DataSenderFrequency=3 #数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
ProxyLocalBuffer=3 #数据同步到server,数据还会保存多久,单位小时
ProxyOfflineBuffer=24 #未提交的数据保存多长时间
[root@localhost ~]# systemctl start zabbix-proxy
被监控端:192.168.179.104 zabbix agent安装与配置
[root@localhost ~]# yum install zabbix40-agent.x86_64 -y
[root@localhost ~]# vim /etc/zabbix_agentd.conf
Server=192.168.179.103 #这里填写proxy的地址,因为是由proxy来收集数据的
[root@localhost ~]# systemctl start zabbix-agent
接下来就可以在zabbix server的web端设置了 添加代理
这个名字要和配置文件里面Hostname=proxy-123保持一致,而且默认是主动模式
接下来添加主机,由proxy收集数据
查看proxy是否配置成功
查看代理proxy的日志
[root@localhost ~]# tail -f /var/log/zabbixsrv/zabbix_proxy.log
1958:20200626:095136.398 cannot send proxy data to server at "192.168.179.102": proxy "proxy-123" not found
1958:20200626:095137.400 cannot send proxy data to server at "192.168.179.102": proxy "proxy-123" not found
1958:20200626:095138.411 cannot send proxy data to server at "192.168.179.102": proxy "proxy-123" not found
1958:20200626:095139.414 cannot send proxy data to server at "192.168.179.102": proxy "proxy-123" not found
1950:20200626:095230.510 received configuration data from server at "192.168.179.102", datalen 3516
1950:20200626:095330.832 received configuration data from server at "192.168.179.102", datalen 3516
1950:20200626:095431.139 received configuration data from server at "192.168.179.102", datalen 3516
1950:20200626:095531.487 received configuration data from server at "192.168.179.102", datalen 13032
1970:20200626:095533.006 Zabbix agent item "vfs.fs.inode[/,pfree]" on host "192.168.179.104" failed: first network error, wait for 15 seconds
1950:20200626:095631.794 received configuration data from server at "192.168.179.102", datalen 13032
1950:20200626:095732.090 received configuration data from server at "192.168.179.102", datalen 13032
1950:20200626:095832.322 received configuration data from server at "192.168.179.102", datalen 13032
1950:20200626:095932.488 received configuration data from server at "192.168.179.102", datalen 13032
1950:20200626:100032.786 received configuration data from server at "192.168.179.102", datalen 13032
1985:20200626:100117.090 enabling Zabbix agent checks on host "192.168.179.104": host became available
1950:20200626:100132.967 received configuration data from server at "192.168.179.102", datalen 13032
#proxy代理端获取被监控端的键值
[root@localhost ~]# zabbix_get -s 192.168.179.104 -k system.uname
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
可以看到数据变绿了,proxy配置成功