今天的CentOS 7如何配置Zabbix

12 阅读4分钟

CentOS 7自带的PHP5.4、MariaDB 5.5版本甚至无法满足Zabbix 5的运行要求,本文完整梳理从基础环境升级到Zabbix 6部署、核心踩坑解决的全流程,适合快速上手。

一、环境升级:替换默认YUM源,安装高版本依赖

1. 升级PHP至7.2

# 安装EPEL扩展源
yum install -y epel-release

# 安装REMI源(CentOS 7专属)
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# 安装yum源管理工具(用于切换PHP版本)
yum install -y yum-utils

# 启用PHP7.2源(关闭默认5.4源)
yum-config-manager --enable remi-php72

# 安装PHP7.2核心包及Zabbix依赖扩展
yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

# 验证PHP版本(输出7.2.x即为成功)
php -v

# 启动并设置PHP-FPM开机自启
systemctl start php-fpm
systemctl enable php-fpm

2. 升级MariaDB至10.6

# 创建MariaDB自定义YUM源
cat > /etc/yum.repos.d/MariaDB.repo << 'EOF'
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.6/centos7-amd64
gpgkey = https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1
EOF

# 清理缓存并重建
yum clean all && yum makecache fast

# 安装MariaDB服务端和客户端
yum install -y MariaDB-server MariaDB-client

# 启动并设置开机自启
systemctl start mariadb
systemctl enable mariadb

二、Zabbix 6.0 安装与数据库配置

1. 安装Zabbix官方源及核心组件

# 安装Zabbix 6.0 YUM源(CentOS 7 版本)
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

# 清理缓存
yum clean all

# 安装Zabbix核心组件(服务端+Web端+Agent+SQL脚本)
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-sql-scripts zabbix-agent

2. 创建Zabbix数据库并导入初始化脚本

# 登录MySQL
mysql -uroot -p

# 1. 创建zabbix数据库
CREATE DATABASE IF NOT EXISTS zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

# 2. 创建zabbix用户,仅允许本地访问(我密码设为zabbix)
CREATE USER IF NOT EXISTS 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';

# 3. 授予zabbix用户数据库全部权限
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

# 4. 刷新权限
FLUSH PRIVILEGES;

# 5. 退出MySQL
EXIT;

# 导入Zabbix初始化脚本(按顺序执行)
# 第一步:导入表结构
mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/schema.sql
# 第二步:导入图片资源
mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/images.sql
# 第三步:导入初始数据(默认用户/权限等)
mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/data.sql
# 执行时输入密码:zabbix

三、PHP与Apache配置优化

1. 配置Zabbix Web的PHP核心参数

# 编辑Zabbix Apache配置文件
vim /etc/httpd/conf.d/zabbix.conf

<Directory "/usr/share/zabbix">区块内新增以下 PHP 配置(关键是时区和资源限制):

<Directory "/usr/share/zabbix">
    # 保留原有配置不变
    <IfModule php_module>
        php_value max_execution_time 300      # 最大执行时间
        php_value memory_limit 128M           # 内存限制
        php_value post_max_size 16M           # POST数据最大值
        php_value upload_max_filesize 2M      # 文件上传限制
        php_value max_input_time 300          # 输入数据最大解析时间
        php_value max_input_vars 10000        # 最大输入变量数
        php_value date.timezone Asia/Shanghai # 核心:设置中国时区
    </IfModule>
    # 保留原有配置不变
</Directory>

2. 配置PHP-FPM的Zabbix专属参数

# 编辑PHP-FPM的Zabbix配置文件
vi /etc/php-fpm.d/zabbix.conf

添加以下内容(指定运行用户和时区):

listen.acl_users = apache                  # 允许apache用户访问PHP-FPM
php_value[date.timezone] = Asia/Shanghai   # 同步时区配置

3. 重启服务使配置生效

systemctl restart httpd php-fpm

四、Zabbix Server配置与核心踩坑解决

1. 配置Zabbix Server数据库连接

# 编辑Zabbix Server配置文件
vim /etc/zabbix/zabbix_server.conf

找到以下配置项,取消注释并填写数据库密码:

DBName=zabbix        # 数据库名(默认无需修改)
DBUser=zabbix        # 数据库用户(默认无需修改)
DBPassword=zabbix    # 取消注释,填写之前设置的数据库密码

2. 解决 Web 安装页面循环问题

问题现象:访问http://服务器IP/zabbix/setup.php完成配置后,始终跳回安装页面,无法进入 Zabbix 控制台。

问题原因:Zabbix 6.0 官方文档标注配置文件路径为/usr/share/zabbix/etc/zabbix/web,但实际程序会优先读取/etc/zabbix/web目录下的配置文件,导致配置未生效。

解决方法

# 创建/etc/zabbix/web目录(若不存在)
mkdir -p /etc/zabbix/web

# 复制默认配置文件到实际读取路径
cp /usr/share/zabbix/etc/zabbix/web/zabbix.conf.php /etc/zabbix/web/

# 设置配置文件权限(确保所有用户可读取)
chmod 644 /etc/zabbix/web/zabbix.conf.php

# 重启Zabbix Server和相关服务
systemctl restart zabbix-server httpd php-fpm

3. 启动Zabbix Agent并设置开机自启

systemctl start zabbix-agent
systemctl enable zabbix-agent

五、访问验证

  1. 浏览器访问http://服务器IP/zabbix,使用默认账号密码登录:

    • 账号:Admin
    • 密码:zabbix

总结

  1. CentOS 7需通过 REMI 源升级PHP至 7.2、MariaDB官方源升级至10.6,才能满足Zabbix 6.0 的运行要求;
  2. Zabbix数据库必须使用utf8mb4字符集,避免中文乱码问题;
  3. Web安装页面循环的核心解决方法是将Zabbix配置文件复制到/etc/zabbix/web目录,并确保644权限。