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 告警,实现"指标异常 → 通知 → 快速响应"闭环 |
坑与注意
- 资源占用:Netdata 以高性能著称(阿姆斯特丹大学研究显示能效最优),但默认每秒采集对极低配置机器(<512MB RAM)仍有一定压力,生产环境建议限定采集范围。
- 持久化配置:容器安装时需注意卷挂载(
netdatalib、netdatacache),否则重启后历史数据丢失。 - 匿名数据收集:安装脚本默认开启匿名遥测(
DISABLE_TELEMETRY=1可禁用),在意隐私的团队需手动关闭。 - 告警配置较分散:告警规则分布在
/etc/netdata/health.d/多个文件,不够直观,建议安装后集中梳理一次。 - 水平扩展:大规模集群场景建议用 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