Zabbix 7.0全流程部署指南:CentOS Stream 9环境实战

一、Zabbix 7.0技术架构解析

Zabbix 7.0采用模块化分层架构设计,核心组件包括:

  • Web前端:基于PHP的交互界面,默认通过Nginx代理的8080端口提供服务
  • Server服务:处理监控逻辑的核心进程,包含数据采集、触发器计算、告警通知等模块
  • 数据库存储:MySQL 8.0+存储配置信息、历史数据及事件记录
  • Agent客户端:轻量级数据采集器,通过10050端口与Server通信
  • Proxy组件(可选):分布式监控场景下的数据中转节点

数据流路径为:Agent采集数据 → Server处理存储 → Web前端可视化展示。该架构支持横向扩展,单Server实例可管理超过10,000个监控项。

二、系统环境准备

2.1 硬件配置建议

组件 最低配置 推荐配置
CPU 2核 4核及以上
内存 4GB 16GB(含数据库)
磁盘空间 40GB 200GB+(SSD)
网络带宽 100Mbps 1Gbps

2.2 系统初始化

  1. # 更新系统包
  2. dnf update -y
  3. # 安装基础工具
  4. dnf install -y epel-release wget vim net-tools
  5. # 配置时区与语言
  6. timedatectl set-timezone Asia/Shanghai
  7. localectl set-locale LANG=en_US.UTF-8

三、Zabbix软件包安装

3.1 配置官方仓库

  1. # 下载仓库RPM包(使用通用托管地址)
  2. wget https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-1.el9.noarch.rpm
  3. # 安装并清理缓存
  4. rpm -Uvh zabbix-release*.rpm
  5. dnf clean all && dnf makecache

3.2 组件安装

  1. # 安装核心组件包
  2. dnf install -y \
  3. zabbix-server-mysql \
  4. zabbix-web-mysql \
  5. zabbix-nginx-conf \
  6. zabbix-sql-scripts \
  7. zabbix-selinux-policy \
  8. zabbix-agent \
  9. mariadb-server # 使用社区版MySQL替代方案
  10. # 验证安装版本
  11. rpm -qa | grep zabbix | grep 7.0

四、数据库初始化配置

4.1 创建专用用户

  1. -- 启动MariaDB服务
  2. systemctl start mariadb
  3. -- 安全初始化(建议执行)
  4. mysql_secure_installation
  5. -- 创建监控数据库
  6. mysql -uroot -p <<EOF
  7. CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
  8. CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'StrongPassword@123';
  9. GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
  10. FLUSH PRIVILEGES;
  11. EOF

4.2 导入初始数据

  1. # 解压并导入SQL脚本
  2. zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | \
  3. mysql -uzabbix -p zabbix --default-character-set=utf8mb4
  4. # 临时开启函数创建权限(导入完成后关闭)
  5. mysql -uroot -p -e "SET GLOBAL log_bin_trust_function_creators = 1;"
  6. # 执行导入操作...
  7. mysql -uroot -p -e "SET GLOBAL log_bin_trust_function_creators = 0;"

五、服务配置优化

5.1 Zabbix Server配置

  1. # 编辑配置文件
  2. vi /etc/zabbix/zabbix_server.conf
  3. # 关键参数修改
  4. DBHost=localhost
  5. DBName=zabbix
  6. DBUser=zabbix
  7. DBPassword=StrongPassword@123
  8. CacheSize=64M
  9. HistoryCacheSize=32M
  10. ValueCacheSize=64M

5.2 Web前端配置

  1. # 修改Nginx虚拟主机配置
  2. vi /etc/nginx/conf.d/zabbix.conf
  3. server {
  4. listen 8080;
  5. server_name _;
  6. root /usr/share/zabbix;
  7. index index.php;
  8. location / {
  9. try_files $uri $uri/ =404;
  10. }
  11. location ~ \.php$ {
  12. fastcgi_pass unix:/run/php-fpm/www.sock;
  13. include fastcgi_params;
  14. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  15. }
  16. }

5.3 PHP参数调优

  1. # 修改PHP配置
  2. vi /etc/php.ini
  3. post_max_size = 16M
  4. max_execution_time = 300
  5. max_input_time = 300
  6. date.timezone = Asia/Shanghai

六、安全加固方案

6.1 防火墙规则

  1. # 开放必要端口
  2. firewall-cmd --permanent --add-port={8080/tcp,10050/tcp,10051/tcp}
  3. firewall-cmd --reload
  4. # 云服务器需在安全组中同步放行相同端口

6.2 SELinux策略

  1. # 设置SELinux为permissive模式(生产环境建议使用targeted策略)
  2. setenforce 0
  3. sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
  4. # 或针对Zabbix设置专用策略
  5. dnf install -y policycoreutils-python-utils
  6. semanage port -a -t http_port_t -p tcp 8080

七、服务启动与验证

  1. # 启动所有服务
  2. systemctl enable --now zabbix-server zabbix-agent nginx php-fpm mariadb
  3. # 验证服务状态
  4. systemctl status zabbix-server.service
  5. journalctl -u zabbix-server -n 50 --no-pager
  6. # 访问Web界面
  7. echo "访问 http://$(hostname -I | awk '{print $1}'):8080 完成初始化配置"

八、生产环境优化建议

  1. 数据库分离:将MySQL部署到独立服务器,配置主从复制
  2. 高可用方案:使用Zabbix Proxy实现分布式监控
  3. 性能监控:配置Server自身监控项(进程内存、队列长度等)
  4. 告警升级:集成企业微信/钉钉等通知渠道
  5. 日志管理:配置rsyslog集中存储日志文件

九、常见问题处理

问题1:Web界面显示502错误

  • 检查Nginx错误日志:tail -f /var/log/nginx/error.log
  • 验证PHP-FPM服务状态:systemctl status php-fpm

问题2:Agent数据不上报

  • 检查防火墙规则:firewall-cmd --list-ports
  • 验证Agent日志:tail -f /var/log/zabbix/zabbix_agentd.log

问题3:数据库连接失败

  • 测试数据库连接:mysql -uzabbix -p -h 127.0.0.1 zabbix
  • 检查SELinux上下文:ls -Z /var/lib/mysql/

通过本指南的12个步骤实施,运维人员可在2小时内完成Zabbix 7.0的企业级部署。建议后续配置自动发现规则和模板,实现IT资源的自动化监控管理。对于超大规模环境,可考虑使用TimescaleDB作为时序数据存储方案,提升历史数据查询性能。