一、环境准备
1. 更新系统 & 安装基础工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl vim gnupg lsb-release ca-certificates
2. 关闭防火墙与 AppArmor(测试环境可选)
# Ubuntu 默认使用 ufw
sudo ufw disable
# 临时禁用 AppArmor(非必须,但可避免权限问题)
sudo systemctl stop apparmor
sudo systemctl disable apparmor
⚠️ 生产环境建议保留并配置规则,而非完全关闭。
二、安装 MySQL 8.0(APT 方式)
1. 添加 MySQL APT 源(官方)
cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
💡 安装过程中会弹出交互菜单:
- 选择 MySQL Server & Cluster (Currently selected: mysql-8.0) → OK
- 其他组件保持默认 → OK
2. 安装 MySQL 8.0
echo "deb [arch=amd64 trusted=yes] http://repo.mysql.com/apt/ubuntu jammy mysql-8.0" | sudo tee /etc/apt/sources.list.d/mysql.list
sudo apt update
sudo apt install -y mysql-server
3. 启动并启用服务
sudo systemctl start mysql
sudo systemctl enable mysql
4. 初始化安全设置(可选但推荐)
sudo mysql_secure_installation
可跳过密码验证插件设置(按需),后续我们手动创建用户。
5. 创建 Zabbix 数据库和用户
sudo mysql -u root
在 MySQL 中执行:
-- 创建数据库
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
-- 创建用户(使用 mysql_native_password 兼容性更好)
CREATE USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Zabbix@2000';
-- 授权
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
使用
mysql_native_password避免 Zabbix 与 MySQL 8 默认认证插件的兼容问题。
三、安装编译依赖
sudo apt install -y \
build-essential \
libsnmp-dev \
libcurl4-openssl-dev \
libevent-dev \
libmysqlclient-dev \
pkg-config \
libxml2-dev \
libpcre3-dev \
libldap2-dev \
libopenipmi-dev \
libssh2-1-dev \
libiksemel-dev \
default-libmysqlclient-dev
四、下载并编译安装 Zabbix 7.0.0
1. 下载源码
cd /tmp
wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.0.tar.gz
2. 解压并进入目录
sudo mkdir -p /usr/local/zabbix
sudo tar -zxvf zabbix-7.0.0.tar.gz -C /usr/local/zabbix/
cd /usr/local/zabbix/zabbix-7.0.0
3. 创建 zabbix 用户
sudo groupadd --system zabbix
sudo useradd --system -g zabbix -d /usr/local/zabbix -s /sbin/nologin zabbix
4. 编译安装(启用 Server + Agent + Web 监控)
./configure \
--prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-openipmi \
--with-ssh2 \
--with-ldap
make -j$(nproc)
sudo make install
✅ 编译成功后,二进制文件位于
/usr/local/zabbix/sbin/和/usr/local/zabbix/bin/
五、部署 Web 前端(PHP + Nginx)
1. 安装 Nginx 和 PHP 8.1
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx-mainline.list
apt update
sudo apt install -y nginx php-fpm php-mysql php-bcmath php-gd php-mbstring php-xml php-ldap php-curl
2. 配置 PHP(满足 Zabbix 要求)
编辑 /etc/php/8.1/fpm/php.ini:
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
重启 PHP-FPM:
sudo systemctl restart php8.1-fpm
3. 部署 Zabbix Web 文件
sudo mkdir -p /var/www/zabbix
sudo cp -r /usr/local/zabbix/zabbix-7.0.0/ui/* /var/www/zabbix/
sudo chown -R www-data:www-data /var/www/zabbix/
4. 配置 Nginx 虚拟主机
sudo tee /etc/nginx/conf.d/zabbix.conf <<'EOF'
server {
listen 80;
server_name 192.168.130.61;
root /var/www/zabbix;
index index.php;
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^/conf/ {
deny all;
}
location ~ /\.ht {
deny all;
}
}
EOF
# 测试并重载
sudo nginx -t
sudo systemctl reload nginx
六、导入 Zabbix 数据库结构
cd /usr/local/zabbix/zabbix-7.0.0/database/mysql
# 1. 用 root 用户登录 MySQL
sudo mysql -u root -p
# 2. 执行以下命令(开启信任)
SET GLOBAL log_bin_trust_function_creators = 1;
# 3. 退出
EXIT;
# 4. 导入
sudo mysql -uzabbix -p'Zabbix@2000' zabbix < schema.sql
sudo mysql -uzabbix -p'Zabbix@2000' zabbix < images.sql
sudo mysql -uzabbix -p'Zabbix@2000' zabbix < data.sql
七、配置 Zabbix Server
编辑配置文件:
sudo vim /usr/local/zabbix/etc/zabbix_server.conf
确保以下内容正确:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix@2000
八、创建 systemd 服务(便于管理)
1. Zabbix Server 服务
sudo tee /etc/systemd/system/zabbix-server.service <<'EOF'
[Unit]
Description=Zabbix Server
After=network.target mysql.service
[Service]
Type=simple
User=zabbix
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf -f
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
2. Zabbix Agent 服务(监控本机)
sudo tee /etc/systemd/system/zabbix-agent.service <<'EOF'
[Unit]
Description=Zabbix Agent
After=network.target
[Service]
Type=simple
User=zabbix
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf -f
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
3. 重载并启动服务
sudo systemctl daemon-reload
sudo systemctl start zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent
九、设置中文页面
# 1. 下载官方完整源码(7.0.0)
cd /tmp
# 2. 解压
tar -xzf zabbix-7.0.0.tar.gz
# 3. 检查 locale 是否存在
ls /tmp/zabbix-7.0.0/ui/locale/zh_CN/LC_MESSAGES/frontend.po
# 4. 编译生成 zabbix.mo
cd /tmp/zabbix-7.0.0/ui/locale/zh_CN/LC_MESSAGES/
sudo apt install -y gettext
msgfmt frontend.po -o zabbix.mo
# 6. 复制整个 UI(含正确语言包)到 Web 目录
sudo cp -r /tmp/zabbix-7.0.0/ui/* /var/www/zabbix/
sudo chown -R www-data:www-data /var/www/zabbix/
sudo chmod -R 755 /var/www/zabbix/
# 6.重启服务
sudo systemctl restart nginx php8.1-fpm.service
十、访问 Web 界面完成安装
浏览器访问:
http://<你的服务器IP>
按照向导操作:
- 检查先决条件(应全部 OK)
- 配置数据库连接:
- Database type: MySQL
- Host: localhost
- Port: 0(默认)
- Database name: zabbix
- User: zabbix
- Password: Zabbix@2000
- 设置 Server 名称(如
Zabbix-Monitor) - 点击 Next step → Finish
默认登录账号:
- Username:
Admin - Password:
zabbix
注意:A 是大写!
🔑 默认登录凭证:
- Username:
Admin(注意大写 A)- Password:
zabbix
Zabbix Agent2 安装部署(Ubuntu 22.04)
一、准备工作
1. 确认 Zabbix Server 配置
- 在 Zabbix Web 中需提前创建主机(Host)
- Agent 默认通过 10050 端口 接收 Server 请求(被动模式)
- Server 主动连接 Agent → 需确保网络和防火墙允许
192.168.130.61 → 被监控机:10050
二、安装 Zabbix Agent2(两种方式任选其一)
✅ 方式一:【推荐】使用官方 APT 仓库(自动解决依赖)
# 1. 安装必要工具
sudo apt update
sudo apt install -y wget gnupg
# 2. 添加 Zabbix 官方 GPG 密钥(使用清华镜像加速)
wget -qO- https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix-official-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/zabbix-archive-keyring.gpg
# 3. 添加 Zabbix 7.0 APT 源(Ubuntu 22.04 = jammy)
echo "deb [signed-by=/usr/share/keyrings/zabbix-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/7.0/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/zabbix.list
# 4. 安装 Zabbix Agent2
sudo apt update
sudo apt install -y zabbix-agent2
✅ 方式二:手动下载 .deb 包安装(适用于无网络或指定版本)
# 1. 下载主程序包(注意:不要下载 -dbgsym 包!)
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/7.0/ubuntu/pool/main/z/zabbix/zabbix-agent2_7.0.0-1+ubuntu22.04_amd64.deb
# 2. 安装(自动处理依赖)
sudo apt install -y ./zabbix-agent2_7.0.0-1+ubuntu22.04_amd64.deb
三、配置 Zabbix Agent2
编辑配置文件:
sudo vim /etc/zabbix/zabbix_agent2.conf
修改以下关键参数(按实际替换):
# 必须与 Zabbix Web 中创建的 Host name 完全一致!
Hostname=web-server-01
# 允许哪些 Server 连接(被动检查)
Server=192.168.130.61
# 主动上报数据的目标 Server(主动检查)
ServerActive=192.168.130.61
# 监听所有网卡(默认仅 127.0.0.1)
ListenIP=0.0.0.0
📌 注意:配置文件是
zabbix_agent2.conf,不是zabbix_agentd.conf!
四、启动并启用服务
sudo systemctl enable --now zabbix-agent2
sudo systemctl status zabbix-agent2
应显示 active (running)。
五、在 Zabbix Web 中添加主机
-
登录 Zabbix Web:
http://192.168.130.61 -
进入 配置 → 主机 → 创建主机
-
填写:
- 主机名称:
web-server-01(必须与Hostname=一致) - 群组:如
Linux servers - Agent 接口:IP 地址 + 端口
10050
- 主机名称:
-
切换到
模板
标签页,链接模板:
Linux by Zabbix agent(支持更多插件指标)
-
点击 添加
六、验证是否成功
- 等待 1~2 分钟
- 查看 监测中 → 主机
- 出现绿色 ✔️ 表示数据正常上报
- 若为灰色 ❌,检查:
Hostname是否匹配- 网络连通性:
telnet 192.168.130.61 10051(从 Agent 测试) - 防火墙是否放行
- 日志:
sudo tail -f /var/log/zabbix/zabbix_agent2.log
七、手动测试(在 Zabbix Server 上执行)
# 安装 zabbix-get(若未安装)
sudo apt install -y zabbix-get
# 测试获取主机名
zabbix_get -s 192.168.130.65 -k "agent.hostname"
# 应返回:web-server-01
附:一键部署脚本(APT 方式)
#!/bin/bash
set -e # 遇错立即退出
HOSTNAME="web-server-01"
SERVER_IP="192.168.130.61"
# 设置非交互模式(避免 dpkg 配置提示)
export DEBIAN_FRONTEND=noninteractive
# 1. 安装依赖
sudo apt update
sudo apt install -y wget gnupg
# 2. 添加 GPG 密钥(强制覆盖,不交互)
sudo rm -f /usr/share/keyrings/zabbix-archive-keyring.gpg
wget -qO- https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix-official-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/zabbix-archive-keyring.gpg
# 3. 添加源
echo "deb [signed-by=/usr/share/keyrings/zabbix-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/7.0/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/zabbix.list > /dev/null
# 4. 安装 zabbix-agent2(自动保留旧配置或使用默认)
sudo apt update
sudo apt install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" zabbix-agent2
# 5. 确保配置目录存在(防止路径缺失)
sudo mkdir -p /etc/zabbix/
# 6. 如果配置文件不存在,从默认模板创建一个
if [ ! -f /etc/zabbix/zabbix_agent2.conf ]; then
echo "Creating default zabbix_agent2.conf..."
cat > /tmp/zabbix_agent2.conf <<EOF
PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
DebugLevel=3
Server=$SERVER_IP
ServerActive=$SERVER_IP
Hostname=$HOSTNAME
ListenIP=0.0.0.0
Include=/etc/zabbix/zabbix_agent2.d/*.conf
Timeout=4
EOF
sudo cp /tmp/zabbix_agent2.conf /etc/zabbix/zabbix_agent2.conf
fi
# 7. 应用配置(即使文件是新建的,也确保值正确)
sudo sed -i "s/^Hostname=.*/Hostname=$HOSTNAME/" /etc/zabbix/zabbix_agent2.conf
sudo sed -i "s/^Server=.*/Server=$SERVER_IP/" /etc/zabbix/zabbix_agent2.conf
sudo sed -i "s/^ServerActive=.*/ServerActive=$SERVER_IP/" /etc/zabbix/zabbix_agent2.conf
sudo sed -i 's/^# *ListenIP=.*/ListenIP=0.0.0.0/' /etc/zabbix/zabbix_agent2.conf
# 8. 启动服务
sudo systemctl enable --now zabbix-agent2
echo "Zabbix Agent2 installed and configured successfully!"
echo "Hostname: $HOSTNAME"
echo "Server: $SERVER_IP"
echo "Status: $(systemctl is-active zabbix-agent2)"
3211

被折叠的 条评论
为什么被折叠?



