如何配置zabbix proxy代理

zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力。此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法 
zabbix proxy 使用场景: 
监控远程区域设备 
监控本地网络不稳定区域 
当 zabbix 监控上千设备时,使用它来减轻 server 的压力 
简化分布式监控的维护 

zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可 
zabbix proxy 数据库必须和 server 分开,否则数据会被破坏 
proxy 收集到数据之后,首先将数据缓存在本地,然后在一定的时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定 
注意从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于 CacheUpdateFrequency 的原因而无法快速更新。因此,proxy收集发送Zabbix server数据可能会被忽略 
zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。有关proxy功能的概述

第一 :相关准备操作

主要是安装数据库、server、proxy,并进行底层配置。

根据要安装的版本可以在以下连接下载。(需要根据操作系统的版本进行下载)

https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64

下载server版本和mysql版本。此次由于我zabbix  server安装的版本是3.2.3,建议下载对应的版本,由于没有3.3.2的版本下载,下载了接近的版本。
我安装proxy的操作系统是centos 6.1,下载地址如下:
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.0-1.el6.x86_64.rpm
https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.2/rhel/6/x86_64/zabbix-proxy-mysql-3.2.10-1.el6.x86_64.rpm下载后进行安装
rpm -hiv zabbix-agent-3.2.0-1.el6.x86_64.rpm 
上述安装成功

rpm -hiv zabbix-proxy-mysql-3.2.11-1.el6.x86_64.rpm 
上述安装不能成功,是因为相关的依赖包没有进行安装。
采用yum进行安装zabbix-proxy 
 yum install -y zabbix-proxy-mysql如果本机没有数据库安装数据库。
yum install -y mariadb-server        #安装数据库 
 systemctl start mariadb.service         #启动数据库 
 systemctl enable mariadb.service        #开机启动 由于此次安装本机有数据库,不进行安装。用数据库超级管理员进入数据库
mysql -uroot -pxxxxxx 
 create database zabbix_proxy default charset utf8; 
 MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;    #创库 
 MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by '123456';    #授权 
 MariaDB [(none)]> exit 
 [root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql|grep sql 
 /usr/sbin/zabbix_proxy_mysql 
 .......... 
 /usr/share/doc/zabbix-proxy-mysql-3.2.11  /README 
 ........
 [root@zabbix-proxy ~]# cd  /usr/share/doc/zabbix-proxy-mysql-3.2.11               #导入数据库 
 [root@zabbix-proxy zabbix-proxy-mysql-3.2.11  ]# zcat schema.sql.gz | mysql -uzabbix -pXXX zabbix_proxy 上述mysql的路径需要根据安装的版本进行修改
[root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf        #修改zabbix-proxy的配置文件 
 24 Server=xxxxxxx   #zabbix-server的地址 
 43 Hostname=zabbix-proxy        #主机名 
 128 DBHost=localhost            #数据库主机 
 139 DBName=zabbix_proxy        #数据库名称 
 154 DBUser=zabbix            #数据库用户名 
 162 DBPassword=xxxx        #数据库密码 
配置文件中没有配置的内容如下:(有需要可以配置) 
 # ProxyLocalBuffer=0 
 #数据保留的时间(小时为单位) 
 # ProxyOfflineBuffer=1 
 #连不上Server,数据要保留多久(小时为单位,默认1小时) 
 # DataSenderFrequency=1 
 #数据的发送时间间隔(默认是1秒) 
 # StartPollers=5 
 #启动的线程数 
 # StartIPMIPollers=0 
 #启动IPMI的线程数 
 [root@zabbix-proxy ~]# systemctl start zabbix-proxy.service         #启动zabbix-proxy 
 [root@zabbix-proxy ~]# systemctl enable zabbix-proxy.service        #开机启动 
如果日志出现如下的错误:
 31371:20190328:170610.414 [Z3001] connection to database 'zabbix_proxy' failed: 
 [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决方法如下:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
重新启动zabbix_proxy

第二 :如何在server端配置proxy

server端的web界面添加zabbix proxy 
Administration——>anget代理程序——>创建代理 ,界面如下:

zabbix 容器 proxy zabbix proxy 连接 zabbix server_mysql


proxy代理添加后,等待发现代理,如果不能及时发现代理,可以通过查看server和proxy的日志进行检查 

[root@zabbix-server ~]# tail -f /var/log/zabbix/zabbix_server.log 
 [root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log 
 [root@zabbix-server ~]# systemctl restart zabbix-server.service        #重启server端服务 
 [root@zabbix-proxy ~]# systemctl restart zabbix-proxy.service        #再重启proxy端服务 
 Web界面进行检查,代理成功添加 。
如果不能成功,重启进程或者调试参数
 可能需要修改的配置参数如下:
 ConfigFrequency=60 #zabbix proxy从zabbix server取得配置数据的频率 
 DataSenderFrequency=1#这个是proxy端向server端发送数据的时间,单位是秒,几乎等于实时同步

zabbix 容器 proxy zabbix proxy 连接 zabbix server_zabbix_02


第三:安装zabbix  agent

下载对应的版本https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/  ,主要是根据操作系统的版本进行安装

rpm -hiv zabbix-agent-3.2.1-1.el6.x86_64.rpm 
修改配置文件  
 vi /etc/zabbix/zabbix_agentd.conf 
主要修改三个参数
Server=10.255.38.65
 ServerActive=10.255.38.65
填写proxy的地址,根据自己的需要填写主动模式,主要是看模板的配置,如果是配置成active 模式,一定要配置ServerActive。
如果有防火墙,一定要开放zabbix对应的端口,默认是10050和10051端口。
Hostname=10.255.38.51
注意Hostname可以不是本机的Hostname,可以填写IP地址,此配置一定要zabbix server上添加的主机名一致,不然有些数据比如端口监控可能无法获取数据。
启动zabbix-agent
如果是redhat 6版本
service zabbix-agent start
 service zabbix-agent restart
 chkconfig zabbix-agent on
如果是redhat 7版本
systemctl start zabbix-agent.service             #启动zabbix-agent 
 systemctl enable zabbix-agent.service            #开机启动

第四、server端的web界面添加主机 

配置——>主机——>创建主机 

主机名称和agent端配置文件中相同,选择代理 

zabbix 容器 proxy zabbix proxy 连接 zabbix server_zabbix_03