0

Zabbix服务器监控搭建教程:Ubuntu系统从安装到配置的完整实战指南

2026.05.22 | youres | 10次围观

一、Zabbix是什么?为什么选择它

Zabbix是一款开源的企业级分布式监控解决方案,能够监控网络设备、服务器、虚拟机、云资源以及各种应用程序。它采用Server-Agent架构,支持主动和被动两种数据采集方式,提供丰富的告警机制和可视化仪表板。

1.1 Zabbix的核心优势

  • 开源免费:社区版完全免费,功能足够满足绝大多数中小企业的监控需求
  • 支持广泛:Linux、Windows、网络设备(SNMP)、数据库、中间件等都能监控
  • 自动化发现:支持网络自动发现和低级别自动发现,减少手动配置工作量
  • 告警灵活:支持邮件、微信、钉钉、Webhook等多种告警通知方式
  • 可视化强大:内置Dashboard、拓扑图、幻灯片展示等多种可视化方式

1.2 Zabbix的架构组成

  • Zabbix Server:核心组件,负责接收Agent上报的监控数据、触发告警、存储数据
  • Zabbix Database:存储配置信息和历史数据,支持MySQL/PostgreSQL
  • Zabbix Web Frontend:基于PHP的Web管理界面
  • Zabbix Agent:部署在被监控主机上,负责采集本地数据
  • Zabbix Proxy(可选):代理服务器,用于分布式监控场景

二、环境准备

在开始安装之前,确保你的服务器满足以下要求:

  • 操作系统:Ubuntu 22.04 LTS(推荐)或 24.04 LTS
  • CPU:至少2核
  • 内存:至少2GB(推荐4GB以上)
  • 硬盘:至少20GB可用空间
  • 网络:服务器能访问互联网(需要下载安装包)

更新系统软件包:

sudo apt update
sudo apt upgrade -y

三、安装PostgreSQL数据库

Zabbix支持MySQL和PostgreSQL两种数据库。生产环境中PostgreSQL在处理大量监控数据时表现更稳定,本文选择PostgreSQL。

3.1 安装PostgreSQL

sudo apt install postgresql postgresql-contrib -y

3.2 创建数据库和用户

sudo -u postgres psql

进入PostgreSQL命令行后执行:

CREATE USER zabbix WITH PASSWORD '你的强密码';
CREATE DATABASE zabbix OWNER zabbix;
GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;
\q

3.3 优化PostgreSQL配置

编辑PostgreSQL配置文件,提升监控数据写入性能:

sudo vim /etc/postgresql/14/main/postgresql.conf

调整以下参数:

shared_buffers = 256MB
effective_cache_size = 1GB
maintenance_work_mem = 64MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 4MB
min_wal_size = 1GB
max_wal_size = 4GB

修改完成后重启PostgreSQL:

sudo systemctl restart postgresql
sudo systemctl enable postgresql

四、安装Zabbix Server

4.1 添加Zabbix官方仓库

sudo wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo apt update

4.2 安装Zabbix Server、前端和Agent

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

4.3 导入初始数据库

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

导入过程需要等待几十秒,不要中断。

4.4 配置Zabbix Server连接数据库

sudo vim /etc/zabbix/zabbix_server.conf

找到并修改以下配置项:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=你的强密码

4.5 配置PHP前端

编辑Nginx配置文件,取消注释并设置正确的listen和server_name:

sudo vim /etc/zabbix/nginx.conf
listen 80;
server_name 你的域名或IP;

编辑PHP-FPM配置,设置正确的时区:

sudo vim /etc/zabbix/php-fpm.conf
php_value[date.timezone] = Asia/Shanghai

4.6 启动所有服务

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

检查服务状态:

sudo systemctl status zabbix-server

五、Web界面初始化配置

在浏览器中访问 http://你的服务器IP,按照向导完成初始化:

5.1 配置步骤概览

  1. 欢迎页面:点击"Next step"
  2. 前置条件检查:确保所有检查项显示OK,如有红色项需根据提示修复
  3. 数据库配置:Database type选择PostgreSQL,填写前面创建的数据库名、用户名和密码,Host填localhost,端口5432
  4. Zabbix Server详情:Host填写localhost,端口10051,Name填一个有意义的名称
  5. 预安装摘要:确认信息无误后点击Next step
  6. 安装完成:恭喜页面,点击Finish

默认登录账号:Admin / zabbix,登录后请立即修改密码。

