今天的CentOS 7如何配置Zabbix

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

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

1. 升级PHP至7.2

bash 复制代码
# 安装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

ini 复制代码
# 创建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官方源及核心组件

bash 复制代码
# 安装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数据库并导入初始化脚本

ruby 复制代码
# 登录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核心参数

bash 复制代码
# 编辑Zabbix Apache配置文件
vim /etc/httpd/conf.d/zabbix.conf

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

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专属参数

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

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

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

3. 重启服务使配置生效

复制代码
systemctl restart httpd php-fpm

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

1. 配置Zabbix Server数据库连接

bash 复制代码
# 编辑Zabbix Server配置文件
vim /etc/zabbix/zabbix_server.conf

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

ini 复制代码
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目录下的配置文件,导致配置未生效。

解决方法

bash 复制代码
# 创建/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并设置开机自启

bash 复制代码
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权限。
相关推荐
Johny_Zhao2 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1233 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑3 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件3 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
xy123063 天前
OpenStack Train 部署实战(三)控制节点--keystone服务
centos·openstack
深紫色的三北六号4 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash4 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI4 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行5 天前
Linux和window共享文件夹
linux
木心月转码ing5 天前
WSL+Cpp开发环境配置
linux