
📋 目录
实时监控VPS对于运行网站或应用程序的任何人来说都至关重要。Netdata是一款免费的开源工具,可通过精美的Web仪表板实时查看CPU、内存、磁盘I/O、网络流量及超过2000个指标。安装简单,开箱即用。
1. 什么是Netdata,为什么使用它?
Netdata是一个轻量级监控代理,每1秒收集一次指标——而其他大多数工具每10-60秒才收集一次。这使得CPU或内存峰值的检测更加精准。
✅ Netdata的主要优势:一键安装,仪表板立即可用,支持300+插件(Nginx、MySQL、Docker、Redis等),自托管完全免费
Netdata适合以下场景:
- 部署或压力测试期间实时查看资源使用情况
- 设置告警,当CPU或内存异常升高时发出通知
- 诊断Web服务器和数据库的性能问题
- 规划VPS扩容或升级决策
2. 系统要求
Netdata支持所有主流Linux发行版。最低要求:
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| 内存 | 512 MB | 1 GB+ |
| CPU | 1个虚拟核心 | 2个虚拟核心+ |
| 磁盘 | 200 MB(SSD) | 1 GB+(用于数据保留) |
| 操作系统 | Ubuntu 20.04+ | Ubuntu 22.04 / Debian 12 |
| 网络 | 端口19999(本地) | 通过反向代理使用HTTPS |
ℹ️ 注意:AsiaGB所有VPS套餐均使用SSD存储,运行Ubuntu/Debian,完全兼容Netdata所有功能。
3. 在Ubuntu/Debian上安装Netdata
最简单的方法是使用Netdata官方安装脚本:
# 先更新软件包列表
sudo apt update && sudo apt upgrade -y
# 使用一行命令安装Netdata
wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry
重要参数说明:
--stable-channel— 安装稳定版而非每日构建版--disable-telemetry— 禁用匿名使用统计--dont-start-it— 安装但不自动启动服务
通过APT安装(Ubuntu/Debian)
# 添加Netdata APT仓库
curl -s https://packagecloud.io/install/repositories/netdata/netdata/script.deb.sh | sudo bash
# 安装
sudo apt install netdata -y
# 启用并启动服务
sudo systemctl enable netdata
sudo systemctl start netdata
验证安装
sudo systemctl status netdata
# 应显示:Active: active (running)
4. 访问监控仪表板
安装后,Netdata在19999端口运行,访问地址:
http://您的VPS_IP:19999
⚠️ 安全提示:不要直接将19999端口暴露在公网上,请使用SSH隧道或Nginx反向代理(见下一节)。
通过SSH隧道访问(最安全的方式)
# 在本地机器上运行
ssh -L 19999:localhost:19999 user@您的VPS_IP -N
# 然后在浏览器中打开
http://localhost:19999
5. 使用Nginx反向代理保护访问安全
如需通过域名以HTTPS方式访问Netdata,需配置Nginx反向代理:
sudo apt install nginx -y
# 创建配置文件
sudo nano /etc/nginx/sites-available/netdata
添加以下配置:
upstream netdata {
server 127.0.0.1:19999;
}
server {
listen 443 ssl;
server_name monitor.example.com;
ssl_certificate /etc/letsencrypt/live/monitor.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monitor.example.com/privkey.pem;
auth_basic "Netdata Monitoring";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://netdata;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# 创建密码文件
sudo htpasswd -c /etc/nginx/.htpasswd admin
# 启用配置
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
6. 配置告警通知
Netdata内置告警系统,可通过邮件、Slack、Telegram、PagerDuty等发送通知。
配置邮件告警
sudo nano /etc/netdata/health_alarm_notify.conf
# 邮件设置
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="[email protected]"
配置Telegram告警
SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="您的机器人Token"
DEFAULT_RECIPIENT_TELEGRAM="您的Chat_ID"
💡 提示:Netdata内置数百条预配置告警规则,如CPU超过90%、内存超过85%、磁盘超过80%等,无需手动编写。
7. 启用额外插件
Netdata支持数百个插件,大多数可自动检测无需手动配置:
| 插件 | 监控内容 | 自动检测 |
|---|---|---|
| Nginx | 请求数、活跃连接、响应状态码 | ✅ 是 |
| MySQL/MariaDB | 查询数、连接数、InnoDB | ✅ 是 |
| Docker | 每个容器的CPU/内存 | ✅ 是 |
| Redis | 缓存命中率、内存、连接客户端 | ✅ 是 |
| PHP-FPM | 进程池状态、慢请求 | 需手动配置 |
| Postfix | 邮件队列、投递速率 | ✅ 是 |
启用MySQL插件
# 在MySQL中创建Netdata用户
mysql -u root -p -e "CREATE USER 'netdata'@'localhost' IDENTIFIED BY ''; GRANT USAGE ON *.* TO 'netdata'@'localhost'; FLUSH PRIVILEGES;"
sudo systemctl restart netdata
8. 连接Netdata Cloud(免费)
Netdata Cloud让您无需开放额外端口即可从任何地方查看仪表板:
- 在app.netdata.cloud注册免费账户
- 创建Space和War Room
- 点击"Connect Nodes"并复制claim token
- 在VPS上运行:
sudo netdata-claim.sh -token=您的TOKEN -rooms=您的ROOM_ID -url=https://app.netdata.cloud
🔒 安全性:Netdata Cloud使用TLS加密的Agent-Cloud Link。监控数据不经过云端——通过WebSocket直接从浏览器发送到代理,非常安全。
9. 性能调优
如果VPS内存有限,可以减少Netdata的资源占用:
sudo nano /etc/netdata/netdata.conf
[global]
# 减少历史数据保留时间
history = 3600 # 1小时(默认值)
# 降低更新频率(节省CPU)
update every = 2 # 每2秒而非1秒
[plugins]
# 禁用不需要的插件
python.d = no
node.d = no
修改后重启服务:
sudo systemctl restart netdata
10. Netdata与其他监控工具对比
| 工具 | 实时精度 | 安装难度 | 插件数 | 告警 | 费用 |
|---|---|---|---|---|---|
| Netdata | 1秒 | 非常简单 | 300+ | 内置 | 免费 |
| Prometheus+Grafana | 15秒+ | 复杂 | 多 | 需手动配置 | 免费 |
| Zabbix | 30秒 | 复杂 | 多 | 内置 | 免费 |
| Datadog | 15秒 | 简单 | 多 | 内置 | 付费 |
| New Relic | 1分钟 | 简单 | 多 | 内置 | 付费 |
Netdata在安装便捷性和实时精度方面胜出,非常适合不想进行复杂配置的开发者。
11. 常见问题
❓ Netdata占用多少内存?
通常30-100MB,取决于启用的插件数量。适合1GB内存及以上的VPS。
❓ Netdata和Grafana有什么区别?
Netdata安装后立即可用;Grafana需要先配置Prometheus或InfluxDB数据源,但灵活性更高。
❓ 数据保存多长时间?
默认:1秒精度保存1小时,每分钟精度保存6小时,每小时精度保存6天,可在netdata.conf中调整。
❓ 暴露19999端口安全吗?
不安全。请使用SSH隧道、Nginx反向代理加Basic认证或Netdata Cloud。
❓ 可以在AsiaGB VPS上安装吗?
可以。AsiaGB VPS运行Ubuntu/Debian,配备SSD存储,完全支持Netdata所有功能。
❓ Netdata Cloud免费吗?
有免费套餐,节点数量不限。Business套餐提供更长保留期和高级告警功能。
📝 总结
Netdata是VPS上最易用、实时精度最高的监控工具。主要步骤:
- ✅ 使用一键安装脚本完成安装
- ✅ 通过SSH隧道或Nginx反向代理访问仪表板
- ✅ 配置Telegram/邮件告警
- ✅ Nginx/MySQL/Docker插件自动检测
- ✅ 连接Netdata Cloud实现随处访问
需要支持Netdata的VPS,配备SSD存储和99%正常运行时间保障?查看AsiaGB VPS套餐,每月仅需500泰铢起