六、添加被监控主机

6.1 在被监控主机上安装Agent

首先在目标主机上添加Zabbix仓库并安装Agent(以Ubuntu为例):

sudo wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
sudo apt update
sudo apt install zabbix-agent -y

6.2 配置Agent连接Server

sudo vim /etc/zabbix/zabbix_agentd.conf

修改以下配置:

Server=Zabbix服务器的IP地址
ServerActive=Zabbix服务器的IP地址
Hostname=这台机器的主机名(需唯一)

启动Agent:

sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent

6.3 在Web界面中添加主机

  1. 进入 Configuration → Hosts → Create host
  2. 填写Host name(与Agent配置的Hostname一致)
  3. 选择Groups(如"Linux servers")
  4. Agent interfaces填写被监控主机的IP地址和端口10050
  5. 切到Templates选项卡,选择"Linux by Zabbix agent"模板
  6. 点击Add保存

等待一两分钟,Host列表中该主机的ZBX图标变为绿色,表示数据采集正常。

七、常用监控项和触发器配置

7.1 CPU监控

默认模板已包含CPU使用率、负载等监控项。如需自定义CPU告警阈值:

  1. 进入 Configuration → Hosts,点击对应主机的Triggers
  2. 点击 Create trigger
  3. 设置表达式:last(/主机名/system.cpu.util[all,avg1]) > 90
  4. 严重级别选择"High"

7.2 内存监控

默认模板包含可用内存、内存使用率等。建议添加以下触发器:

  • 可用内存低于500MB时告警
  • 内存使用率超过85%时告警
  • Swap使用量超过1GB时告警

7.3 磁盘监控

通过内置的"vfs.fs.size"监控项监控磁盘空间:

  • 根分区使用率超过90%时告警
  • 磁盘inode使用率超过85%时告警

7.4 网络监控

Zabbix可以通过SNMP监控网络设备,也可以通过net.if.in和net.if.out监控本机网络流量。对于交换机、路由器等网络设备,添加SNMP接口并关联相应模板即可。

八、告警通知配置

8.1 配置邮件告警

  1. 进入 Administration → Media types → Create media type
  2. Type选择Email
  3. 填写SMTP服务器信息(如SMTP地址、端口、用户名、密码)
  4. 进入 User settings → Profile → Media,添加邮件接收地址

8.2 配置Webhook告警(钉钉/企业微信)

在Media types中创建Webhook类型的媒介,将Zabbix告警通过JSON格式推送到钉钉或企业微信的机器人Webhook地址。具体配置可以参考官方文档中的Webhook模板。

九、性能优化建议

  • 数据库优化:定期清理历史数据,配置Housekeeping保留合理天数(建议History保留30天,Trends保留365天)
  • Proxy分担压力:监控主机超过500台时,建议部署Zabbix Proxy分区域采集数据
  • 调整Poller进程:根据监控项数量增加StartPollers、StartPollersUnreachable等参数值
  • Cache大小:适当调大ValueCache大小,减少数据库直接查询
  • 使用Proxy主动模式:减少Server端的并发连接压力

十、常见问题排查

10.1 Agent连不上Server

  • 检查Agent配置中的Server IP是否正确
  • 检查防火墙是否放行10050和10051端口
  • 使用zabbix_get -s 目标IP -k agent.ping测试连通性

10.2 Web界面中文乱码

登录Zabbix Server执行:

sudo apt install fonts-wqy-microhei -y
sudo cp /usr/share/fonts/truetype/wqy/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/
sudo vim /usr/share/zabbix/include/defines.inc.php

ZBX_GRAPH_FONT_NAME的值改为wqy-microhei

10.3 数据库连接失败

  • 确认PostgreSQL服务正在运行
  • 检查pg_hba.conf是否允许zabbix用户从localhost连接
  • 检查密码是否与zabbix_server.conf中的配置一致

十一、总结

Zabbix作为老牌开源监控工具,功能完善、社区活跃、文档齐全。本文从数据库安装、Server部署、Web配置到Agent接入,完整走了一遍搭建流程。对于中小型企业来说,一套配置得当的Zabbix监控系统能够覆盖绝大多数监控需求。关键在于后续的维护和调优——合理的告警阈值、定期清理历史数据、及时更新版本,才能让监控系统真正发挥价值。

相关文章推荐

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论
883文章数 0评论数
作者其它文章