Netdata:一眼看清 VPS 全身状态的实时监控

htop 只能看现在,Uptime Kuma 只管死活。中间那块空白 Netdata 来填:秒级实时监控面板,CPU内存磁盘网络全可视化,小够带你装起来。

我是小够。监控分三层:htop 看"现在",Uptime Kuma 看"死活",中间还缺一块——“刚才发生了什么”。网站卡了 5 分钟又自己好了,htop 看的时候已经正常了,Uptime Kuma 说一直在线。这 5 分钟发生了什么?Netdata 就是回答这个问题的。

Netdata 是什么

一个实时监控工具,装上就有 Web 面板:CPU、内存、磁盘 IO、网络流量、进程,全部秒级刷新、自动画图。开箱即用,不用写配置。

和 htop 的区别:htop 是快照,Netdata 是录像,能往回翻。

安装

官方提供一键安装脚本(截至撰写时),或者用包管理器。装完打开 http://服务器IP:19999 就是面板。第一件事:配防火墙,19999 端口别对全网开放,要么绑内网 IP,要么前面加认证。

# 只监听本地,通过 SSH 隧道看
# 改配置后重启 netdata

小够强烈建议:监控面板不要裸奔在公网,SSH 端口转发看最安全:

ssh -L 19999:localhost:19999 user@your-vps

然后在自己电脑浏览器打开 localhost:19999。

面板导览:看什么

  • System Overview:CPU、内存、磁盘、网络一张图,出问题先看这里定位大方向
  • Disks:每块盘的读写、util,IO 瓶颈一眼看出来
  • Network:网卡流量,流量异常波动看这里
  • Applications:按应用分组的资源占用,哪个服务吃得多一目了然

告警:别只看不报警

Netdata 自带告警规则,磁盘满了、内存爆了会标出来。可以接通知(邮件、Telegram 等),配一次,半夜出问题它叫你。

资源占用提醒

Netdata 自己也要吃资源:默认配置下内存占用几十到上百 MB。1G 小内存 VPS 上,建议调低数据保留时长,或者干脆只在排查时临时装、用完卸载。监控不能成为被监控对象的负担,这是原则。

和 htop、Uptime Kuma 怎么分工

工具管什么
htop现在,SSH 上去一眼
Netdata刚才发生了什么,事后复盘
Uptime Kuma死活,挂了立刻叫

三件套齐了,VPS 的状态就全在掌握里。

小够的建议

  • Netdata 适合排查,不适合当长期重型监控(资源占用和保留时长要权衡)
  • 面板必须做访问控制,裸奔的监控面板等于把服务器状态公示给全世界
  • 先装起来看一周,你会重新认识自己的 VPS:原来凌晨 3 点 IO 这么高,原来这个进程一直在偷内存

眼睛要看得见,问题才藏不住。Netdata 就是给 VPS 装的这双眼睛。

告警规则自定义

Netdata 自带一堆告警规则,配置文件在 /etc/netdata/health.d/。比如磁盘告警:

# 自定义:磁盘用到 85% 就告警
template: disk_fill_rate
      on: disk.space
   every: 10s
    warn: $used > 85
    crit: $used > 95

改完 systemctl restart netdata。告警太多会麻木,只留真正重要的:磁盘、内存、服务存活。

通知接出来

告警只在面板里显示等于没告。Netdata 支持邮件、Telegram、Slack 等通知,配一个你常用的:

# /etc/netdata/health_alarm_notify.conf
# 按注释填,发测试告警验证

配完发一条测试,确认能收到。没验证过的告警等于没配,这句话和备份一个道理。

多台机器:集中看板

机器一多,每台都开面板太散。Netdata 支持 streaming:子节点把数据推到一台中央节点,一个面板看所有机器。

[子节点A] --stream--> \\
[子节点B] --stream-->  [中央节点:面板]
[子节点C] --stream--> /

中央节点选配置好点的机器。API key 配好,子节点只管推数,面板只在中央看。

和 Prometheus 比怎么选

NetdataPrometheus + Grafana
上手开箱即用要配一堆
粒度秒级实时一般 15s 采集
长期存储弱(默认保留短)强
资源占用中可调

小够的建议:排查用 Netdata,长期趋势用 Prometheus。小团队先 Netdata 跑起来,等机器多了再上 Prometheus。别一上来就搭全套,运维也是够用就好。

轻量替代

1G 小内存实在装不动 Netdata?几个轻量选择:

  • htop + 定时脚本:够用,最省
  • nmon:终端里的性能全览,轻
  • Netdata 调低保留:history 设小,内存占用直接下来

常见问题

Q:Netdata 的数据存哪? A:默认存内存里,重启就没了。长期数据要配 dbengine 落盘,或者推给 Prometheus。排查场景内存存储就够了。

Q:面板卡怎么办? A:图表太多浏览器扛不住。关掉不需要的图表组,或者调低刷新率。监控面板卡了很讽刺,但很常见。

Q:能监控 Docker 容器吗? A:能,原生支持。容器列表、每个容器的资源占用都有,跑 Docker 的机器装 Netdata 很配。

看懂 Netdata 的关键图表

新手打开 Netdata 会被图表淹没,小够教你抓重点:

  1. system.cpu:看 iowait(绿色那块),高了就是磁盘瓶颈
  2. system.ram:看 used vs cached,cached 高是好事(文件缓存)
  3. disk.io:读写曲线,备份时间段的峰值一目了然
  4. net.net:流量突增?被打了还是被爬了,看这里

先看这四个,80% 的问题定位够了。其他的等遇到再学。

告警静默:别半夜被吵醒

# 维护窗口内静默(比如备份时段 IO 高是正常的)
# health.d 里加 silence 规则,或直接在面板上点静默

告警的敌人是"狼来了"。备份时段的 IO 告警、凌晨的流量低告警,该静默就静默。只让真正需要你起床的告警响。

卸载

# 官方卸载脚本
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --uninstall

排查完就卸,保持机器干净,这是小够的习惯。需要时再装,反正一键安装。

小够的监控哲学

监控分三层,每层解决不同的问题:

  1. 死活(Uptime Kuma):挂了立刻知道
  2. 趋势(Netdata/Prometheus):慢慢变坏的能提前发现
  3. 现场(htop/日志):出问题时深入排查

很多人的监控只有第 1 层,等于只买了"火灾报警器",没有"烟雾探测器"。Netdata 就是补第 2 层最快的方式。记住:监控的目的是"提前发现",不是"事后复盘",虽然复盘也很有用。