英伟达发布开源大模型Nemotron 3 Super›

Netdata 怎么用:从秒级监控到异常排查,一套可复用的服务器监控流程

Netdata · 服务器监控 · 故障排查 · 可观测性 · 开发指南 · Code0阅读时间:9 分钟发表时间:2026.10.17
Netdata 实时监控:机柜上的异常尖峰曲线引出服务器排查流程

Netdata 怎么用:从秒级监控到异常排查,一套可复用的服务器监控流程

一台服务器每天都可能出现几秒钟的 CPU、磁盘或网络尖峰。用户只说“刚才卡了一下”时,传统的分钟级曲线往往已经把尖峰平均掉了。想把这类问题查清楚,需要在同一条时间线上回答四件事:哪台机器变了、哪个指标先变、有没有关联告警、当时日志写了什么。Netdata 适合承担这段实时排查工作。下面不按功能菜单逐项介绍,而是从一台测试机开始,给出安装、观察、定位和验收的完整路线。

先给它一个准确定位:Netdata Agent 在被监控机器上采集和存储指标,提供实时图表、内置告警与本地机器学习异常检测;Netdata Parent 可以汇集子节点,Netdata Cloud 则提供另一种跨节点访问方式。它是监控系统,不是会自动修复故障的 AI Agent。官方说明了秒级采样和就地存储的设计,但具体指标能否每秒更新,还取决于采集器与配置。参见产品架构说明。

要回答的问题 在 Netdata 里看什么 能得到的结论 还需要人工核对
刚才是否真的有尖峰? CPU、内存、磁盘 I/O、网络曲线 异常发生的时间和持续长度 业务请求、部署与定时任务时间线
是否只有一项指标变化? 同时间窗的相关图表与异常率 哪些资源同时偏离平常 因果关系,不能只凭相关性判断
是否已经触发已知风险? Alerts 页面与状态变更 是否越过配置好的阈值或规则 阈值是否适合这台机器
是否有服务级线索? Logs 与相关服务日志 重启、错误、超时等事件 原始日志、应用链路和用户影响

下面的总览界面展示节点、告警和最近报告如何放在同一个入口。本文配图是产品界面示例,用来识别页面区域,并非本次安装的性能测试结果。

Netdata 总览界面展示节点状态、告警分布与最近报告

图 1|先看节点与告警分布,再进入发生问题的机器。示例界面中的数量不代表你的环境。

先在一台测试机上装好,而不是一次铺满集群

选一台你有管理权限、业务风险较低的 Linux 测试机。安装前记录操作系统、可用内存、现有监控方式和 19999 端口的访问规则。Netdata 官方推荐使用 kickstart.sh;为了便于检查脚本,先下载、阅读,再执行。稳定版与自动更新、遥测选项以当前安装文档为准,不把某篇文章里的旧参数当成永久有效的命令。

curl -fsSL https://get.netdata.cloud/kickstart.sh -o /tmp/netdata-kickstart.sh
less /tmp/netdata-kickstart.sh
sh /tmp/netdata-kickstart.sh

交互安装时选择稳定频道,按组织要求决定自动更新、匿名统计和是否连接 Cloud。脚本会按系统情况选择软件包、静态构建或源码路径;不要在未核对权限和脚本内容的生产机器上盲目执行。安装完成后,先从本机或管理网访问 http://127.0.0.1:19999,确认页面、CPU、内存、磁盘和网络图表在更新。远程运维可用 VPN、跳板机或受保护的反向代理;不要直接把 19999 暴露到公网。官方Agent 安全指南给出了绑定管理网地址和限制来源的方式。

如果必须以 Docker 运行,请照官方容器安装说明评估宿主机目录、进程命名空间、Docker socket 与能力权限。一个只有 -p 19999:19999 的极简容器可能显示自身数据,却拿不到完整宿主机和容器指标;官方完整示例权限较高,也不能不经审查直接复制到受限环境。

第一次排查:先固定时间窗,再找先后顺序

