Zabbix 6.0 基于 LNMP 架构完整部署教程(CentOS7)
一、部署前言
1.1 什么是 Zabbix
Zabbix 是一款开源的企业级监控解决方案,支持对服务器、网络设备、应用程序等进行实时监控,可通过告警机制及时反馈故障,帮助运维人员快速定位问题。
1.2 部署环境说明
| 环境类型 | 版本 / 配置 | 说明 |
|---|---|---|
| 操作系统 | CentOS 7.x 64 位 | 推荐最小化安装,已配置基础网络 |
| Zabbix 版本 | Zabbix 6.0 LTS | 长期支持版本,稳定性更高 |
| 数据库 | MariaDB 10.5 | Zabbix 6.0 强制要求 ≥10.5 版本 |
| Web 服务器 | Nginx 最新稳定版 | 提供 Zabbix 前端访问 |
| PHP 版本 | PHP 7.2 | Zabbix 6.0 兼容 PHP 7.2-7.4 |
| 架构模式 | LNMP + Zabbix Server + Agent2 | 客户端通过 Agent2 与 Server 通信 |
1.3 部署架构图
plaintext
客户端(Agent2) ←→ Zabbix Server ←→ MariaDB(数据存储)
↓
Nginx(Web服务) ←→ PHP-FPM(动态解析) ←→ 浏览器(前端访问)
二、LNMP 架构部署(基础环境)
2.1 Nginx 安装与配置
Nginx 作为 Web 服务器,负责接收客户端对 Zabbix 前端的访问请求,并将 PHP 动态请求转发给 PHP-FPM。
步骤 1:配置 Nginx YUM 源
CentOS 7 默认 YUM 源的 Nginx 版本较低,需手动添加官方源:
bash
# 下载 Nginx 官方 YUM 源 RPM 包
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装 YUM 源(也可手动创建 repo 文件,二选一)
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 手动创建 repo 文件(推荐,避免 RPM 包依赖问题)
vim /etc/yum.repos.d/nginx.repo
将以下内容写入 nginx.repo:
ini
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0 # 关闭 GPG 校验(若开启需导入 GPG 密钥,新手推荐关闭)
enabled=1 # 启用该 YUM 源
步骤 2:安装并启动 Nginx
bash
# 清理 YUM 缓存并安装 Nginx
yum clean all && yum makecache
yum install nginx -y
# 启动 Nginx 并设置开机自启
systemctl start nginx
systemctl enable nginx
# 验证 Nginx 是否启动成功
systemctl status nginx # 查看服务状态
curl localhost # 本地访问,返回 Nginx 默认页面 HTML 则正常
步骤 3:配置防火墙允许 HTTP 访问
CentOS 7 默认启用 firewalld,需开放 80 端口(HTTP):
bash
# 永久开放 HTTP 服务(80端口)
firewall-cmd --permanent --add-service=http --zone=public
# 重新加载防火墙规则
firewall-cmd --reload
# 验证开放结果
firewall-cmd --list-services --zone=public # 输出包含 http 则正常
2.2 MariaDB 10.5 安装与配置
Zabbix 6.0 对数据库版本要求严格,需使用 MariaDB ≥10.5 或 MySQL ≥8.0,此处选择 MariaDB 10.5。
步骤 1:配置 MariaDB YUM 源
bash
# 创建 MariaDB 10.5 YUM 源文件
cat > /etc/yum.repos.d/MariaDB.repo << EOF
[mariadb]
name = MariaDB
baseurl = https://archive.mariadb.org/mariadb-10.5.23/yum/centos7-amd64/
gpgkey = https://archive.mariadb.org/mariadb-10.5.23/yum/centos7-amd64/RPM-GPG-KEY-MariaDB
gpgcheck = 0 # 新手关闭 GPG 校验,避免密钥导入问题
EOF
步骤 2:安装并启动 MariaDB
bash
# 安装 MariaDB 服务端和客户端
yum install mariadb-server mariadb -y
# 启动 MariaDB 并设置开机自启
systemctl enable mariadb --now
# 验证 MariaDB 状态
systemctl status mariadb # 显示 active (running) 则正常
步骤 3:初始化 MariaDB(设置 root 密码)
bash
# 执行安全初始化脚本
mysql_secure_installation
按以下步骤操作(括号内为操作建议):
- Enter current password for root (enter for none):直接回车(默认无密码)
- Set root password? [Y/n]:Y (设置 root 密码,建议复杂度高,如
Zabbix@123,避免原文档的简单密码abc123) - Remove anonymous users? [Y/n]:Y(删除匿名用户,提升安全性)
- Disallow root login remotely? [Y/n]:Y(禁止 root 远程登录,仅允许本地登录)
- Remove test database and access to it? [Y/n]:Y(删除测试数据库)
- Reload privilege tables now? [Y/n]:Y(重载权限表,使配置生效)
步骤 4:解决 MariaDB 密码遗忘问题(备用方案)
若忘记 root 密码,按以下步骤重置:
bash
# 1. 停止 MariaDB 服务
systemctl stop mariadb
# 2. 跳过权限表启动 MariaDB(后台运行)
mysqld_safe --skip-grant-tables &
# 3. 无密码登录 MariaDB
mysql -u root
# 4. 刷新权限并重置密码(替换 new_password 为新密码,如 Zabbix@123)
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
EXIT; # 退出数据库
# 5. 终止 mysqld_safe 进程并重启 MariaDB
pkill mysqld_safe
systemctl start mariadb
# 6. 验证新密码登录
mysql -u root -p # 输入新密码,能登录则重置成功
步骤 5:创建 Zabbix 专用数据库与用户
bash
# 登录 MariaDB(输入 root 密码)
mysql -u root -p
# 1. 创建 Zabbix 数据库(字符集 utf8,排序规则 utf8_bin,避免中文乱码和大小写问题)
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
# 2. 创建 Zabbix 数据库用户(本地登录 + 远程登录,密码建议复杂,如 ZabbixDB@123)
# 本地登录用户(仅允许 Server 本地访问)
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'ZabbixDB@123';
# 远程登录用户(若后续需远程管理数据库,可创建,否则可省略)
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'ZabbixDB@123';
# 3. 刷新权限并退出
FLUSH PRIVILEGES;
EXIT;
说明 :
utf8_bin排序规则会区分字符大小写,确保 Zabbix 数据存储一致性,避免因大小写问题导致的监控项异常。
2.3 PHP 7.2 安装与配置
Zabbix 6.0 前端依赖 PHP,需安装 PHP 7.2 及相关扩展(原文档的 php72w 系列扩展需通过 Webtatic 源获取)。
步骤 1:配置 PHP YUM 源
bash
# 安装 EPEL 源(依赖)
yum install epel-release -y
# 安装 Webtatic 源(提供 PHP 7.2 包)
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
步骤 2:安装 PHP 7.2 及必需扩展
bash
yum install -y \
php72w \
php72w-cli \
php72w-common \
php72w-devel \
php72w-embedded \
php72w-gd \ # 处理图片(Zabbix 图表生成依赖)
php72w-mbstring \ # 支持多字节字符串(中文显示依赖)
php72w-pdo \ # 数据库连接(Zabbix 连接 MariaDB 依赖)
php72w-xml \ # XML 解析(Zabbix 配置文件解析依赖)
php72w-fpm \ # PHP FastCGI 进程管理器(Nginx 联动依赖)
php72w-mysqlnd \ # MySQL 原生驱动(提升数据库性能)
php72w-opcache \ # opcode 缓存(提升 PHP 性能)
php72w-ldap \ # LDAP 认证(Zabbix 集成 LDAP 依赖)
php72w-bcmath # 数学计算(Zabbix 监控数据计算依赖)
步骤 3:配置 PHP-FPM(与 Nginx 联动)
PHP-FPM 默认以 apache 用户运行,需改为 nginx 用户,避免权限问题:
编辑 PHP-FPM 配置文件:vim /etc/php-fpm.d/www.conf
修改以下 2 处(约 8 行和 10 行):
ini
user = nginx # 原值为 apache,改为 nginx
group = nginx # 原值为 apache,改为 nginx
步骤 4:配置 Nginx 支持 PHP 解析
编辑 Nginx 默认站点配置,让 Nginx 能处理 .php 文件:vim /etc/nginx/conf.d/default.conf
修改以下 2 处:
-
首页优先级:在index后添加index.php(确保优先解析 PHP 首页):
iniindex index.php index.html index.htm; # 原值无 index.php,需添加 -
启用 PHP 解析块:移除默认注释的location ~ .php$块,并修改SCRIPT_FILENAME路径:
inilocation ~ \.php$ { root /usr/share/nginx/html; # PHP 项目根目录(与 Nginx 一致) fastcgi_pass 127.0.0.1:9000; # PHP-FPM 监听地址(默认 9000 端口) fastcgi_index index.php; # 默认 PHP 首页 # 关键:修改 /scripts 为 $document_root(指向 PHP 根目录) fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; # 引入 FastCGI 通用配置 }
步骤 5:优化 PHP 配置(适配 Zabbix 需求)
编辑 PHP 主配置文件 php.ini,调整参数以满足 Zabbix 运行要求:vim /etc/php.ini
修改以下参数(可通过 :/参数名 快速搜索):
| 参数名 | 原值(参考) | 修改后值 | 说明 |
|---|---|---|---|
| expose_php | On | Off | 隐藏 PHP 版本,提升安全性 |
| short_open_tag | Off | On | 支持 PHP 短标签(如 <? ?>,避免代码报错) |
| max_execution_time | 30 | 300 | PHP 脚本最大执行时间(Zabbix 处理数据需更长时间) |
| max_input_time | 60 | 300 | 接收请求数据的最大时间 |
| memory_limit | 128M | 256M | PHP 脚本最大内存占用(避免监控数据处理时内存不足) |
| post_max_size | 8M | 16M | POST 请求最大数据量(Zabbix 导入模板需更大容量) |
| upload_max_filesize | 2M | 8M | 最大上传文件大小(Zabbix 上传图片 / 模板依赖) |
| always_populate_raw_post_data | -1 | -1 | 启用 $HTTP_RAW_POST_DATA 接收原始 POST 数据(Zabbix 部分功能依赖) |
| date.timezone | 未设置 | Asia/Shanghai | 设置时区(避免 Zabbix 时间显示异常) |
步骤 6:启动 PHP-FPM 并验证
bash
# 启动 PHP-FPM 并设置开机自启
systemctl enable php-fpm --now
# 重启 Nginx(使配置生效)
systemctl restart nginx
# 关闭 SELinux(避免权限拦截,CentOS 7 默认开启)
setenforce 0 # 临时关闭(重启后失效)
# 永久关闭 SELinux(需重启系统)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 验证 PHP 环境(创建测试文件)
vim /usr/share/nginx/html/info.php
写入以下内容:
php
<?php
phpinfo(); // 输出 PHP 环境信息
?>
在浏览器访问 http://Zabbix Server IP/info.php,若显示 PHP 信息页面,则 PHP 配置正常。
步骤 7:验证 PHP 连接 MariaDB
创建数据库连接测试文件,确保 PHP 能正常访问 Zabbix 数据库:vim /usr/share/nginx/html/db_test.php
写入以下内容(替换 ZabbixDB@123 为实际的 Zabbix 数据库密码):
php
<?php
// 连接 MariaDB(主机:localhost,用户:zabbix,密码:ZabbixDB@123)
$link = mysqli_connect('127.0.0.1', 'zabbix', 'ZabbixDB@123', 'zabbix');
// 检查连接结果
if ($link) {
echo "Zabbix 数据库连接成功!";
} else {
echo "Zabbix 数据库连接失败:" . mysqli_connect_error();
}
?>
在浏览器访问 http://Zabbix Server IP/db_test.php,若显示 "连接成功",则 PHP 与数据库联动正常。
注意 :测试完成后建议删除
info.php和db_test.php,避免泄露服务器信息。
三、Zabbix Server 6.0 部署
3.1 下载 Zabbix Server 源码包
Zabbix 6.0 提供源码包和 RPM 包,此处选择源码编译(灵活性更高):
bash
# 下载 Zabbix 6.0.6 源码包(官网地址,若失效可去官网找最新 6.0 LTS 版本)
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.6.tar.gz
# 解压源码包(解压到 /root 目录,可根据需求调整)
tar zxvf zabbix-6.0.6.tar.gz -C /root/
3.2 安装 Zabbix Server 依赖包
编译 Zabbix Server 需要依赖多种开发库,确保提前安装:
bash
yum install -y \
mysql-devel \ # MariaDB 开发库(数据库连接依赖)
pcre-devel \ # PCRE 正则库(正则匹配依赖)
openssl-devel \ # OpenSSL 库(HTTPS 支持依赖)
zlib-devel \ # Zlib 压缩库(数据压缩依赖)
libxml2-devel \ # XML 库(配置解析依赖)
net-snmp-devel \ # SNMP 库(监控网络设备依赖)
net-snmp \ # SNMP 工具(SNMP 监控依赖)
libssh2-devel \ # SSH2 库(SSH 监控依赖)
OpenIPMI-devel \ # IPMI 库(硬件监控依赖)
libevent-devel \ # Libevent 库(事件驱动依赖)
openldap-devel \ # LDAP 库(LDAP 认证依赖)
libcurl-devel \ # cURL 库(HTTP 监控依赖)
fping \ # 网络探测工具(ICMP 监控依赖)
gcc \ # C 编译器(源码编译依赖)
gcc-c++ \ # C++ 编译器(源码编译依赖)
make # 编译工具(源码编译依赖)
3.3 创建 Zabbix 系统用户
Zabbix Server 需以非 root 用户运行,创建专用用户 zabbix:
bash
# 原文档的 /sbin/nglogin 为笔误,正确为 /sbin/nologin(禁止用户登录系统)
useradd -s /sbin/nologin -M zabbix
# -s /sbin/nologin:禁止用户登录终端
# -M:不创建用户家目录
3.4 导入 Zabbix 数据库脚本
Zabbix 数据库需要初始化表结构和基础数据,导入顺序必须严格遵循(否则会报错):
bash
# 进入 Zabbix 源码的数据库脚本目录
cd /root/zabbix-6.0.6/database/mysql
# 按以下顺序导入脚本(替换 ZabbixDB@123 为实际密码)
mysql -u zabbix -pZabbixDB@123 zabbix < schema.sql # 1. 基础表结构(必须第一个导入)
mysql -u zabbix -pZabbixDB@123 zabbix < images.sql # 2. 图标数据
mysql -u zabbix -pZabbixDB@123 zabbix < data.sql # 3. 初始配置数据(如默认用户、模板)
mysql -u zabbix -pZabbixDB@123 zabbix < double.sql # 4. 双精度数据支持
mysql -u zabbix -pZabbixDB@123 zabbix < history_pk_prepare.sql # 5. 历史数据主键优化
# 验证导入结果(登录数据库查看表数量)
mysql -u zabbix -pZabbixDB@123 zabbix -e "show tables;" | wc -l
# 输出 178 则导入正常(Zabbix 6.0 标准表数量)
3.5 编译并安装 Zabbix Server
bash
# 进入 Zabbix 源码根目录
cd /root/zabbix-6.0.6/
# 设置编译器为 C99 标准(避免编译报错)
export CFLAGS="-std=gnu99"
# 配置编译参数(指定安装路径、启用所需模块)
./configure \
--sysconfdir=/etc/zabbix/ \ # 配置文件路径(统一管理)
--enable-server \ # 启用 Zabbix Server 模块
--with-mysql \ # 启用 MySQL/MariaDB 支持
--with-net-snmp \ # 启用 SNMP 监控支持
--with-libxml2 \ # 启用 XML 支持
--with-ssh2 \ # 启用 SSH 监控支持
--with-openipmi \ # 启用 IPMI 硬件监控支持
--with-zlib \ # 启用 Zlib 压缩支持
--with-libpthread \ # 启用多线程支持
--with-libevent \ # 启用事件驱动支持
--with-openssl \ # 启用 SSL 加密支持
--with-ldap \ # 启用 LDAP 认证支持
--with-libcurl \ # 启用 cURL 支持(HTTP/HTTPS 监控)
--with-libpcre # 启用 PCRE 正则支持
# 编译并安装(-j 4 表示用 4 个线程编译,可根据 CPU 核心数调整)
make -j 4 && make install
# 验证安装结果(查看 Zabbix Server 版本)
zabbix_server --version
# 输出 "zabbix_server (Zabbix) 6.0.6" 则安装正常
3.6 配置 Zabbix Server
编辑 Zabbix Server 主配置文件,主要配置日志路径和数据库连接信息:vim /etc/zabbix/zabbix_server.conf
修改以下关键参数(其他参数默认即可,后续可根据需求调整):
ini
# 38 行:日志文件路径(需手动创建)
LogFile=/var/log/zabbix_server.log
# 123 行:Zabbix 数据库密码(替换为实际密码 ZabbixDB@123)
DBPassword=ZabbixDB@123
# 可选配置(根据需求添加)
DBUser=zabbix # 数据库用户名(默认就是 zabbix,可省略)
DBName=zabbix # 数据库名(默认就是 zabbix,可省略)
DBPort=3306 # 数据库端口(默认 3306,可省略)
ListenPort=10051 # Zabbix Server 监听端口(默认 10051,可省略)
步骤 2:创建日志文件并设置权限
bash
# 创建日志文件
touch /var/log/zabbix_server.log
# 设置日志文件权限(Zabbix 用户需读写权限)
chown zabbix:zabbix /var/log/zabbix_server.log
chmod 644 /var/log/zabbix_server.log
3.7 配置 Zabbix Server 系统服务
为了方便管理 Zabbix Server(如启停、开机自启),创建 systemd 服务文件:vim /usr/lib/systemd/system/zabbix-server.service
写入以下内容:
ini
[Unit]
Description=Zabbix Server with MySQL DB # 服务描述
After=syslog.target network.target mysqld.service # 依赖服务(确保先启动日志、网络、数据库)
[Service]
Type=simple # 服务类型(简单类型,直接启动命令)
ExecStart=/usr/local/sbin/zabbix_server -f # 启动命令(-f 表示前台运行,适配 systemd)
User=zabbix # 运行用户(专用用户 zabbix)
Restart=on-failure # 故障时自动重启(可选,提升可用性)
[Install]
WantedBy=multi-user.target # 多用户模式下启用
步骤 2:启动 Zabbix Server 并验证
bash
# 重新加载 systemd 服务(识别新创建的服务文件)
systemctl daemon-reload
# 启动 Zabbix Server 并设置开机自启
systemctl enable zabbix-server --now
# 验证 Zabbix Server 状态
systemctl status zabbix-server # 显示 active (running) 则正常
# 验证 Zabbix Server 监听端口(默认 10051)
netstat -ntap | grep 10051 # 输出包含 "LISTEN" 则正常(若未安装 netstat,用 ss -ntap | grep 10051)
# 查看 Zabbix Server 日志(排查错误)
tail -f /var/log/zabbix_server.log # 无报错则正常
四、Zabbix 前端部署与访问
4.1 部署 Zabbix 前端文件
将 Zabbix 源码中的前端 UI 文件复制到 Nginx 根目录:
bash
# 复制前端文件到 Nginx 根目录(/usr/share/nginx/html)
cp -r /root/zabbix-6.0.6/ui/* /usr/share/nginx/html/
# 设置前端文件权限(Nginx 用户需读写权限)
chown -R nginx:nginx /usr/share/nginx/html/
chmod -R 755 /usr/share/nginx/html/
4.2 开放 Zabbix Server 端口(可选)
若客户端需连接 Zabbix Server,需开放 10051 端口(Server 监听端口):
bash
# 永久开放 10051 端口
firewall-cmd --permanent --add-port=10051/tcp --zone=public
# 重新加载防火墙
firewall-cmd --reload
4.3 访问 Zabbix 前端安装向导
在浏览器输入 http://Zabbix Server IP,进入 Zabbix 前端安装向导:
步骤 1:欢迎页面
点击 Next step(下一步),进入环境检查页面。
步骤 2:环境检查
确保所有检查项均为 OK (若有报错,根据提示修复,如缺少 PHP 扩展则重新安装),点击 Next step。
步骤 3:数据库连接配置
填写 Zabbix 数据库信息(与之前创建的一致):
- Database type:MySQL(默认)
- Database host:localhost(本地数据库)
- Database port:3306(默认,留空则使用默认)
- Database name:zabbix
- User:zabbix
- Password:ZabbixDB@123(实际数据库密码)点击Next step,若连接成功则进入 Server 配置页面。
步骤 4:Zabbix Server 配置
- Zabbix server hostname:Zabbix Server(自定义,如实际主机名)
- Zabbix server port:10051(默认)
- Name of web interface:Zabbix Monitor自定义,前端页面标题)点击Next step,进入安装摘要页面。
步骤 5:安装摘要
确认配置信息无误,点击 Next step,开始安装。
步骤 6:安装完成
安装成功后,点击 Finish,跳转至 Zabbix 登录页面。
4.4 登录 Zabbix 前端
Zabbix 默认管理员账号:
- Username:Admin(首字母大写,区分大小写)
- Password:zabbix(默认密码,登录后建议立即修改)
步骤 2:修改默认密码(必做)
- 登录后,点击右上角 Admin → Profile;
- 在 Password 标签页,输入旧密码(zabbix)和新密码(建议复杂,如
ZabbixAdmin@123); - 点击 Update 保存。
五、Zabbix Agent2 客户端部署
Zabbix Agent2 用于采集客户端(被监控设备)的监控数据,并发送给 Zabbix Server。
5.1 客户端环境要求
- 操作系统:CentOS 7(与 Server 一致,其他系统需调整 YUM 源)
- 网络:能与 Zabbix Server 通信(10050 端口开放,Agent2 默认端口)
5.2 安装 Zabbix Agent2
bash
# 1. 更新 CA 证书(避免 HTTPS 下载报错)
yum update ca-certificates -y
# 2. 安装 Zabbix 官方 YUM 源
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
# 3. 安装 Zabbix Agent2(Agent2 是 Agent 的升级版,推荐使用)
yum install zabbix-agent2 -y
5.3 配置 Zabbix Agent2
编辑 Agent2 配置文件,指定 Zabbix Server 地址和客户端标识:
bash
vim /etc/zabbix/zabbix_agent2.conf
修改以下关键参数(其他参数默认即可):
ini
# 13 行:PID 文件路径(默认,可保留)
PidFile=/var/run/zabbix/zabbix_agentd.pid
# 32 行:日志文件路径(默认,可保留)
LogFile=/var/log/zabbix/zabbix_agentd.log
# 43 行:日志文件大小(0 表示不限制,可保留)
LogFileSize=0
# 82 行:Zabbix Server IP(必须修改为实际 Server IP,如 192.168.100.140)
Server=192.168.100.140
# 135 行:主动模式下的 Server IP(与 Server 一致,主动发送数据)
ServerActive=192.168.100.140
# 150 行:客户端主机名(必须唯一,与后续添加到 Server 的主机名一致,如 client-01)
Hostname=client-01
# 268 行:引入自定义配置文件(默认,可保留)
Include=/etc/zabbix/zabbix_agentd.d/*.conf
5.4 配置客户端防火墙
开放 Agent2 监听端口(默认 10050),允许 Server 连接:
bash
# 永久开放 10050 端口
firewall-cmd --permanent --add-port=10050/tcp --zone=public
# 重新加载防火墙
firewall-cmd --reload
5.5 启动 Agent2 并验证
bash
# 启动 Agent2 并设置开机自启
systemctl enable zabbix-agent2 --now
# 验证 Agent2 状态
systemctl status zabbix-agent2 # 显示 active (running) 则正常
# 验证 Agent2 监听端口
ss -ntap | grep 10050 # 输出包含 "LISTEN" 则正常
# 在 Server 端验证与 Agent2 的通信(需安装 zabbix-get 工具)
yum install zabbix-get -y # Server 端安装 zabbix-get
# 执行监控项查询(获取客户端系统信息,替换 client-IP 为客户端 IP)
zabbix_get -s 客户端IP -p 10050 -k "system.uname"
# 输出类似 "Linux client-01 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64" 则通信正常
六、Zabbix 基础使用:添加监控主机
部署完成后,需在 Zabbix Server 前端添加客户端主机,实现监控:
6.1 步骤 1:进入主机添加页面
- 登录 Zabbix 前端,点击左侧菜单 配置 → 主机;
- 点击右上角 创建主机。
6.2 步骤 2:填写主机基本信息
- 主机名称 :与 Agent2 配置文件中的
Hostname一致(如 client-01); - 可见名称:自定义显示名称(如 客户端 - 01);
- 群组 :选择主机群组(如 Linux servers,若无则点击 选择 创建);
- Interfaces :点击 添加 ,选择 Agent 类型,填写客户端 IP 地址和端口(10050)。
6.3 步骤 3:关联监控模板
- 切换到 模板 标签页;
- 在 链接的模板 处,点击 选择 ,搜索并添加
Template OS Linux by Zabbix agent2(Linux 系统默认模板); - 点击 更新 保存模板关联。
6.4 步骤 4:验证监控数据
- 等待 1-2 分钟(数据采集需要时间);
- 点击左侧菜单 监测 → 主机,找到添加的客户端主机;
- 点击主机名称,查看 图形 标签页,可看到 CPU、内存、磁盘等监控图表,说明监控正常。
七、常见问题与解决方案
7.1 问题 1:Zabbix Server 启动失败,日志提示 "DB connection failed"
- 原因:数据库密码错误、数据库未启动、Zabbix 用户无数据库权限。
- 解决方案:
- 检查数据库是否启动:
systemctl status mariadb; - 验证 Zabbix 数据库密码:
mysql -u zabbix -pZabbixDB@123(能登录则密码正确); - 检查
zabbix_server.conf中的DBPassword是否与实际密码一致。
- 检查数据库是否启动:
7.2 问题 2:Zabbix 前端白屏或显示 "502 Bad Gateway"
- 原因:PHP-FPM 未启动、Nginx 配置错误、PHP 权限不足。
- 解决方案:
- 检查 PHP-FPM 状态:
systemctl status php-fpm; - 检查 Nginx 配置语法:
nginx -t(有错误则修复); - 检查前端文件权限:
ls -l /usr/share/nginx/html/(确保 nginx 用户有读权限)。
- 检查 PHP-FPM 状态:
7.3 问题 3:Agent2 通信失败,Server 端 zabbix-get 无响应
- 原因:客户端防火墙未开放 10050 端口、Agent2 配置的 Server IP 错误、Agent2 未启动。
- 解决方案:
- 检查客户端防火墙:
firewall-cmd --list-ports(确保 10050/tcp 开放); - 检查 Agent2 配置:
grep "Server=" /etc/zabbix/zabbix_agent2.conf(确保与 Server IP 一致); - 重启 Agent2:
systemctl restart zabbix-agent2。
- 检查客户端防火墙:
7.4 问题 4:编译 Zabbix Server 时提示 "configure: error: Cannot find libcurl"
- 原因:缺少 libcurl-devel 依赖包。
- 解决方案 :
yum install libcurl-devel -y,然后重新执行./configure。
八、总结
本文详细介绍了 Zabbix 6.0 基于 LNMP 架构的完整部署流程,包括 LNMP 环境搭建、Zabbix Server 编译安装、Agent2 客户端部署及基础监控配置。关键注意事项:
- 数据库版本必须满足 Zabbix 6.0 要求(MariaDB ≥10.5);
- PHP 配置需严格适配 Zabbix 需求(如时区、执行时间);
- Agent2 与 Server 的通信需确保网络通畅(端口开放、IP 配置正确);
- 部署后及时修改默认密码,提升系统安全性。
后续可进一步学习 Zabbix 高级功能,如自定义监控项、告警媒介配置(邮件、钉钉)、自动发现与自动注册等,满足更复杂的监控需求。
附录:常用命令汇总
| 功能 | 命令 |
|---|---|
| 启动 Nginx | systemctl start nginx |
| 启动 MariaDB | systemctl start mariadb |
| 启动 PHP-FPM | systemctl start php-fpm |
| 启动 Zabbix Server | systemctl start zabbix-server |
| 启动 Zabbix Agent2 | systemctl start zabbix-agent2 |
| 查看 Zabbix Server 日志 | tail -f /var/log/zabbix_server.log |
| Server 端测试 Agent 通信 | zabbix-get -s 客户端IP -p 10050 -k "system.uname" |
| 检查 Nginx 配置语法 | nginx -t |
| 检查 PHP-FPM 配置语法 | php-fpm -t |