Zabbix分布式监控架构部署指南
Zabbix分布式监控架构部署指南
1. 部署架构概述
本文介绍Zabbix分布式监控架构的部署方案,包含1个Zabbix Server和2个Zabbix Proxy节点。Proxy节点负责收集区域内被监控主机的数据,再统一上报给Server端。
当前环境配置:
- Server节点: 192.168.1.112(root/123456, admin/123456, MySQL root/123456, zabbix/123456)
- Proxy节点: 192.168.1.113(root/123456, admin/123456, MySQL root/123456, zabbix/123456)
2. 部署前准备工作
- 关闭单机环境下的自动注册和自动发现功能
- 原有Server服务保持正常运行
- 确认防火墙和selinux已关闭
3. Zabbix Proxy服务部署
3.1 安装Proxy组件
配置Zabbix 5.0的yum源(与Agent端配置方法相同),然后修改为阿里云镜像源以提高下载速度:
yum install zabbix-proxy-mysql zabbix-get -y
3.2 数据库配置(MariaDB方案)
安装CentOS 7默认的MariaDB数据库:
yum install mariadb-server mariadb -y
systemctl start mariadb
netstat -tunlp | grep 3306
创建Proxy专用的数据库和用户:
mysql -uroot -p
MariaDB[(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB[(none)]> create user 'zabbix'@'localhost' identified by 'zabbix';
MariaDB[(none)]> grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost';
MariaDB[(none)]> flush privileges;
MariaDB[(none)]> quit;
查找并导入Proxy数据库结构:
rpm -ql zabbix-proxy-mysql | grep schema.sql.gz
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.2/schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy
验证导入结果:
mysql -uzabbix -pzabbix
MariaDB[(none)]> show databases;
MariaDB[(none)]> use zabbix_proxy;
MariaDB[(none)]> show tables;
3.3 数据库配置(MySQL 5.7方案)
下载并安装MySQL 5.7社区版:
cd /usr/local/src/
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-server --nogpgcheck
启动MySQL服务:
systemctl start mysqld
systemctl status mysqld
获取初始密码并修改:
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p'初始密码'
mysql> set password for root@localhost = password('123456');
创建Proxy数据库并授权:
mysql -uroot -p123456
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost' identified by '123456';
mysql> grant all privileges on zabbix_proxy.* to 'zabbix'@'%' identified by '123456' with grant option;
mysql> flush privileges;
mysql> quit;
导入数据库结构:
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.22/schema.sql.gz | mysql -uzabbix -p123456 zabbix_proxy
3.4 Proxy配置文件修改
备份原配置文件并添加数据库密码:
sed -i.ori '162a DBPassword=123456' /etc/zabbix/zabbix_proxy.conf
修改Server地址指向主节点:
sed -i 's#Server=127.0.0.1#Server=192.168.1.112#' /etc/zabbix/zabbix_proxy.conf
修改Proxy主机名:
sed -i 's#Hostname=Zabbix proxy#Hostname=zabbix-proxy1#' /etc/zabbix/zabbix_proxy.conf
验证关键配置项:
grep -E '^(Server|Hostname|DBPassword|DBName|DBUser)' /etc/zabbix/zabbix_proxy.conf
配置结果应包含:
Server=192.168.1.112
Hostname=zabbix-proxy1
DBPassword=123456
DBName=zabbix_proxy
DBUser=zabbix
3.5 启动Proxy服务
systemctl restart zabbix-proxy
systemctl enable zabbix-proxy
验证服务状态:
systemctl status zabbix-proxy
systemctl list-unit-files | grep zabbix-proxy
4. Web界面配置Proxy
在Zabbix Web管理界面完成以下操作:
- 进入「配置」→「Agent代理程序」
- 点击「创建代理」
- 填写代理参数:
- 代理程序名称: 必须与Proxy服务器上zabbix_proxy.conf中的Hostname一致
- 代理程序模式: 选择主动式(Proxy主动向Server推送数据)
- 代理地址: 填写Proxy服务器的IP地址
- 保存后,在主机列表中启用该Proxy
在Server端查看连接状态:
tail -f /var/log/zabbix/zabbix_server.log
看到以下日志表示连接成功:
sending configuration data to proxy "zabbix-proxy1" at "192.168.1.113", datalen 3662
5. 配置被监控主机使用Proxy
5.1 添加受监控主机
在Web界面「配置」→「主机」中添加新主机:
- 主机名称: 被监控主机的hostname
- 可见名称: 自定义显示名称
- Interfaces: 添加被监控主机的IP地址和端口10050
- 由agent代理程序监测: 选择刚才创建的Proxy节点
5.2 修改Agent配置
在被监控主机的Agent配置文件中指定Proxy地址:
grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
关键配置项说明:
- Server: Zabbix Server或Proxy的地址
- ServerActive: Zabbix Server或Proxy的地址
- Hostname: 必须与Web界面配置的主机名一致
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.1.113
ServerActive=192.168.1.113
Hostname=client-node-01
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
重启Agent服务:
systemctl restart zabbix-agent2
6. 故障排查
如发现数据未正常上报,可按以下顺序排查:
- 检查Proxy服务运行状态:
systemctl status zabbix-proxy - 查看Proxy日志:
tail -f /var/log/zabbix/zabbix_proxy.log - 查看Agent日志:
tail -f /var/log/zabbix/zabbix_agent2.log - 重启Proxy服务:
systemctl restart zabbix-proxy - 检查防火墙规则和SELinux状态
确认Web界面「监控」→「最新数据」中已正常显示被监控主机的指标数据。