Ubuntu 部署 Zabbix 6.0 LTS 监控平台
在现代 IT 基础设施中,监控系统是保障业务稳定运行的核心组件。Zabbix 作为一款开源、功能强大、可扩展性强的分布式监控解决方案,广泛应用于金融、电商、互联网等企业级场景。本文将基于操作系统,采用企业级部署架构,完整部署版本(长期支持版),涵盖 Zabbix Server、Web UI、Agent、MySQL 数据库及 Nginx + PHP-FPM 的高性能 LAMP 架构。整个过程注重安全
一、前言
在现代 IT 基础设施中,监控系统是保障业务稳定运行的核心组件。Zabbix 作为一款开源、功能强大、可扩展性强的分布式监控解决方案,广泛应用于金融、电商、互联网等企业级场景。
本文将基于 Ubuntu 22.04 LTS 操作系统,采用企业级部署架构,完整部署 Zabbix 6.0 LTS 版本(长期支持版),涵盖 Zabbix Server、Web UI、Agent、MySQL 数据库及 Nginx + PHP-FPM 的高性能 LAMP 架构。整个过程注重安全性、性能调优、高可用性设计,适合生产环境参考。
二、部署架构设计
组件 | 主机 | IP 地址 | 说明 |
---|---|---|---|
Zabbix Server & Web | monitor | 192.168.22.10 | 主监控服务器,运行 Zabbix Server 和 Web UI |
MySQL 数据库 | db | 192.168.22.20 | 数据库服务器(可选分离部署) |
Zabbix Agent | 所有被监控主机 | 动态 | 安装在被监控服务器上 |
三、环境准备
1. 系统初始化
sudo apt update # 更新软件包列表
sudo hostnamectl set-hostname monitor # 设置主机名
sudo timedatectl set-timezone Asia/Shanghai # 配置时区(关键!监控时间必须准确)
sudo apt install chrony -y # 同步时间
sudo systemctl enable chronyd
sudo systemctl start chronyd
2. 禁用 Swap(Zabbix Server 建议)
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
四、部署 LAMP 环境
1. 安装 Nginx 和 PHP-FPM
sudo apt install nginx php-fpm php-mysql php-gd php-xml php-bcmath php-mbstring php-ldap php-curl php-zip -y
2. 配置 PHP-FPM
编辑 /etc/php/8.1/fpm/php.ini
:
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
max_execution_time = 600
max_input_time = 600
date.timezone = Asia/Shanghai
重启 PHP-FPM:
sudo systemctl restart php8.1-fpm
3. 配置 Nginx 虚拟主机
创建配置文件 /etc/nginx/sites-available/zabbix.conf
:
server {
listen 80;
server_name monitor.yourcompany.com;
root /usr/share/zabbix;
index index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param PHP_VALUE "max_execution_time=600";
}
location ~ /\.ht {
deny all;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/zabbix.conf /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx
五、部署 MySQL 数据库
sudo apt install mysql-server -y
sudo mysql_secure_installation #执行后,你会看到交互式提示,以下是逐步说明
Step 1: 验证密码组件
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
- 选择
Y
- 它会强制用户设置强密码(包含大小写、数字、特殊字符)
Step 2: 设置密码验证强度
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters, dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
- 建议选
1
(MEDIUM) 2
(STRONG)可能过于严格mysql_secure_installation
跳过了密码设置,无需密码登录
Step 4: 删除匿名用户
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Step 5: 禁止 root 远程登录
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Step 6: 删除 test 数据库
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Step 7: 重新加载权限表
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
登录数据库
sudo mysql -u root -h localhost
为 root 用户设置密码并改为密码认证
-- 修改 root@localhost 使用密码认证
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Passw0rd!@#';
-- 刷新权限
FLUSH PRIVILEGES;
密码要求:
- 长度 ≥ 8
- 包含大写、小写、数字、特殊字符
- 示例:
Passw0rd!@#
创建 Zabbix 数据库
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ZabbixDB@6.0!';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
注意:localhost
是 Zabbix Server 的 IP,确保网络可达。
六、安装 Zabbix Server 6.0 LTS
1. 添加 Zabbix 官方仓库
# 安装 wget 和源工具
sudo apt install wget gnupg -y
# 下载并添加 Zabbix GPG 密钥
wget https://repo.zabbix.com/zabbix-official-repo.key
sudo gpg --dearmor -o /usr/share/keyrings/zabbix-archive-keyring.gpg zabbix-official-repo.key
# 添加 Zabbix 6.0 LTS 仓库
echo "deb [signed-by=/usr/share/keyrings/zabbix-archive-keyring.gpg] https://repo.zabbix.com/zabbix/6.0/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/zabbix.list
# 更新源
sudo apt update
2. 安装 Zabbix Server、Frontend、Agent
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-sql-scripts zabbix-agent -y
七、导入数据库并配置 Zabbix Server
1. 导入初始数据库 schema
-- 登录数据库启用函数创建信任(仅当前运行时有效)
sudo mysql -u root -p
SET GLOBAL log_bin_trust_function_creators = 1;
EXIT;
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -h localhost -u zabbix -p zabbix
2. 配置 Zabbix Server(/etc/zabbix/zabbix_server.conf)
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=10
PidFile=/run/zabbix/zabbix_server.pid
SocketDir=/run/zabbix
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=StrongPassw0rd!@#
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StartPollers=10
StartPollersUnreachable=5
StartTrappers=10
StartPingers=5
StartDiscoverers=3
StartHTTPPollers=5
3. 授权日志目录
sudo chown zabbix:zabbix /var/log/zabbix
sudo chmod 755 /var/log/zabbix
八、启动服务并设置开机自启
sudo systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
sudo systemctl start zabbix-server zabbix-agent php8.1-fpm nginx
# 检查状态
sudo systemctl status zabbix-server --no-pager -l
九、Web 安装向导
Zabbix 默认登录账号密码
账号:Admin
密码:zabbix
访问 http://你的IP
进入 Zabbix Web 安装界面。
浏览器访问这里会有一个错误
安装 sudo apt install -y locales
包,编辑 /etc/locale.gen 文件
写入:
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
生成新的 locale
sudo locale-gen
重新启动一下 PHP 和Nginx 就可以了,想用什么语言就在 /etc/locale.gen 文件里加入什么语言
这里显示全部 OK 点下一步。
这里填写连接数据库用的用户和库
这里设置主机名称和时区,主题
登录进来后点击用户设置,这里可以修改密码
Zabbix 的部署只是构建监控体系的第一步,真正的价值在于持续优化、主动预警与生态融合。一个完善的监控平台不仅是故障的报警器,更是保障业务稳定、驱动运维智能化的核心基础设施。
更多推荐
所有评论(0)