十三、Zabbix 监控

一、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

  5. 启动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

  4. make install编译安装。

  5. 修改/etc/zabbix/zabbix_server.conf配置,填写数据库密码DBPassword=zabbix123。

  6. 创建日志文件,修改属主 zabbix。

  7. 编写 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‑Server 10051 服务端监听端口,agent 上报数据
Zabbix‑Agent 10050 被监控端 agent 监听,被动模式使用
Web(Nginx) 80 浏览器访问前端
MariDB 3306 数据库端口

思维导图

相关推荐
番茄啊1 小时前
linux 开启xftp连接
linux·运维·服务器
IT利刃出鞘2 小时前
Docker Compose--解决修改配置后不生效的问题
运维·docker·容器
Lsetea2 小时前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
Julien20043 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
十碗饭吃不饱3 小时前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络
好用斋3 小时前
拾光坞安装网盘聚合LitePan:把Docker命令翻译成图形界面
运维·docker·容器
贝锐5 小时前
金仓、达梦、TDSQL全适配:向日葵补齐信创数据库层远程运维能力
运维·数据库·信创
Flynn Liang6 小时前
上线后怎么排查 AI 调用?Spring AI Observability:token/延迟/成本埋点与全链路追踪
java·人工智能·spring·监控·可观测性·observability·springai
AOI小白新手上路7 小时前
深度学习算力购置方案分析:本地 RTX 4090 服务器 vs 云端租赁
服务器·人工智能·深度学习
千桐科技7 小时前
qKnow智能体构建平台专业版 v3.1.5 发布:扩容工作流编排调用能力,上线Text2SQL插件,拓宽数据类智能应用构建边界
服务器·数据库·oracle·qknow