假设 14:32 有用户反馈接口突然变慢。不要先盯着红色数字猜“内存不够”,按这个顺序操作:

  1. 在受影响节点把时间窗缩到 14:27–14:37,记录时区、机器名和告警状态。另留一段正常时段作为对照,避免把周期性波动当事故。
  2. 同屏查看 CPU 使用率、运行队列、内存压力、磁盘读写与延迟、网络吞吐和错误。若 CPU 在 14:31:58 先升,而磁盘延迟在 14:32:05 后升,两者的先后顺序比“两个图都很高”更有价值。
  3. 用标签、实例或容器视图缩小范围。新增服务不一定会自动出现,取决于对应采集器、服务权限和自动发现结果;没看到图表时先排查采集状态,不要误判为服务没有问题。
  4. 查同一时间段的告警、部署记录、定时任务和日志。把“观察到的事实”与“可能的原因”分开记录,再用应用侧证据验证。

实时指标页可在一个时间窗里并排比较多个系统指标。它能告诉你何时偏离,但不能单凭曲线证明是哪一行代码导致故障。

Netdata 指标页面并列展示 CPU 和内存相关曲线

图 2|观察指标是否在同一时间点变化;采样间隔、单位和坐标轴都要一起看。

可以用这张记录卡让排查过程可复查:

节点:             [主机名 / 环境]
用户症状:         [接口、时间、影响范围]
观察窗口:         [起止时间与时区]
首个变化的指标:   [名称、单位、出现时间]
同期关联变化:     [第二/第三指标]
告警与日志:       [规则名、事件、时间]
假设:             [尚待验证的解释]
验证动作:         [查部署 / 查应用日志 / 回滚 / 压测复现]
结论与证据链接:   [能让同事复查的页面或工单]

异常率能缩小搜索范围,不能充当事故结论

Netdata 的本地机器学习会学习指标的历史行为,再标记与平常不同的数据点。异常检测文档说明,默认配置至少需要约 15 分钟数据才能训练首批模型,前 48 小时的异常率可能偏高,完整模型集合建立需要更长时间。因此刚装好就看到异常率上升,不应立即写成“AI 发现生产故障”。

实际用法是把 Anomaly Advisor 当作排序器:在确定的故障时间窗里看哪些维度异常率升高,再回到原始指标和日志核对。异常率低也不能保证服务正常:缓慢退化、业务层错误或尚未采集的指标都可能漏掉。是否需要调整敏感度、跳过高噪声图表,可以看机器学习配置。

Netdata Anomaly Advisor 显示异常率曲线与异常指标数量

图 3|异常率尖峰是进一步查看指标的入口,不是自动生成的根因报告。

告警、日志和通知:把“看到异常”变成“有人处理”

内置告警能覆盖常见的资源与服务状态,但默认规则不一定适合你的机器。一台夜间批处理服务器的 CPU 使用率和在线 API 节点的容忍度不同。先从告警配置中选 3–5 条真正影响业务的规则,分别写清阈值、持续时间、责任人和恢复条件。不要一安装就把所有通知推到团队群里;噪声会比没有告警更快毁掉响应机制。

日志在这里承担的是“补证据”的角色。系统日志、应用日志的可见性依赖操作系统、采集器与权限;打开 Logs 后,把时间固定在指标突变的几分钟,再按服务名、严重级别或关键词过滤。Netdata 的日志管理文档区分了就地查询和集中存储,不要以为看得到一条日志就代表长期归档已经配置好。

Netdata 日志页面展示 systemd journal 事件的时间分布和日志明细

图 4|用同一时间窗把指标尖峰与日志事件对齐;示例中的 IP 与事件并非本文环境的测试结果。

一个可操作的演练是:选择已知会产生资源波动的日常任务,先记下任务启动和结束时间,然后确认图表、相关告警及日志是否都能定位到同一段时间。不要为了“造一个漂亮的尖峰”在生产机器上运行无上限压力命令。

多节点、留存和 Prometheus:按问题决定架构

只有一两台机器时,先把单机采集、访问控制和告警跑通。机器数量增加后,可以让 Child Agent 将指标流式发送给自托管 Parent;Parent 的存储容量要按所有子节点的指标总量设计。另一种方式是使用 Netdata Cloud 做跨节点访问。具体数据留存与访问边界要按部署方式核对,不能简单写成“接 Cloud 就把所有原始指标长期上传”。Parent/Child 配置和留存说明分别解释流式汇总与分层数据库的容量规则。

Netdata 多节点实时页面按机器展示不同指标曲线

图 5|多个节点放在同一视图里方便找出异常是否局限于单机。

