netdata/netdata · 上手攻略

  • 仓库:netdata/netdata
  • 链接:https://github.com/netdata/netdata
  • 分类:skill
  • 作者:Tom
  • 更新:2026-07-10

这是什么

Netdata 是一个开源的实时基础设施监控平台,主打每秒级指标采集零配置自动发现。它用 Go 语言编写(核心采集器),监控范围覆盖 CPU、内存、磁盘、网络、容器(Docker/Kubernetes)、应用程序(nginx、PostgreSQL、Redis 等)、硬件传感器、GPU 等,堪称全栈可观测性的一站式方案。核心差异化在于:无需复杂配置,开箱即用,且内置 ML 驱动的异常检测能力。

解决的问题:传统监控工具(Prometheus + Grafana 等)需要大量手动配置,采集粒度低(通常 15s 一采),运维成本高。Netdata 填补了"轻量、实时、零配置"这个空白,适合快速定位生产问题的敏捷团队。


快速安装

Linux(一行命令,推荐)

# 稳定版
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && \
  sh /tmp/netdata-kickstart.sh --non-interactive

curl https://get.netdata.cloud/kickstart.sh | sh -s -- --non-interactive

安装完成后,Web UI 访问 http://localhost:19999

Docker(一行跑起来体验)

docker run -d --name=netdata \
  -p 19999:19999 \
  -v netdataconfig:/etc/netdata \
  -v netdatalib:/var/lib/netdata \
  -v netdatacache:/var/cache/netdata \
  -v /:/host/ro:ro \
  --cap-add=SYS_ADMIN \
  --security-opt apparmor=unconfined \
  netdata/netdata

Kubernetes(Helm)

helm repo add netdata https://netdata.github.io/helmchart/
helm repo update
helm install netdata netdata/netdata

macOS

brew install netdata

核心用法

1. 访问仪表板

安装后直接打开浏览器访问 http://localhost:19999(远程机器替换 localhost)。Netdata 自动发现本机所有监控项,按类别分组展示,支持每秒刷新的实时图表。

2. 查看系统默认监控

默认包含以下核心看板: - system — CPU、RAM、磁盘 I/O、网络流量 - nginx / apache / mysql / postgres / redis 等应用插件(检测到自动启用) - containers — Docker 和 Kubernetes 指标 - apps — 按进程分组的资源占用

3. 配置应用监控(零配置)

Netdata 自动发现大多数应用。对于需要手动启用的,在 /etc/netdata/go.d/*.conf 中取消注释即可,例如 PostgreSQL:

# 编辑配置
sudo nano /etc/netdata/go.d/postgres.conf
# 将 enabled 设置为 yes,重启
sudo systemctl restart netdata

4. 设置告警

Netdata 预置数百个告警规则,可直接使用。通过 Edit Chart 界面修改阈值,或在 /etc/netdata/health_alarms_notify.conf 配置通知渠道(支持 email、Slack、Telegram、PagerDuty 等):

# 查看所有告警
grep -r "alarm" /etc/netdata/health.d/

5. 连接 Netdata Cloud(可选)

# 从 https://app.netdata.cloud 获取 claim token
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID

6. API 查询

# 获取某指标最近 10 条数据(JSON)
curl "http://localhost:19999/api/v1/data?chart=system.cpu&after=-10&before=0&points=10&format=json"

# 获取所有可用图表
curl "http://localhost:19999/api/v1/charts"

典型适用场景

场景 说明
突发问题排查 当服务响应变慢,实时查看 CPU/内存/网络每秒变化,无需等待轮询周期
Kubernetes 监控 监控 Pod 级别的资源占用,自动发现容器变化
AI 基础设施监控 监控 GPU 利用率、NVIDIA SMI、模型推理延迟等 AI 工作负载
数据库慢查询定位 MySQL/PostgreSQL/Redis 的查询 QPS、连接数、缓存命中率实时查看
告警即运维 配合 Slack/Telegram 告警,实现"指标异常 → 通知 → 快速响应"闭环

坑与注意

  1. 资源占用:Netdata 以高性能著称(阿姆斯特丹大学研究显示能效最优),但默认每秒采集对极低配置机器(<512MB RAM)仍有一定压力,生产环境建议限定采集范围。
  2. 持久化配置:容器安装时需注意卷挂载(netdatalibnetdatacache),否则重启后历史数据丢失。
  3. 匿名数据收集:安装脚本默认开启匿名遥测(DISABLE_TELEMETRY=1 可禁用),在意隐私的团队需手动关闭。
  4. 告警配置较分散:告警规则分布在 /etc/netdata/health.d/ 多个文件,不够直观,建议安装后集中梳理一次。
  5. 水平扩展:大规模集群场景建议用 Netdata Cloud 或 Parent-Child 架构,避免单节点告警孤岛。

与同类对比

特性 Netdata Prometheus + Grafana Datadog Grafana Cloud
采集粒度 每秒 15s(可调) 每秒 每秒
零配置 ✅ 自动发现 ❌ 手动配置 ✅ 自动 ✅ 自动
安装复杂度 一行命令 需要部署多个组件 SaaS,开箱即用 SaaS
资源占用 轻量 中等(Go 进程) 低(Agent) 低(Agent)
异常检测 内置 ML 需额外插件 内置 内置
费用 免费开源 免费(自托管) 按主机收费 按指标收费
适合规模 单机→中小集群 中大型 大型企业 中大型

如果你追求快速上手 + 实时可观测性,Netdata 是 Prometheus 的极佳替代或补充;如果你需要云端托管和 SLA 保证,Datadog / Grafana Cloud 更适合。


一句话推荐结论

需要秒级可见性又不想要 Prometheus 的复杂度?一行命令装 Netdata,生产问题定位从"靠猜"变成"看图说话"。 尤其适合 AI 基础设施(GPU 监控、推理服务延迟)和云原生环境(K8s 监控)。


参考来源

  • GitHub README:https://github.com/netdata/netdata
  • 官方文档:https://learn.netdata.cloud/docs
  • 安装指南(kickstart.sh):https://learn.netdata.cloud/docs/installing/one-line-installer-for-all-linux-systems
  • University of Amsterdam 能效研究:https://www.ivanomalavolta.com/files/papers/ICSOC_2023.pdf