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 比怎么选
| Netdata | Prometheus + 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 会被图表淹没,小够教你抓重点:
- system.cpu:看
iowait(绿色那块),高了就是磁盘瓶颈 - system.ram:看
usedvscached,cached 高是好事(文件缓存) - disk.io:读写曲线,备份时间段的峰值一目了然
- 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
排查完就卸,保持机器干净,这是小够的习惯。需要时再装,反正一键安装。
小够的监控哲学
监控分三层,每层解决不同的问题:
- 死活(Uptime Kuma):挂了立刻知道
- 趋势(Netdata/Prometheus):慢慢变坏的能提前发现
- 现场(htop/日志):出问题时深入排查
很多人的监控只有第 1 层,等于只买了"火灾报警器",没有"烟雾探测器"。Netdata 就是补第 2 层最快的方式。记住:监控的目的是"提前发现",不是"事后复盘",虽然复盘也很有用。