Netdata:详细的机器指标
如何在 VDS 上安装 Netdata,限制外部人员访问,以及当控制面板中的图表不够用时该看什么。
更新于 2026年8月23日
/hosting/vds/m/<id> 控制面板中的图表回答的是“机器是否处于高负载?”这个问题。当您需要回答“具体是什么、在哪一秒”时,就安装 Netdata:它以一秒为间隔采集数百项指标,并在浏览器中直接渲染,无需任何配置。
安装
curl -Ss https://my-netdata.io/kickstart.sh -o /tmp/netdata-kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry
脚本会自动识别您的系统并安装软件包。Debian 和 Ubuntu 还有仓库版本(apt install -y netdata)——它版本较旧,但会随系统一起更新。
Netdata 会占用相当多的内存:在 2 GB 的 VDS-1 上,请为它设置限制,否则它会与您的应用争抢资源。只需在 /etc/netdata/netdata.conf 中缩短历史数据保留时间即可:
[db]
mode = dbengine
dbengine multihost disk space MB = 256
修改完成后,执行 systemctl restart netdata。
关闭外部访问
默认情况下,Netdata 监听所有地址的 19999 端口。您不能让它保持开放:没有密码保护的界面会暴露机器的全部内部情况,甚至包括进程列表和活动连接。
在 /etc/netdata/netdata.conf 中将其绑定到 localhost:
[web]
bind to = 127.0.0.1
要查看它,请从您的电脑建立 SSH 隧道:
ssh -L 19999:127.0.0.1:19999 root@YOUR_ADDRESS
然后在浏览器中打开 http://127.0.0.1:19999。如果您需要长期的外部访问,请将 Netdata 放在带密码和证书的 Nginx 后面,并在防火墙中关闭 19999 端口。
需要监控什么
- CPU → 使用率及其细分:
iowait高说明是磁盘,steal说明节点存在资源争抢,system说明内核开销,通常来自网络。 - 磁盘 → 积压和 await——磁盘队列。请将其与您所在档位的限制进行对比,参见磁盘负载。
- 内存 → 可用量以及 swap 部分。持续增长说明存在内存泄漏。
- 应用程序——按进程组统计的消耗。正是这一部分回答了“该怪谁”,即使事后也能查。
- 告警——内置阈值。Netdata 自身会高亮显示磁盘写满、队列过热和服务故障。
邮件或 Telegram 通知在 /etc/netdata/health_alarm_notify.conf 中配置——设置收件人并启用所需渠道。
常见错误
- 将 19999 端口开放到互联网。 这会泄露您的基础设施信息,有时还会成为攻击入口。检查:
ss -tulpn | grep 19999。 - 在 VDS-1 上安装 Netdata,然后惊讶于内存不足。 在默认设置下它会占用数百兆字节。请限制历史数据,或者放弃它,改用一次性工具。
- 把 Netdata 当作外部监控的替代品。 它与您的服务运行在同一台机器上:如果机器宕机,您将无从得知。外部监控请参见文章网站宕机提醒。
- 将历史数据保留数月。 指标数据库会不断写入磁盘,增加后台负载。对 VPS 来说,几天就足够了。
Millida 控制面板与 Netdata 并不冲突:前者从外部观察虚拟机,即使系统卡死也能工作;后者则从内部提供细节。两者都保留吧。