一、环境准备
1. 更新系统 & 安装基础工具
sudoaptupdate&&sudoaptupgrade-ysudoaptinstall-ywgetcurlvimgnupg lsb-release ca-certificates2. 关闭防火墙与 AppArmor(测试环境可选)
# Ubuntu 默认使用 ufwsudoufw disable# 临时禁用 AppArmor(非必须,但可避免权限问题)sudosystemctl stop apparmorsudosystemctl disable apparmor⚠️生产环境建议保留并配置规则,而非完全关闭。
二、安装 MySQL 8.0(APT 方式)
1. 添加 MySQL APT 源(官方)
cd/tmpwgethttps://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.debsudodpkg-imysql-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"|sudotee/etc/apt/sources.list.d/mysql.listsudoaptupdatesudoaptinstall-ymysql-server3. 启动并启用服务
sudosystemctl start mysqlsudosystemctlenablemysql4. 初始化安全设置(可选但推荐)
sudomysql_secure_installation可跳过密码验证插件设置(按需),后续我们手动创建用户。
5. 创建 Zabbix 数据库和用户
sudomysql-uroot在 MySQL 中执行:
-- 创建数据库CREATEDATABASEzabbixCHARACTERSETutf8mb4COLLATEutf8mb4_bin;-- 创建用户(使用 mysql_native_password 兼容性更好)CREATEUSER'zabbix'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'Zabbix@2000';-- 授权GRANTALLPRIVILEGESONzabbix.*TO'zabbix'@'localhost';FLUSHPRIVILEGES;EXIT;使用
mysql_native_password避免 Zabbix 与 MySQL 8 默认认证插件的兼容问题。
三、安装编译依赖
sudoaptinstall-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/tmpwgethttps://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.0.tar.gz2. 解压并进入目录
sudomkdir-p/usr/local/zabbixsudotar-zxvfzabbix-7.0.0.tar.gz-C/usr/local/zabbix/cd/usr/local/zabbix/zabbix-7.0.03. 创建 zabbix 用户
sudogroupadd--systemzabbixsudouseradd--system-gzabbix-d/usr/local/zabbix-s/sbin/nologin zabbix4. 编译安装(启用 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-ldapmake-j$(nproc)sudomakeinstall✅ 编译成功后,二进制文件位于
/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"|sudotee/etc/apt/sources.list.d/nginx-mainline.listaptupdatesudoaptinstall-ynginx php-fpm php-mysql php-bcmath php-gd php-mbstring php-xml php-ldap php-curl2. 配置 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:
sudosystemctl restart php8.1-fpm3. 部署 Zabbix Web 文件
sudomkdir-p/var/www/zabbixsudocp-r/usr/local/zabbix/zabbix-7.0.0/ui/* /var/www/zabbix/sudochown-Rwww-data:www-data /var/www/zabbix/4. 配置 Nginx 虚拟主机
sudotee/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# 测试并重载sudonginx-tsudosystemctl reload nginx六、导入 Zabbix 数据库结构
cd/usr/local/zabbix/zabbix-7.0.0/database/mysql# 1. 用 root 用户登录 MySQLsudomysql-uroot-p# 2. 执行以下命令(开启信任)SET GLOBAL log_bin_trust_function_creators=1;# 3. 退出EXIT;# 4. 导入sudomysql-uzabbix-p'Zabbix@2000'zabbix<schema.sqlsudomysql-uzabbix-p'Zabbix@2000'zabbix<images.sqlsudomysql-uzabbix-p'Zabbix@2000'zabbix<data.sql七、配置 Zabbix Server
编辑配置文件:
sudovim/usr/local/zabbix/etc/zabbix_server.conf确保以下内容正确:
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=Zabbix@2000八、创建 systemd 服务(便于管理)
1. Zabbix Server 服务
sudotee/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 EOF2. Zabbix Agent 服务(监控本机)
sudotee/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 EOF3. 重载并启动服务
sudosystemctl daemon-reloadsudosystemctl start zabbix-server zabbix-agentsudosystemctlenablezabbix-server zabbix-agent九、设置中文页面
# 1. 下载官方完整源码(7.0.0)cd/tmp# 2. 解压tar-xzfzabbix-7.0.0.tar.gz# 3. 检查 locale 是否存在ls/tmp/zabbix-7.0.0/ui/locale/zh_CN/LC_MESSAGES/frontend.po# 4. 编译生成 zabbix.mocd/tmp/zabbix-7.0.0/ui/locale/zh_CN/LC_MESSAGES/sudoaptinstall-ygettext msgfmt frontend.po-ozabbix.mo# 6. 复制整个 UI(含正确语言包)到 Web 目录sudocp-r/tmp/zabbix-7.0.0/ui/* /var/www/zabbix/sudochown-Rwww-data:www-data /var/www/zabbix/sudochmod-R755/var/www/zabbix/# 6.重启服务sudosystemctl 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. 安装必要工具sudoaptupdatesudoaptinstall-ywgetgnupg# 2. 添加 Zabbix 官方 GPG 密钥(使用清华镜像加速)wget-qO- https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix-official-repo.key|sudogpg--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"|sudotee/etc/apt/sources.list.d/zabbix.list# 4. 安装 Zabbix Agent2sudoaptupdatesudoaptinstall-yzabbix-agent2✅ 方式二:手动下载.deb包安装(适用于无网络或指定版本)
# 1. 下载主程序包(注意:不要下载 -dbgsym 包!)wgethttps://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. 安装(自动处理依赖)sudoaptinstall-y./zabbix-agent2_7.0.0-1+ubuntu22.04_amd64.deb三、配置 Zabbix Agent2
编辑配置文件:
sudovim/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!
四、启动并启用服务
sudosystemctlenable--nowzabbix-agent2sudosystemctl 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(若未安装)sudoaptinstall-yzabbix-get# 测试获取主机名zabbix_get-s192.168.130.65-k"agent.hostname"# 应返回:web-server-01附:一键部署脚本(APT 方式)
#!/bin/bashset-e# 遇错立即退出HOSTNAME="web-server-01"SERVER_IP="192.168.130.61"# 设置非交互模式(避免 dpkg 配置提示)exportDEBIAN_FRONTEND=noninteractive# 1. 安装依赖sudoaptupdatesudoaptinstall-ywgetgnupg# 2. 添加 GPG 密钥(强制覆盖,不交互)sudorm-f/usr/share/keyrings/zabbix-archive-keyring.gpgwget-qO- https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix-official-repo.key|sudogpg--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"|sudotee/etc/apt/sources.list.d/zabbix.list>/dev/null# 4. 安装 zabbix-agent2(自动保留旧配置或使用默认)sudoaptupdatesudoaptinstall-y-oDpkg::Options::="--force-confdef"-oDpkg::Options::="--force-confold"zabbix-agent2# 5. 确保配置目录存在(防止路径缺失)sudomkdir-p/etc/zabbix/# 6. 如果配置文件不存在,从默认模板创建一个if[!-f/etc/zabbix/zabbix_agent2.conf];thenecho"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_IPServerActive=$SERVER_IPHostname=$HOSTNAMEListenIP=0.0.0.0 Include=/etc/zabbix/zabbix_agent2.d/*.conf Timeout=4 EOFsudocp/tmp/zabbix_agent2.conf /etc/zabbix/zabbix_agent2.conffi# 7. 应用配置(即使文件是新建的,也确保值正确)sudosed-i"s/^Hostname=.*/Hostname=$HOSTNAME/"/etc/zabbix/zabbix_agent2.confsudosed-i"s/^Server=.*/Server=$SERVER_IP/"/etc/zabbix/zabbix_agent2.confsudosed-i"s/^ServerActive=.*/ServerActive=$SERVER_IP/"/etc/zabbix/zabbix_agent2.confsudosed-i's/^# *ListenIP=.*/ListenIP=0.0.0.0/'/etc/zabbix/zabbix_agent2.conf# 8. 启动服务sudosystemctlenable--nowzabbix-agent2echo"Zabbix Agent2 installed and configured successfully!"echo"Hostname:$HOSTNAME"echo"Server:$SERVER_IP"echo"Status:$(systemctl is-active zabbix-agent2)"