Zabbix 6.4 完整部署教程:从环境准备到监控实战

Zabbix 作为一款开源企业级监控解决方案,支持对服务器、网络设备、应用程序等多类对象进行实时监控,具备灵活的告警机制、可视化报表和自动发现功能。本文将以 CentOS 7.9 操作系统为例,详细讲解 Zabbix 6.4(LTS 长期支持版)的部署流程,包括环境依赖安装、数据库配置、Zabbix 服务部署及 Web 界面初始化,适合新手快速上手。

一、部署前准备:明确环境要求与基础配置

在开始部署前,需确保服务器满足最低环境要求,并完成基础系统配置,避免后续出现兼容性问题。

1.1 环境要求(最低配置)

组件 要求
操作系统 CentOS 7/8、Ubuntu 20.04/22.04 等主流 Linux 发行版(本文以 CentOS 7.9 为例)
CPU 1 核及以上(生产环境建议 2 核 +)
内存 2GB 及以上(监控节点较多时建议 4GB+)
磁盘空间 20GB 及以上(需存储监控历史数据,生产环境建议挂载独立数据盘)
数据库 MySQL 8.0、PostgreSQL 14 等(本文以 MySQL 8.0 为例)
依赖组件 Apache/Nginx(Web 服务器)、PHP 7.4+(Zabbix Web 界面依赖)

1.2 基础系统配置

(1)关闭防火墙与 SELinux

Zabbix 服务需用到 10050(Agent 端口)、10051(Server 端口)、80(Web 端口),为简化部署,先关闭防火墙与 SELinux(生产环境可按需开放端口,不建议直接关闭):

# 关闭防火墙并设置开机不启动
systemctl stop firewalld
systemctl disable firewalld

# 临时关闭SELinux(重启后失效)
setenforce 0

# 永久关闭SELinux(需重启生效,当前部署可先临时关闭)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
(2)配置时间同步

监控数据对时间精度要求较高,需确保服务器时间与标准时间同步:

# 安装ntpdate工具
yum install -y ntpdate

# 同步阿里云时间服务器
ntpdate ntp.aliyun.com

# 设置定时任务,每小时同步一次时间
echo "0 * * * * /usr/sbin/ntpdate ntp.aliyun.com > /dev/null 2>&1" >> /var/spool/cron/root
(3)安装基础依赖包
yum install -y wget vim net-tools gcc gcc-c++

二、部署数据库:MySQL 8.0 安装与配置

Zabbix 需要数据库存储监控配置、历史数据等信息,本文选择 MySQL 8.0(开源且兼容性好),步骤如下:

2.1 卸载系统自带 MySQL(若存在)

CentOS 7 可能预装 MariaDB(MySQL 分支),需先卸载避免冲突:

rpm -qa | grep mariadb  # 查看预装的MariaDB包
rpm -e --nodeps 包名    # 卸载(例:rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64)

2.2 安装 MySQL 8.0

(1)添加 MySQL 官方 YUM 源
# 下载MySQL 8.0 YUM源配置文件
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

# 安装YUM源
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
(2)安装 MySQL 服务
# 安装MySQL社区版服务器
yum install -y mysql-community-server
(3)启动 MySQL 并设置开机自启
# 启动MySQL服务
systemctl start mysqld

# 设置开机自启
systemctl enable mysqld

# 查看MySQL运行状态(确保状态为active (running))
systemctl status mysqld

2.3 配置 MySQL(关键步骤)

(1)获取初始密码

MySQL 8.0 安装后会生成临时密码,存储在日志文件中:

grep "temporary password" /var/log/mysqld.log

输出示例:2024-05-01T08:30:00.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: abc123!DEF其中 abc123!DEF 即为初始密码。

(2)登录 MySQL 并修改初始密码
# 登录MySQL(输入上述初始密码)
mysql -u root -p

# 修改root密码(MySQL 8.0要求密码包含大小写、数字、特殊符号,例:Zabbix@123)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zabbix@123';

# 刷新权限
FLUSH PRIVILEGES;
(3)创建 Zabbix 专用数据库与用户

为 Zabbix 创建独立数据库和用户,避免直接使用 root 账户,提升安全性:

# 创建数据库(数据库名:zabbix,字符集:utf8mb4,排序规则:utf8mb4_bin)
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

# 创建用户(用户名:zabbix,密码:ZabbixDB@123,允许本地访问)
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ZabbixDB@123';

# 授予用户对zabbix数据库的所有权限
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';

# 刷新权限
FLUSH PRIVILEGES;

# 退出MySQL
exit;

