在 Ubuntu 22.04 上安装和配置 Zabbix

在 Ubuntu 22.04 上安装 Zabbix 6 Server 和 Agent 的完整步骤,包含 PostgreSQL 初始化、Nginx/PHP 配置、Web 初始化、Agent 接入和主机添加注意事项。

作者 快猫运营团队

本文演示如何在 Ubuntu 22.04 上安装 Zabbix 6,并完成 Zabbix Server、PostgreSQL、Nginx/PHP、Web 初始化和 Zabbix Agent 接入。适合想快速搭建一套 Zabbix 测试环境或小规模监控环境的读者。

核心要点摘要

  • 本教程使用 Ubuntu 22.04、Zabbix 6、PostgreSQL 和 Nginx/PHP 组合。
  • Zabbix Server 负责监控数据处理和告警逻辑,Zabbix Agent 负责在被监控主机上采集数据。
  • 安装过程分为 Server 安装、数据库初始化、Web 配置、Agent 安装和主机添加五步。
  • Agent 的 ServerServerActiveHostname 参数要与 Zabbix Server 侧配置保持一致。
  • 完成安装后,可以在 Zabbix Web 界面中添加主机、绑定模板,并通过 Monitoring 页面查看指标。

Zabbix 安装前先理解组件

Zabbix 是一种流行的开源监控工具,可以监控服务器、网络、服务、云资源和业务指标。一个基础 Zabbix 环境通常包含以下组件。

组件 作用
Zabbix Server 负责数据接收、处理、存储协调和告警逻辑,是监控系统核心。
Zabbix Agent 运行在被监控主机上的守护进程,用于采集 RAM、CPU、应用指标等数据,支持主动模式和被动模式。
Zabbix Proxy 可选组件,用于分布式场景下分担 Zabbix Server 的采集压力。
Web 界面 用于查看指标、配置主机、配置监控项和管理告警。

本文会安装一台 Zabbix Server,并连接一台运行 Zabbix Agent 的主机。

先决条件

开始前需要准备:

  • 两台运行 Ubuntu 22.04 的云服务器或虚拟机:一台作为 Zabbix Server,一台作为 Zabbix Agent。
  • Zabbix Server 主机上预装 MySQL/MariaDB 或 PostgreSQL。本教程使用 PostgreSQL。
  • root 或 sudo 权限。

如果只是本地测试,也可以把 Server 和 Agent 装在同一台机器上,但生产环境建议按实际网络和安全要求规划。

安装 Zabbix Server

以下步骤都在 Zabbix Server 主机上执行。

1. 添加 Zabbix 官方仓库

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb

安装下载的软件包:

dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb

2. 安装 Zabbix Server 和依赖项

apt update && apt -y install zabbix-server-pgsql zabbix-frontend-php php8.1-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

这里安装的是 PostgreSQL 版本的 Zabbix Server,同时安装前端、Nginx 配置、SQL 脚本和本机 agent。

3. 创建 PostgreSQL 用户和数据库

sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

执行第一条命令时会提示输入 Zabbix 数据库用户密码。这个密码后面需要写入 zabbix_server.conf

4. 导入 Zabbix 数据库 Schema

zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

这一步会初始化 Zabbix Server 需要的数据库表结构和基础数据。

5. 配置 Zabbix Server 数据库密码

编辑 Zabbix Server 配置文件:

vim /etc/zabbix/zabbix_server.conf

找到 DBPassword 参数,并设置为前面创建 PostgreSQL 用户时输入的密码。

Config DBPassword

6. 配置 Nginx

编辑 Zabbix 的 Nginx 配置:

vim /etc/zabbix/nginx.conf

取消注释并设置 listenserver_name 参数。实际端口和域名取决于你的访问方式。

7. 启动并设置开机自启

systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm

验证 Zabbix Server 状态:

systemctl status zabbix-server

联系我们交流

通过 Web 界面初始化 Zabbix Server

Server 端服务启动后,继续通过 Web 界面完成初始化。访问 Nginx 配置中指定的域名和端口。

