如何配置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代理程序——>创建代理 ,界面如下:
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 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端配置文件中相同,选择代理