三、部署 Zabbix 服务:Server + Agent

Zabbix 核心服务包括 Zabbix Server(监控核心,处理数据)和 Zabbix Agent(部署在被监控端,采集数据),本文先在服务器上部署 Server 和本地 Agent(监控自身)。

3.1 添加 Zabbix 官方 YUM 源

Zabbix 官方提供 YUM 源,避免手动下载安装包:

# 下载Zabbix 6.4 YUM源(CentOS 7)
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/7/x86_64/zabbix-release-6.4-1.el7.noarch.rpm

# 清理YUM缓存并生成新缓存
yum clean all
yum makecache fast

3.2 安装 Zabbix Server 与 Agent

# 安装Zabbix Server、Agent及MySQL依赖(zabbix-server-mysql用于连接MySQL)
yum install -y zabbix-server-mysql zabbix-agent

3.3 导入 Zabbix 初始数据库

Zabbix 提供预设的数据库表结构和初始数据,需导入到之前创建的 zabbix 数据库中:

# 导入初始 schema 和数据(注意:6.4版本需按顺序导入3个文件,路径为默认安装路径)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
zcat /usr/share/zabbix-sql-scripts/mysql/images.sql.gz | mysql -u zabbix -p zabbix
zcat /usr/share/zabbix-sql-scripts/mysql/data.sql.gz | mysql -u zabbix -p zabbix

执行时需输入之前创建的 Zabbix 数据库用户密码(ZabbixDB@123),等待导入完成(无报错即成功)。

3.4 配置 Zabbix Server(连接数据库)

修改 Zabbix Server 配置文件,指定数据库连接信息:

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