初始化流程包括:

  • 选择语言。
  • 验证系统要求。
  • 配置数据库连接:输入数据库名称 zabbix、用户 zabbix 和数据库密码。

Config Zabbix DB

  • 设置 Zabbix Server 名称、时区和主题。
  • 查看并确认设置。

Pre-installation summary

配置成功后,使用默认凭证登录:

  • 用户名:Admin
  • 密码:zabbix

Zabbix login

首次登录后,建议尽快修改默认密码。

安装 Zabbix Agent

下面切换到第二台服务器,也就是准备被监控的 Zabbix Agent 主机。

1. 添加 Zabbix 仓库

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu22.04_all.deb

安装下载的软件包:

dpkg -i zabbix-release_latest+ubuntu22.04_all.deb

2. 安装 Zabbix Agent

apt update && apt -y install zabbix-agent

3. 配置 Zabbix Agent

编辑 agent 配置文件:

vim /etc/zabbix/zabbix_agentd.conf

重点设置以下参数:

  • Server:填写 Zabbix Server 的域名或 IP 地址。
  • ServerActive:填写与 Server 相同的值,用于 active 模式。
  • Hostname:填写与 Zabbix Server Web 界面中主机名完全一致的名称。可以使用 hostname 命令检查系统主机名。

如果 Hostname 不一致,agent 可能无法正确连接到 Zabbix Server,或者数据无法匹配到对应主机。

4. 启动 Agent

systemctl restart zabbix-agent
systemctl enable zabbix-agent

验证 agent 状态:

systemctl status zabbix-agent

在 Zabbix Web 界面添加 Agent 主机

Agent 安装完成后,需要在 Zabbix Server Web 界面中添加主机。

操作路径:

  1. 进入 Configuration > Hosts
  2. 点击 Create host
  3. 填写主机信息。

重点字段包括:

  • Host name:Zabbix Server 中显示的 agent 主机名,需要和 agent 配置中的 Hostname 对齐。
  • :创建新组或选择已有组,用于组织主机和权限。
  • 模板:选择与服务器上安装的 agent 匹配的模板。
  • 接口:添加 Zabbix Agent 主机的 IP 地址或域名。

接口配置时注意:

  • 如果使用 IP 地址,需要在 IP 地址字段中填写地址,并在 Connect to 部分选择 IP。
  • 如果使用域名,需要在 DNS 名称部分填写域名,并在 Connect to 部分选择 DNS。

更新后,agent 会出现在主机列表中。指标可以在 Monitoring > Hosts > Graphs 下查看。

常见问题

Zabbix Server 和 Agent 可以装在同一台机器上吗?

可以。测试环境中经常这样安装。但生产环境要根据监控规模、网络隔离、权限和可用性要求规划部署方式。

为什么 Agent 已启动但 Web 界面没有数据?

优先检查三点:agent 配置中的 Server 是否能访问 Zabbix Server,Hostname 是否与 Web 中主机名一致,Web 界面中是否为主机绑定了正确模板。

PostgreSQL 密码配置错了会怎样?

Zabbix Server 无法正常连接数据库,服务状态或日志中会出现数据库连接失败相关错误。需要修正 /etc/zabbix/zabbix_server.conf 中的 DBPassword

总结

通过本文步骤,你可以在 Ubuntu 22.04 上完成 Zabbix 6 Server 和 Agent 的基础安装:先安装 Server 与 PostgreSQL,导入数据库 Schema,再配置 Nginx/PHP 和 Web 初始化,最后安装 Agent 并在 Web 界面添加主机。

Zabbix 的安装流程不复杂,但配置一致性很关键。数据库密码、Nginx 访问地址、agent 的 Server / ServerActive / Hostname、Web 主机名和模板绑定,是排查安装问题时最应该优先检查的几个点。

延伸路径

继续看解决方案和产品对比

如果你正在做监控、可观测性或故障定位相关选型,建议从解决方案和产品对比继续往下看。

标签 Zabbix IT监控
快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云