一、Zabbix 概述

  1. 简介 Zabbix 是 Alexei Vladishev 开发,Zabbix SIA 维护,企业级开源分布式监控解决方案。 可以监控服务器、虚拟机、网络设备、数据库、中间件、云平台等软硬件健康状态;支持告警通知、数据报表可视化、容量规划。
  • 采集方式:同时支持轮询、捕获两种采集;全部配置与报表通过 Web 前端管理。
  • 许可证:GNU GPL v2,完全开源免费。
  1. 版本生命周期
  • LTS 长期支持版:开发 1.5 年,全面支持 3 年,有限高风险修复 2 年。
  • 标准版:开发 6 个月,全面支持 6 个月,有限支持至少 6 个月。

二、Zabbix 六大核心组件

  1. Zabbix Server(核心服务) 整个监控系统大脑;负责接收、处理、存储监控数据,触发器告警判断、任务调度;提供 Web 后端接口。 生产建议独立部署,支持 HA 高可用。监听端口:10051。
  2. Zabbix Agent / Agent2(被监控端代理) 部署在被监控主机,采集本机系统、应用指标上报给 Server。
  • Agent:C 语言,单线程,轻量,适合简单监控。
  • Agent2(6.x 推荐):Go 语言,多线程、插件化,支持 MySQL、Redis、K8s 等插件,性能更好。
  • 两种工作模式:
    • 被动模式(默认):Server 主动连接 Agent 拉取监控数据。
    • 主动模式:Agent 主动向 Server 推送监控数据;适合跨网络、隔离环境,减轻 server 压力。
  1. Zabbix Proxy(代理组件,可选) 分布式代理;代替 Server 采集被监控端数据,只做数据转发,不持久化存储监控数据。 适用场景:多机房、跨地域、网络隔离大规模集群,减轻 Zabbix‑server 负载。
  2. Database 数据库 存储监控配置(主机、模板、触发器)、历史监控数据、趋势数据。 支持:MySQL/MariaDB(最常用)、PostgreSQL、Oracle。
  3. Web Interface Web 前端 基于 PHP 开发可视化管理控制台;实现监控配置、查看图表、告警管理、报表。 访问地址:http://zabbix服务器IP/zabbix。
  4. 辅助工具
  • zabbix_sender:脚本 / 程序向 server 手动推送自定义监控数据。
  • zabbix_get:在 Server 端调试,手动获取 agent 指标,用于排错调试。

三、Zabbix 核心概念

  1. Item 监控项:采集指标,监控最小单元,例 CPU 使用率、内存、磁盘 IO。
  2. Trigger 触发器:监控项阈值判断,例CPU使用率>90%持续5分钟,达到阈值触发告警状态。
  3. Action 动作:触发器告警触发后执行动作,发送邮件、短信、执行自愈脚本、告警升级。
  4. Template 模板:预定义一套监控项、触发器、图形;批量绑定到主机,简化重复配置。
  5. Host 主机:被监控对象,服务器 / 交换机 / 虚拟机,必须关联模板才能实现监控。

四、Zabbix 适用场景

  1. 服务器监控:Linux/Windows CPU、内存、磁盘、网络、进程、负载、日志。
  2. 网络设备监控:交换机、路由器、防火墙,SNMP 协议采集端口、设备 CPU 内存。
  3. 应用中间件监控:Nginx、MySQL、Redis、Tomcat、Kafka。
  4. 云平台监控:VMware、OpenStack、阿里云 AWS。
  5. 业务指标监控:接口响应时间、订单数量、在线用户,通过自定义脚本 + zabbix_sender 上报。
  6. 分布式多机房监控:使用 Zabbix Proxy 代理解决跨网络隔离。
  7. 告警自愈:异常通知,自动执行脚本尝试恢复服务。

五、Zabbix‑Server 服务端部署(LNMP 架构,CentOS7)

整体架构:Nginx(web)+ MariaDB10.6(数据库)+ PHP7.2 + Zabbix6.0 源码编译。 主机:zabbix‑server 192.168.108.50

5.1 部署 Nginx

  1. 编写 nginx yum 源,yum 安装 nginx。
  2. 启动开机自启,防火墙放行 http 80 端口。
  3. 浏览器访问http://192.168.108.50验证 nginx 页面。

5.2 部署 MariaDB10.6

  1. 配置阿里 yum 源,安装mariadb‑server mariadb。
  2. 启动服务,设置 root 密码root123,删除空用户,安全初始化。
  3. 创建 zabbix 库和账号:
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix123';
GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix123';
flush privileges;

collate:字符集排序规则,影响字符比较、排序、group by、索引。

5.3 部署 PHP7.2

  1. 配置 epel、webtatic 源,安装 php7.2 全套扩展(gd、mbstring、pdo‑mysqlnd、bcmath、ldap 等)。
  2. 修改php‑fpm配置用户组改为nginx。
  3. nginx 配置文件,增加 php 解析 location,SCRIPT_FILENAME $document_root$fastcgi_script_name。
  4. 修改/etc/php.inizabbix 要求参数:
short_open_tag = On
expose_php = Off
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
always_populate_raw_post_data = -1
date.timezone = Asia/Shanghai
  1. 启动php‑fpm,重启 nginx;编写 info.php 测试 php 环境,测试 mysqli 数据库连通。

5.4 编译安装 Zabbix Server

  1. 解压zabbix‑6.0.6.tar.gz,导入数据库 sql 脚本(schema.sql、images.sql、data.sql、double.sql、history_pk_prepare.sql)。
  2. 安装编译依赖包,创建系统用户zabbix,禁止登录。
  3. configure 编译配置
./configure --sysconfdir=/etc/zabbix/ --enable-server --with-mysql --with-net‑snmp --with‑libxml2 --with‑ssh2 --with‑openipmi --with‑zlib --with‑libevent --with‑openssl --with‑ldap --with‑libcurl
  1. make install编译安装。
  2. 修改/etc/zabbix/zabbix_server.conf配置,填写数据库密码DBPassword=zabbix123。
  3. 创建日志文件,修改属主 zabbix。
  4. 编写 systemd unit 文件管理 zabbix‑server,启动服务,验证 10051 端口监听。

5.5 Web 前端初始化

  1. 将源码 ui 目录全部复制到 nginx 网页根目录,修改属主 nginx。
  2. 浏览器访问http://192.168.108.50/setup.php,执行 web 安装向导:
    • 语言选择中文,检查 PHP 环境;
    • 填写数据库信息:库 zabbix,用户 zabbix,密码 zabbix123;
    • 设置主机名称、时区 Asia/Shanghai;
    • 自动生成zabbix.conf.php配置文件。
  3. 默认登录账号密码:Admin /zabbix。

六、被监控端部署 Agent2 简述

主机 mysql001 192.168.108.51

  1. 关闭防火墙、SELinux;更新 ca 证书。
  2. 安装 zabbix‑agent2 程序,修改 agent2 配置,填写 Server 服务器 IP。
  3. 启动 agent2 服务,放行 10050 端口;
  4. 在 Zabbix Web 页面添加主机,填写被监控主机 IP,关联对应监控模板。

Agent 端口:被动模式下 Agent 监听 10050,Server (10051) 主动访问 agent 的 10050 采集数据。

七、端口汇总

表格

组件端口说明
Zabbix‑Server10051服务端监听端口,agent 上报数据
Zabbix‑Agent10050被监控端 agent 监听,被动模式使用
Web(Nginx)80浏览器访问前端
MariDB3306数据库端口

思维导图

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