ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Docker Compose部署Zabbix监控平台:从架构设计到告警实战

Docker Compose部署Zabbix监控平台:从架构设计到告警实战 用 Docker 跑 Zabbix这个念头很多人动过但真正落地的时候踩的坑往往比想象中多。Zabbix 这套东西单独装不复杂可一旦涉及到多组件联动、数据库调优、告警通道打通每一步都藏着考验。我在生产环境里用 Docker Compose 编排过完整的 Zabbix 平台也从裸机迁移过整套监控栈这篇文章把我实际部署过程中验证过的方案、参数和排错路径全部梳理出来直接照做即可。整个平台定位是掌握 Docker 基础、想快速搭建企业级监控与告警平台的运维工程师或后端开发。文章会覆盖从选型到告警实战的完整路径看完你就能获得一套开箱即用的监控平台并且在出问题的时候知道该往哪个方向排查。1. 先把账算清Docker 部署 Zabbix 的价值与成本很多人在考虑容器化部署 Zabbix 时第一反应是多此一举。毕竟 Zabbix 官方提供了 RPM 包改改 yum 源就能装。但真实场景里我见过太多因为版本依赖冲突、系统库不兼容、迁移环境后配置丢失而焦头烂额的案例。容器化最大的价值不是看起来先进而是把 Zabbix 从操作系统的泥潭里完全抽离出来。1.1 用 Docker 部署到底解决了什么痛点Zabbix 由多个组件构成Server 负责数据采集和计算Web 前端提供交互界面Agent 部署在被监控主机上数据库存储所有历史数据。裸机安装时这几个组件各自依赖不同版本的库文件。我在 CentOS 7 上装过一次 Zabbix 5.0当时因为系统自带的 PHP 版本过低被迫手动编译升级连带影响了其他应用。这类问题在容器方案里根本不存在——每个容器自带完整的运行环境镜像里 PHP、库文件、依赖全部封装完毕拉下来就能跑。另一个痛点是迁移。做过机房迁移或者云上云下搬迁的运维都懂裸机上的监控平台迁移是最折磨人的工作之一。数据库要导出导入配置文件要逐一检查路径Web 服务器要重新配置虚拟主机。而容器化部署下的迁移就是两个命令的事docker compose up会自动拉取镜像、重建容器数据目录和配置文件通过挂载卷保留几乎做到无缝搬迁。1.2 什么时候不建议用 Docker 跑 Zabbix说实话容器化不是万能钥匙。如果你的监控规模达到上万台设备需要深度定制 Zabbix Server 内核参数、自定义编译采集器模块那么裸机部署反而更合适。容器化会给你带来额外的网络层和文件系统的开销对极致性能场景不友好。另外如果你的团队完全没有 Docker 基础纯粹只是复制粘贴命令一旦容器状态异常就无从下手那还是老老实实用传统安装方式吧。容器化部署要求你至少理解镜像、容器、数据卷这三个概念不然排错的时候会非常痛苦。我见过有人把数据库容器删了连带整个数据目录一起消失就是因为没理解数据卷的持久化机制。这不是工具的问题是使用者的认知问题。1.3 部署方案的选型对比先看一张我在实际项目里用到的对比表帮助你快速确定适合哪条路部署方式适用场景维护成本迁移难度性能损耗裸机 RPM 安装大规模、强定制、超高性能场景高依赖冲突多高配置零散无Docker Compose中小规模、标准功能、追求快速交付低版本升级简单极低目录挂载即可可忽略Kubernetes大规模、需要高可用和自动扩缩容高需专业 k8s 团队低有额外开销从实际监控规模来看几千个监控项以内的场景Docker Compose 完全够用性能损耗基本可以忽略不计。本文的核心方案采用 Docker Compose这是单人维护一套企业级监控平台性价比最高的路线。2. 架构设计与镜像选择这一步影响后面所有体验很多人部署 Zabbix 就是网上复制一份 docker-compose.yml跑起来能用就行。但这样做往往会在后续使用中遇到各种莫名其妙的问题Web 界面加载极慢、历史数据频繁掉线、告警通知发送失败。这些问题的根源多半是部署时没有想清楚架构。2.1 组件架构怎么搭最稳Zabbix 的官方镜像体系里最核心的四个组件是zabbix/zabbix-server负责数据采集、告警计算、事件处理zabbix/zabbix-web-nginx提供 Web 管理界面内置 Nginx PHP-FPMzabbix/zabbix-agent部署在需要被监控的主机上主动或被动的采集数据数据库Zabbix 官方支持 PostgreSQL 和 MySQL推荐 PostgreSQL组件间的数据流很简单Agent 采集到的数据发送给 ServerServer 把数据写入数据库Web 前端通过 PHP 从数据库读取数据并渲染页面。这个链路里数据库是最容易成为瓶颈的一环。所以生产环境优先选择 PostgreSQL它在处理 Zabbix 这种大量时序性写入的场景下表现更稳定真空VACUUM机制也更成熟。我见过不少人用默认的postgres:latest标签这是个隐藏的雷。Zabbix 每次版本发布都针对特定版本的 PostgreSQL、PHP 做了兼容性验证你随意漂移数据库大版本等到 Zabbix 升级时可能直接连不上库。正确做法是锁定 Zabbix 官方镜像发布时验证过的数据库版本。2.2 镜像标签怎么锁定最安全镜像标签的选择准则一句话总结不要用 latest用带版本号的标签而且要区分 LTS 版本。Zabbix 的版本策略和企业应用一样有长期支持版LTS和普通版Standard。普通版支持期短功能更新快但升级压力大LTS 版本支持期长达 5 年安全性更高。截至我写这篇内容的时候Zabbix 7.0 LTS 是推荐选择它改进了告警配置体验和模板管理机制监控项配置效率提升了不少。实际部署时我会这么锁定标签zabbix-server: image: zabbix/zabbix-server-pgsql:7.0-ubuntu-6.0其中7.0是 Zabbix 主版本号6.0是 PostgreSQL 版本。后面的小版本号每次拉取可能不同所以部署完成后最好把镜像固定在具体的 tag 上避免后续docker compose pull拉到一个未验证的补丁版本。2.3 端口规划与目录挂载Zabbix 常用的端口有三个10051/TCPZabbix Server 接收 Agent 数据的端口10050/TCPZabbix Agent 被动接收 Server 查询请求的端口Web 端口Web 界面的访问端口默认 8080建议映射到 80 或 443端口规划上有个容易忽略的地方如果你打算让跨网段、跨机房的主机主动上报数据主动模式就必须确保 Agent 能通过 10051 端口访问到 Server。防火墙规则要提前放行否则后面 Agent 添加了一大堆数据却一直收不上来。数据持久化方面至少要把两个目录挂到宿主机上PostgreSQL 的数据目录这是所有监控数据的家一旦丢失等于整个平台瘫痪自定义脚本和外部配置目录如果你后面要写自定义监控脚本、配置告警媒介脚本需要挂载出来方便编辑volumes: - /data/zabbix/pgdata:/var/lib/postgresql/data - /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts一个常见失误是把整个容器丢在默认的匿名卷里完全不挂载宿主机目录。用起来确实省事但哪天docker compose down -v手滑所有数据灰飞烟灭这种教训见过太多次了。3. 实操部署docker-compose 编排与容器启动全记录到了最核心的环节。我这里给出一份完整的 docker-compose.yml不是网上随便复制的那种简化版而是带注释、经历过生产验证的版本。3.1 完整的 docker-compose.yml 文件version: 3.8 services: postgres: image: postgres:16-alpine container_name: zabbix-postgres restart: always environment: POSTGRES_USER: zabbix POSTGRES_PASSWORD: zabbix_pwd_2024 POSTGRES_DB: zabbix volumes: - /data/zabbix/pgdata:/var/lib/postgresql/data networks: - zabbix-net zabbix-server: image: zabbix/zabbix-server-pgsql:7.0-ubuntu-6.0 container_name: zabbix-server restart: always environment: DB_SERVER_HOST: postgres POSTGRES_USER: zabbix POSTGRES_PASSWORD: zabbix_pwd_2024 POSTGRES_DB: zabbix ZBX_CACHESIZE: 128M ZBX_HISTORYCACHESIZE: 64M ZBX_TRENDCACHESIZE: 64M ports: - 10051:10051 volumes: - /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts - /data/zabbix/externalscripts:/usr/lib/zabbix/externalscripts depends_on: - postgres networks: - zabbix-net zabbix-web: image: zabbix/zabbix-web-nginx-pgsql:7.0-ubuntu-6.0 container_name: zabbix-web restart: always environment: ZBX_SERVER_HOST: zabbix-server DB_SERVER_HOST: postgres POSTGRES_USER: zabbix POSTGRES_PASSWORD: zabbix_pwd_2024 POSTGRES_DB: zabbix PHP_TZ: Asia/Shanghai ports: - 80:8080 depends_on: - zabbix-server networks: - zabbix-net networks: zabbix-net: driver: bridge这里有几个参数值得重点讲一下。3.2 环境变量参数怎么调才合理首先是ZBX_CACHESIZE这个参数代表 Zabbix Server 用来存储监控项配置、历史数据缓冲的共享内存大小。默认值是 8M这对小规模监控够用但一旦你添加了几十台主机的几百个监控项8M 很快耗尽表现就是 Web 界面提示 Zabbix server is not running 或者监控项数据不更新。我在一台监控 200 台主机的环境里把这个值调到 128M 才稳定下来。其次是PHP_TZ也就是 Web 前端的时区。不设置的话你看到的时间线和实际时间可能存在 8 小时的偏差排查告警时间会很痛苦。这里直接指定Asia/Shanghai即可。还有一个隐藏参数ZXB_STARTPOLLERS、ZBX_STARTPOLLERS_UNREACHABLE等控制并发采集线程的中小规模环境不需要动默认配置就够用。只有当你监控的主机数量突破 500 台才需要逐步提高 polller 线程数。3.3 启动过程与验证步骤配置好 docker-compose.yml 后在文件所在目录执行docker compose up -d第一次启动会拉取镜像时间取决于网络环境耐心等待即可。启动完成后用下面的命令检查容器状态docker compose ps如果所有容器状态是Up而且没有重启次数异常说明初步启动成功。接着查看日志确认数据库初始化和表结构创建是否正常docker logs -f zabbix-server看到类似Zabbix server started的日志说明 Server 已经就绪。最后打开浏览器访问http://你的服务器IP如果配置正确应该能直接看到 Zabbix 的登录界面。默认账号是Admin初始密码是zabbix。注意首次登录后必须立即修改默认密码。Zabbix 默认账号是公开的不修改等于把监控平台的管理员权限送给所有能访问到你 Web 端口的人。3.4 常见启动失败的快速处理在启动阶段遇到的报错八成集中在数据库连接和端口占用上。数据库连接失败表现是 zabbix-server 容器反复重启日志里有类似Cannot connect to database的报错。排查思路确认POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB三个环境变量在 server 容器和 postgres 容器里是否完全一致。密码里如果有特殊字符记得用单引号包起来。端口被占用表现为port is already allocated的报错。排查思路docker ps看看是否有其他容器已经占用了 8080 或 80 端口或者用ss -lntp | grep 端口号确认宿主机的占用情况。4. 前端初始化、中文配置与告警通道打通容器启动完毕只是万里长征第一步。Web 界面能登录不等于平台可用后续的初始化配置才是决定这套监控好不好用的关键。这个环节很多人因为嫌麻烦而跳过导致后面要么看不到中文界面要么告警通知发不出来回头又各种抱怨 Zabbix 难用。4.1 前端界面初始化与中文乱码处理Zabbix 7.0 的 Web 界面首次访问时会有一个初始化向导需要确认 PHP 环境检查是否通过。容器镜像已经预置了所有依赖正常情况下这一步不会有问题。直接点下一步填写数据库连接信息时主机名填postgres这是容器编排网络内的服务名不要填localhost或127.0.0.1。整个初始化流程完成登录进去之后第一个要处理的是语言问题。Zabbix 7.0 的前端界面已经内置了中文语言包操作路径是用户设置 → Language → 选择 Chinese (zh_CN)。但这里有个经典坑切换成中文后图形监控界面里的字体变成乱码方块。这是因为 Zabbix 默认的字体库不包含中文字符。解决方案是下载中文字体文件替换掉镜像里的默认字体。具体操作# 进入 Web 容器 docker exec -it zabbix-web /bin/bash # 备份原字体 mv /usr/share/zabbix/assets/fonts/DejaVuSans.ttf /usr/share/zabbix/assets/fonts/DejaVuSans.ttf.bak # 下载或拷贝中文字体到容器内 # 推荐用思源黑体或者微软雅黑用 docker cp 拷贝进去 docker cp /path/to/local/MicrosoftYaHei.ttf zabbix-web:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf # 重启容器 docker restart zabbix-web字体替换后图形监控页面的中文就能正常显示了。这个操作只影响容器内部的文件系统如果容器重建了需要重新替换所以有个更优雅的解决方案把字体目录也挂载到宿主机后续换字体不需要进容器操作。4.2 告警媒介配置打通邮箱通知Zabbix 的告警通知链路是监控项触发阈值 → 生成触发器事件 → 告警媒介把事件推送到外部渠道。告警媒介这个概念很多新手不习惯其实可以理解成你希望通过什么渠道收到通知。Zabbix 默认支持邮箱、短信网关、Webhook、脚本等媒介类型。中小企业最常用的是邮箱和钉钉/企业微信机器人。先讲邮箱配置。在 Web 界面里依次进入管理 → 报警媒介类型 → Email配置 SMTP 服务信息。这里有一个很多人踩过的坑SMTP 认证的From地址必须和登录邮箱的地址完全一致否则部分邮件服务商会拒绝发送。另外如果使用 465 或 587 端口注意勾选对应的 SSL/TLS 加密选项。配置完成后还需要给用户绑定媒介。路径是管理 → 用户 → 点击 Admin → 报警媒介 → 添加填写接收邮件的地址。绑定完成后可以点击发送测试消息验证链路是否通。注意很多服务器默认封禁 25 端口的出站流量邮件发送会一直失败。如果你发不出邮件优先检查服务器安全组是否放行了 SMTP 端口的出站方向。4.3 进阶告警企业微信机器人通道企业微信机器人是我目前最常用的告警通道稳定、免费、推送即时。配置方式比邮件简单得多核心就是利用 Zabbix 的 Webhook 媒介类型。创建一个企业微信群添加机器人后获得一个 Webhook 地址。然后在 Zabbix 的管理 → 报警媒介类型里选择Webhook填入脚本参数。Zabbix 7.0 内置的 Webhook 告警脚本已经支持企业微信只需要配置webhook_url参数即可。{ webhook_url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key你的key, message: 告警通知{ALERT.SUBJECT} {ALERT.MESSAGE} }这里的{ALERT.SUBJECT}和{ALERT.MESSAGE}是宏变量Zabbix 会自动替换成实际的告警标题和内容。配置完成后同样记得在用户层面绑定这个媒介。我在实际使用中的经验是邮件通道作为兜底企业微信作为主力。因为邮件有时候会被各种网关拦截导致告警延迟企业微信机器人基本是秒级推送。多媒体通道并行可以大幅提高告警触达率。5. 主机接入、模板绑定与告警规则实战平台搭好、告警通道打通接下来就是把主机接入进来让告警规则真正跑起来。这是整个监控体系发挥价值的核心步骤也是很多项目停留在看起来很专业、实际没产出门槛的最后一道关卡。5.1 在 Linux 主机上部署 Zabbix Agent被监控的 Linux 主机需要安装 Zabbix Agent。这里有个优先级决策用容器跑 Agent 还是用裸机安装我的经验是Agent 尽量用裸机安装。原因是 Agent 要采集的主机级指标涉及系统类、文件系统类、进程类数据容器化的 Agent 在权限隔离和网络命名空间上都会有额外的限制反而得不偿失。以 Ubuntu 系统为例安装 Agent 的流程# 添加 Zabbix 官方源 wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1ubuntu22.04_all.deb dpkg -i zabbix-release_7.0-1ubuntu22.04_all.deb apt update # 安装 Agent 并修改配置 apt install -y zabbix-agent修改配置文件/etc/zabbix/zabbix_agentd.confServer你的Zabbix服务器IP ServerActive你的Zabbix服务器IP:10051 Hostname被监控主机的主机名其中Server是允许被动拉取数据的服务器地址ServerActive是主动上报数据的服务器地址。如果你只需要被动模式Zabbix Server 统一管理数据抓取节奏ServerActive可以不配置。但建议两个都配上主动模式的容错性更强即使 Server 短暂无法访问Agent 也能缓存数据稍后补传。配置好后启动服务systemctl restart zabbix-agent systemctl enable zabbix-agent确认 Agent 运行正常可以用zabbix_get命令测试zabbix_get -s 被监控主机IP -k system.hostname能返回主机名说明 Agent 和 Server 之间的通信链路是通的。这一步测试非常关键建议每接入一台主机就测一次不要批量部署完再统一测否则到时候几十台主机一起排查链路问题会非常痛苦。5.2 在 Web 界面添加主机与绑定模板Agent 装好后回到 Zabbix Web 界面路径是数据采集 → 主机 → 创建主机。需要填写几个关键字段主机名要唯一建议用主机名加环境后缀的格式比如web01-prod方便和测试环境区分群组建议按业务域或环境划分比如生产环境开发环境数据库等接口Agent 接口填 IP 地址和端口端口默认 10050保存后在模板标签页里给主机绑定监控模板。Zabbix 的模板是一组预先定义好的监控项、触发器、图形的集合体。Linux 主机直接搜 Linux by Zabbix agent 模板这是官方维护的模板包含 CPU、内存、磁盘、网络等几十个常用监控项。绑定之后等个 30 秒左右取决于模板的更新间隔主机状态会从灰色变成绿色。这时候点进监控 → 最新数据就能看到实时采集到的数据在滚动刷新了。5.3 告警规则的设计原则与实战配置告警规则在 Zabbix 里是通过触发器Trigger实现的。触发器的本质是一条表达式当监控项的值满足某个条件时触发告警。默认模板里已经包含了不少触发器比如 CPU 使用率过高、磁盘剩余空间不足、服务不可用等。但默认规则的阈值通常是通用值不一定适合你的业务场景。这里分享我实践中的一些经验阈值监控指标建议阈值说明CPU 使用率90% 持续 5 分钟短时飙高不代表异常加持续时间才能过滤噪声内存使用率90% 持续 5 分钟Linux 的缓存机制会导致这个值虚高谨慎使用磁盘剩余空间低于 10% 或低于 10G磁盘告警尽量加空间绝对值条件系统平均负载CPU 核数 × 0.7负载和 CPU 核数强相关不能一刀切网络流量自定义依赖业务场景一般看趋势不设绝对值告警自定义触发器的路径是配置 → 主机 → 选择主机 → 触发器 → 创建触发器。举个例子给磁盘空间设置一个更智能的告警规则。默认模板里的规则是磁盘空间低于 10% 就告警但对一个 2TB 的磁盘来说10% 等于 200GB这个告警触发得太晚对一个 20GB 的小盘来说10% 只有 2GB系统很快就写满了告警触发得太晚。更好的方式是同时设置百分比阈值和绝对值阈值两个条件用or连接last(/Linux by Zabbix agent/vfs.fs.size[/,pfree]) 10 or last(/Linux by Zabbix agent/vfs.fs.size[/,b free]) 10G这行表达式拆开看last()是 Zabbix 的触发器函数取某个监控项的最新值/是文件系统挂载点pfree是剩余空间百分比b free是剩余空间字节数。整个表达式的含义就是剩余空间不足 10%或者剩余空间不足 10G任一条件满足就触发告警。表达式写好后下方还有一个恢复表达式字段用于定义告警恢复的条件。恢复表达式一般写剩余空间大于 15%且剩余空间大于 15G。这样可以避免在阈值附近反复抖动触发告警风暴。5.4 监控 Windows 主机时的差异化配置Windows 主机同样需要安装 Zabbix Agent微软官方发布了 Windows 版本的安装包下载解压后运行安装程序即可。安装过程中会弹出一个配置界面填写 Zabbix Server 地址、Agent 监听端口默认 10050其余保持默认即可。Windows 环境下的主要差异在模板选择。不要复用 Linux 模板那里面大量用到/proc、/dev这类 Linux 特有的路径Windows 上根本无法采集。应该使用 Windows by Zabbix agent 模板它针对 Windows 的性能计数器做了适配覆盖 CPU、内存、磁盘、网络等指标。如果要监控 Windows 主机的 GPU 使用率默认模板不支持需要额外配置性能计数器。经验是先通过 Windows 自带的任务管理器或性能监视器确认 GPU 计数器的名称再到 Zabbix Agent 配置文件里手动添加采集项原理和 Linux 上的自定义 UserParameter 是一样的。6. 运行一段时间后的排错清单与优化建议平台上线运行一周左右各种问题会逐渐浮出来。这一节整理我在维护 Zabbix 容器化部署过程中遇到频率最高的几个问题以及对应的排查路径。内容比较像踩坑笔记但每一条都是真金白银换来的经验。6.1 Web 界面提示 Zabbix server is not running这是出现频率最高的告警也很容易误导人。看到这个提示很多人第一反应是 Zabbix Server 挂掉了然后去重启容器。但实际排查起来有几种完全不同的可能数据库连接池耗尽。Zabbix Server 和 Web 前端共用同一个 PostgreSQL 实例连接数有限。当监控项数量增长较快时数据库连接数可能被打满导致 Web 界面从数据库读取不到 Server 心跳数据从而误判 Server 未运行。排查命令进入 postgres 容器执行SELECT count(*) FROM pg_stat_activity;看看连接数是否接近max_connections限制。共享内存不足。Zabbix Server 启动时会在容器内申请共享内存用于缓存监控数据。容器默认的/dev/shm大小只有 64M监控规模稍大就会打满。解决方案是在 docker-compose.yml 里给 zabbix-server 设置更大的共享内存zabbix-server: shm_size: 256mWorker 进程挂死。Zabbix Server 内部有多个 worker 进程分门别类处理不同任务比如 poller 负责被动采集、trapper 负责接收主动上报、escalator 负责告警升级。如果某个 worker 因为数据异常挂死不退出会导致整体卡顿。排查方法是看docker logs定位具体卡在哪个模块然后在 Web 界面的报告 → 系统信息里检查当前使用率。这套问题的常规流程是先看日志 → 再查数据库连接 → 最后看共享内存。按这个顺序走80% 的情况能在十分钟内定位。6.2 告警通知频繁误报和漏报的处理告警平台的公信力是在一次次准确的告警中建立的。误报多了运维团队就会麻木漏报一次可能造成事故。我在实践中总结了一套减少告警噪声的方法。层级化告警不要所有问题都用同一个渠道、同一个级别发。把告警分成三级严重严重到需要半夜爬起来处理、警告工作时间处理即可、信息记录备查。走不同媒介严重走电话或企业微信负责人警告走钉钉群信息只记录不主动推送。持续时间过滤很多指标的瞬时抖动没有实际影响。在触发器表达式里加上持续时间条件比如min函数或last配合时间窗口可大幅减少误报。恢复表达式务必配置不配置恢复表达式告警恢复时会使用默认条件可能产生重复告警。自定义恢复条件能让告警平息得更合理避免刚恢复又触发的循环。6.3 日常备份与版本升级方法容器化部署在备份这件事上比裸机简单重点备份三个东西PostgreSQL 数据目录Zabbix Server 的自定义脚本目录docker-compose.yml 文件本身数据库备份可以写一个简单的 cron 任务docker exec zabbix-postgres pg_dump -U zabbix -d zabbix /data/backup/zabbix_$(date %Y%m%d).sql保留最近 30 天的备份即可。版本升级方面Zabbix 的常规升级路径是先备份 → 更新镜像 tag → 重启容器 → 执行数据库升级脚本。Zabbix 7.0 LTS 版本的升级过程相对平滑官方提供了升级脚本数据库结构变更会自动完成。唯一要注意的是升级前必须完整阅读官方的升级注意事项确认跨版本边界比如 6.0 到 7.0 和 5.0 到 7.0 的中间步骤是完全不同的。6.4 监控平台自身的健康检查最后分享一个容易被忽略的点监控平台也要能监控自己。Zabbix 自身支持添加无监控数据的监控项通过配置nodata()函数来监控整个平台的心跳。同时在 Server 端设置一个定期测试数据库读写状态的脚本如果数据库卡死或磁盘写满马上发出告警。这样运维同事收到告警后不会猛然发现整套监控平台已经停止工作好几个小时。监控系统的最高价值不是展示数据多漂亮而是在业务真正出问题之前把风险精确地送到该被通知的人手里。容器化部署 Zabbix 帮我把这个目标从一个需要慢慢调的远期任务缩短成了一个能在一个上午之内跑通、然后不断打磨的日常工作。
返回列表