一、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 配置步骤概览
- 欢迎页面:点击"Next step"
- 前置条件检查:确保所有检查项显示OK,如有红色项需根据提示修复
- 数据库配置:Database type选择PostgreSQL,填写前面创建的数据库名、用户名和密码,Host填localhost,端口5432
- Zabbix Server详情:Host填写localhost,端口10051,Name填一个有意义的名称
- 预安装摘要:确认信息无误后点击Next step
- 安装完成:恭喜页面,点击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界面中添加主机
- 进入
Configuration → Hosts → Create host - 填写Host name(与Agent配置的Hostname一致)
- 选择Groups(如"Linux servers")
- Agent interfaces填写被监控主机的IP地址和端口10050
- 切到Templates选项卡,选择"Linux by Zabbix agent"模板
- 点击Add保存
等待一两分钟,Host列表中该主机的ZBX图标变为绿色,表示数据采集正常。
七、常用监控项和触发器配置
7.1 CPU监控
默认模板已包含CPU使用率、负载等监控项。如需自定义CPU告警阈值:
- 进入
Configuration → Hosts,点击对应主机的Triggers - 点击
Create trigger - 设置表达式:
last(/主机名/system.cpu.util[all,avg1]) > 90 - 严重级别选择"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 配置邮件告警
- 进入
Administration → Media types → Create media type - Type选择Email
- 填写SMTP服务器信息(如SMTP地址、端口、用户名、密码)
- 进入
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辅助作者原创,未经许可,转载请保留原文链接。

发表评论