Netdata 与 Prometheus/Grafana 也不必被写成二选一。Netdata 自身支持多层级留存,留存长度取决于磁盘配额和配置;Prometheus 适合已有的统一抓取、PromQL、规则与生态。如果团队已经有 Prometheus,可用官方导出接口把 Netdata 的指标纳入现有系统,再确认指标命名、抓取间隔和基数,而不是重复建设两套没人维护的告警。

场景 优先考虑 验收问题
临时定位一台机器的秒级波动 单机 Netdata Agent 尖峰、关联指标和日志能否对到同一时间?
多台机器需要内网统一看 Child + 自托管 Parent 断连后能否补传,Parent 磁盘够不够?
已有集中监控平台 Netdata 接入既有 Prometheus 命名、间隔和告警是否重复?
必须多年保留或做跨域查询 先测容量和现有存储架构 留存与查询成本能否达标?

Code0:把排查记录交给 AI 前,先收紧证据边界

团队若用 Code0 调用模型,可以把上面的排查记录卡作为一次人工审阅的分析输入:只提供已脱敏的指标摘要、时间线和必要日志,让模型列出待验证假设与下一步检查项。不要把整个监控面板的管理权限、Cloud 凭据或包含用户数据的原始日志直接交给模型。参考输入如下:

角色:你是值班工程师的辅助分析员,不得宣称已定位根因。
事实:14:31:58 CPU 使用率上升;14:32:05 磁盘写延迟上升;
      14:32:07 应用日志出现超时;当日 14:30 有一次部署。
任务:按证据强弱列出最多三个假设;每个假设给一项可执行验证动作;
      明确哪些信息仍缺失。不要给自动执行或公网开放端口的命令。

输出应由工程师与部署记录、应用日志和原始指标核对,再写进事故工单。这里讨论的是通用模型辅助分析流程,不是宣称 Netdata 已原生接入 Code0。如果计划通过 Netdata 的 MCP 能力或自建接口让 Agent 读取实时数据,先核对权限、访问范围和当前客户端的支持情况。

用这张试跑清单决定是否推广

不要只问“面板好不好看”。在测试机运行一周后,按下表验收:

检查项 合格标准 没通过时先查哪里
覆盖 关键主机、容器和服务的指标可见 采集器、自动发现、访问权限
事件还原 能把一次已知波动的指标、告警、日志对到同一时间 时区、采样间隔、日志权限
告警质量 重要事件能到责任人,重复和误报可控 阈值、持续时间、通知路由
资源开销 Agent 的 CPU、内存和磁盘占用在本机预算内 指标基数、采样、ML 与留存配置
安全 19999 不对公网开放,访问与数据流向可解释 绑定地址、反向代理、Cloud/Parent 配置
可维护性 更新、备份和恢复流程写入运维手册 安装方式、配置文件、Parent 容量

Netdata 的价值是把“服务器刚才抖了一下”变成一段有时间、有指标、有日志、能交给同事复查的证据链。它能缩短定位过程;最终是否值得推广,取决于这条证据链在你的机器上是否稳定、告警是否有用,以及运行成本能否接受。

资料来源

常见问题(FAQ)

Netdata 的“AI 异常检测”需要把指标送到云端吗?

基础机器学习异常检测在 Agent 上运行;是否连接 Cloud 是另一项部署选择。若启用 Cloud 或外部服务,应另外核对身份验证、访问权限和数据流向,不能只凭“本地 Agent”推断所有功能都完全离线。

装好后为什么看不到某个 Docker 容器或数据库?

自动发现依赖对应采集器、接口权限和运行方式。先确认容器/服务是否能被 Agent 访问,再检查采集器状态与相关官方集成文档;Docker 部署还要核对宿主机挂载和 socket 权限。

异常率升高就表示服务故障吗?

不是。它表示指标行为偏离近期模型所学到的模式。新安装阶段、正常批处理和计划内发布都可能造成异常;必须回到原始指标、日志及业务影响上判断。

Netdata 能代替 Prometheus 和 Grafana 吗?

如果主要任务是单机实时排查,Netdata 可以先单独试跑;如果团队已经依赖 PromQL、集中规则和长期看板,先测试接口对接与职责划分。Netdata 也有分层留存,不能笼统说它只能存短期数据。

19999 端口可以直接开放给公网吗?

不建议。优先只允许管理网或本机访问,远程查看通过 VPN、受保护的反向代理等方式,并按官方安全文档配置绑定地址与访问控制。