找到以下参数,按实际配置修改(删除注释符 # 并填写值):

DBName=zabbix                # 数据库名(与之前创建的一致)
DBUser=zabbix                # 数据库用户名(与之前创建的一致)
DBPassword=ZabbixDB@123      # 数据库密码(与之前创建的一致)
DBPort=3306                  # MySQL端口(默认3306,无需修改)

保存退出(:wq)。

3.5 启动 Zabbix Server 与 Agent

# 启动Zabbix Server和Agent
systemctl start zabbix-server zabbix-agent

# 设置开机自启
systemctl enable zabbix-server zabbix-agent

# 查看服务状态(确保状态为active (running))
systemctl status zabbix-server zabbix-agent

若 Zabbix Server 启动失败,可查看日志排查问题:

cat /var/log/zabbix/zabbix_server.log

四、部署 Zabbix Web 界面:Apache + PHP

Zabbix 提供 Web 界面用于配置监控、查看报表和管理告警,需部署 Apache Web 服务器和 PHP 环境。

4.1 安装 Apache 与 PHP 依赖

Zabbix 6.4 要求 PHP 7.4+,CentOS 7 默认 PHP 版本较低,需先启用 Remi 源(提供高版本 PHP):

# 安装Remi源(用于获取PHP 7.4)
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# 启用PHP 7.4模块
yum-config-manager --enable remi-php74

# 安装Apache、PHP及Zabbix Web依赖的PHP扩展
yum install -y httpd php php-mysqlnd php-gd php-xml php-bcmath php-mbstring php-ldap php-json php-opcache

4.2 配置 PHP 参数(适配 Zabbix 要求)

Zabbix 对 PHP 部分参数有最低要求,需修改 PHP 配置文件:

# 编辑PHP配置文件(Apache使用的PHP配置文件路径)
vim /etc/php.ini

找到以下参数,修改为符合要求的值:

max_execution_time = 300        # 脚本最大执行时间(默认30,改为300)
memory_limit = 128M             # 内存限制(默认128M,足够,无需修改)
post_max_size = 16M             # POST数据最大尺寸(默认8M,改为16M)
upload_max_filesize = 2M        # 上传文件最大尺寸(默认2M,足够,无需修改)
max_input_time = 300            # 输入数据最大处理时间(默认60,改为300)
date.timezone = Asia/Shanghai   # 时区(必须设置,否则Web界面报错)

保存退出(:wq)。

4.3 部署 Zabbix Web 文件

Zabbix 安装时已自动将 Web 文件放到 /usr/share/zabbix/ 目录,需创建 Apache 虚拟主机配置,指向该目录:

# 创建Zabbix Web虚拟主机配置文件
vim /etc/httpd/conf.d/zabbix.conf

添加以下内容(指定 Web 根目录和访问权限):

Alias /zabbix /usr/share/zabbix

<Directory /usr/share/zabbix/>
    Options FollowSymLinks
    AllowOverride None
    Require all granted

    <IfModule mod_php.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value date.timezone Asia/Shanghai
    </IfModule>
</Directory>

<Directory /usr/share/zabbix/conf/>
    Require all denied
</Directory>

<Directory /usr/share/zabbix/conf/zabbix.conf.php>
    Require all denied
</Directory>

保存退出(:wq)。

4.4 启动 Apache 服务

# 启动Apache服务
systemctl start httpd

# 设置开机自启
systemctl enable httpd

# 查看Apache状态(确保状态为active (running))
systemctl status httpd

五、Web 界面初始化:完成 Zabbix 配置

至此,Zabbix 服务已全部部署完成,需通过 Web 界面完成初始化配置。

5.1 访问 Zabbix Web 界面

在浏览器中输入服务器 IP 地址 + /zabbix,例如:http://192.168.1.100/zabbix(替换为你的服务器实际 IP)。

(1)欢迎页面

首次访问将进入 Zabbix 安装向导,点击 Next step

(2)环境检查页面

系统会自动检查 PHP 扩展、参数等是否符合要求,确保所有选项均为 OK(若有报错,返回步骤 4.2 重新配置 PHP),点击 Next step

(3)数据库连接配置页面

填写之前创建的数据库信息:

  • Database type:选择 MySQL
  • Database host:填写 localhost(本地数据库)
  • Database port:默认 3306
  • Database name:zabbix
  • Database user:zabbix
  • Database password:ZabbixDB@123

填写完成后点击 Next step,若提示 “Database connection successful”,说明连接正常。

(4)Zabbix Server 配置页面

设置 Zabbix Server 信息(默认即可,无需修改):

  • Zabbix server host:localhost
  • Zabbix server port:10051
  • Zabbix server name:可自定义(例:My Zabbix Server

点击 Next step

(5)安装 summary 页面

确认所有配置信息无误,点击 Next step,等待安装完成。

(6)安装完成页面

提示 “Congratulations! You have successfully installed Zabbix frontend”,点击 Finish,进入登录页面。

5.2 登录 Zabbix Web 界面

Zabbix 默认管理员账号和密码:

  • 用户名:Admin(首字母大写)
  • 密码:zabbix

登录后建议立即修改默认密码:点击右上角 Admin → Change password,输入新密码并保存。

六、验证监控:确认本地 Agent 已上线

登录后,首先验证本地 Zabbix Agent 是否正常连接(即监控服务器自身):

  1. 点击左侧菜单栏 Monitoring → Hosts
  2. 查看 Zabbix server 主机的 Status 列,若显示 Enabled(绿色),且 Availability 列的两个图标均为绿色,说明 Agent 已正常上线,监控数据可正常采集。

七、常见问题排查

  1. Zabbix Server 启动失败,日志提示 “Cannot connect to database”

    • 检查 /etc/zabbix/zabbix_server.conf 中数据库参数是否正确(用户名、密码、数据库名)。
    • 验证 Zabbix 数据库用户是否能正常登录:mysql -u zabbix -p zabbix(输入密码后能登录即正常)。
  2. Web 界面访问白屏或提示 “500 Internal Server Error”

    • 检查 Apache 日志:cat /var/log/httpd/error_log,查看具体报错(常见为 PHP 参数配置错误或文件权限问题)。
    • 确保 /usr/share/zabbix/ 目录权限正确:chown -R apache:apache /usr/share/zabbix/
  3. Hosts 页面中 “Zabbix server” 状态为红色(Disabled)

    • 检查 Zabbix Agent 是否启动:systemctl status zabbix-agent
    • 检查 Agent 配置文件 /etc/zabbix/zabbix_agentd.conf 中 Server=127.0.0.1(允许本地 Server 访问)是否正确,修改后重启 Agent:systemctl restart zabbix-agent

八、后续操作建议

  1. 添加被监控节点:在需要监控的服务器上部署 Zabbix Agent,配置指向 Zabbix Server 地址,然后在 Web 界面添加主机。
  2. 配置告警媒介:通过 Administration → Media types 配置邮件、短信、企业微信等告警方式,避免遗漏异常。
  3. 创建自定义监控项:根据业务需求,添加对特定应用(如 Nginx、MySQL、Java 应用)的监控项。
  4. 备份数据库:定期备份 zabbix 数据库,避免监控数据丢失(可使用 mysqldump 工具)。

至此,Zabbix 6.4 完整部署流程已结束,如需进一步深入使用,可参考 Zabbix 官方文档 获取更多高级配置教程。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