Zabbix Proxy分布式监控
1 概述
Zabbix proxy 使用场景:
监控远程区域设备
监控本地网络不稳定区域
监控上千设备时,减轻 zabbix server 的负荷
简化分布式监控的维护
当监控的服务器成千上万时,普通监控的Server压力会很大,所以就有了分布式监控来分担Server压力,即添加代理服务器,功能与Server差不多,代理服务器统一收集agent监控数据返回给Server进行处理。
zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可
zabbix proxy 数据库必须和 server 分开,否则数据会被破坏
proxy 收集到数据之后,首先将数据缓存在本地,然后在一定的时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定
2 实验环境准备
3 部署Zabbix Proxy
a:修改主机名
hostnamectl set-hostname zabbix-proxy
b:准备zabbix仓库
[root@zabbix-proxy ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
c:安装zabbix proxy软件,包名为:zabbix-proxy-mysql
[root@zabbix-proxy ~]# yum -y install zabbix-proxy-mysq
d:配置数据库
[root@zabbix-proxy ~]# yum -y install mariadb-server
[root@zabbix-proxy ~]# systemctl start mariadb
[root@zabbix-proxy ~]# systemctl enable mariadb
d:授权库与用户
[root@zabbix-proxy ~]# mysql
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate
utf8_bin;
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by '123456';
e:导入初始数据表与架构表
[root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.22/schema.sql.gz | mysql -uzabbix_proxy -p123456 zabbix_proxy
f:配置 zabbix proxy 连接数据库
[root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
...
30 Server=192.168.0.110 #指定zabbix server地址
49 Hostname=zabbix-proxy #指定本机名称(自定义),用于zabbix server区分每一个proxy节点
173 DBName=zabbix_proxy #指定数据库名(与数据库创建的库名保持一致)
188 DBUser=zabbix_proxy #指定连接数据库用户名(与数据库授权用户名称保持一致)
196 DBPassword=123456 #指定用户密码
g:启动zabbix proxy服务
[root@zabbix-proxy ~]# systemctl start zabbix-proxy
[root@zabbix-proxy ~]# systemctl status zabbix-proxy
[root@zabbix-proxy ~]# systemctl enable zabbix-proxy
#查看服务端口
[root@zabbix-proxy ~]# netstat -ntlp
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 18235/zabbix_proxy
到此为止 zabbix proxy配置完毕。
4 部署Zabbix Agent
如果该节点已经安装过zabbix agent程序,可直接修改配置文件指定zabbix proxy地址。
本案例由于前边已经部署过zabbix agent,所以直接跳过安装步骤。
a:修改zabbix agent配置文件指定zabbix proxy地址
[root@zabbix-agent ~]# vi /etc/zabbix/zabbix_agentd.conf
...
119 Server=192.168.0.112 #指定zabbix proxy地址
171 Hostname=192.168.0.113 #指定本机名称(自定义),用于zabbix proxy区分每一个agent节点
b:重启zabbix agent
[root@zabbix-agent ~]# systemctl restart zabbix-agent
5 Zabbix server添加代理
要在 Zabbix 前端配置代理:
转到:管理 → agent代理程序
单击 创建代理
参数介绍:
代理名称:它必须与proxy配置文件中的Hostname参数中的名称相同。
代理模式:
主动模式(Active) - proxy 将连接到Zabbix server并请求配置数据
被动模式(Passive) - Zabbix server 连接到 proxy
代理地址:可指定具体IP地址、某地址段、域名,proxy 主动发起的网络请求。仅在 代理模式 选择主动模式下生效
添加代理后,可看到如下页面,如果最近出现选项提示从未字段,是zabbix server还没识别到代理节点。可稍等片刻。
6 Zabbix Proxy添加Agent
转到 配置→主机→创建主机 指定agent节点信息
绑定模板:
重启zabbix server、zabbix proxy、zabbix agent节点
[root@zabbix-server ~]# systemctl restart zabbix-server
[root@zabbix-proxy ~]# systemctl restart zabbix-proxy
[root@zabbix-agent ~]# systemctl restart zabbix-agent
验证
到此为止,Zabbix Proxy分布式监控已配置完成。
思考:zabbix proxy能否创建自动发现或者自动注册?
为zabbix proxy创建自动发现:配置→自动发现
创建发现后动作:配置→动作→创建动作
评论区