Netdata 实时服务器监控工具部署
Netdata 是一款高性能的开源实时监控工具,最大的特点是零配置开箱即用。它能自动发现并采集数千种系统和应用指标,提供每秒更新的实时仪表板,非常适合快速了解搬瓦工 VPS 的运行状态。相比 Prometheus + Grafana 的组合,Netdata 的部署门槛更低,适合个人用户和中小规模场景。
一、环境要求
- 操作系统:几乎所有 Linux 发行版均可。
- 内存:Netdata 本身约占用 100-200MB 内存。
- 端口:默认使用 19999 端口。
二、一键安装
Netdata 提供官方一键安装脚本,这是最简单的安装方式:
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
bash /tmp/netdata-kickstart.sh --stable-channel
安装过程会自动检测系统环境、安装依赖并配置 systemd 服务。安装完成后 Netdata 会自动启动。
验证安装
systemctl status netdata
ss -tlnp | grep 19999
通过浏览器访问 http://你的IP:19999 即可看到实时监控仪表板。
三、Docker 安装
docker run -d \
--name netdata \
--restart unless-stopped \
--pid host \
--network host \
-v netdata-config:/etc/netdata \
-v netdata-lib:/var/lib/netdata \
-v netdata-cache:/var/cache/netdata \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /etc/os-release:/host/etc/os-release:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata:stable
Docker Compose 方式:
version: '3.8'
services:
netdata:
image: netdata/netdata:stable
container_name: netdata
restart: unless-stopped
pid: host
network_mode: host
cap_add:
- SYS_PTRACE
security_opt:
- apparmor=unconfined
volumes:
- netdata-config:/etc/netdata
- netdata-lib:/var/lib/netdata
- netdata-cache:/var/cache/netdata
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
netdata-config:
netdata-lib:
netdata-cache:
四、核心配置
4.1 主配置文件
Netdata 配置文件位于 /etc/netdata/netdata.conf。编辑配置:
# 使用 Netdata 提供的编辑工具
cd /etc/netdata
./edit-config netdata.conf
常用配置项:
[global]
# 数据更新频率(秒),默认 1 秒
update every = 1
# 内存中保留的历史数据时长
history = 3996
# 绑定地址
bind to = 0.0.0.0
[web]
# Web 界面端口
default port = 19999
# 允许访问的 IP(安全限制)
allow connections from = localhost *
4.2 调整内存占用
对于小内存 VPS,可以降低数据采集频率和历史保留量:
[global]
update every = 2
history = 1800
[plugins]
# 禁用不需要的插件以节省资源
apps = no
cgroups = no
修改配置后重启 Netdata:
systemctl restart netdata
五、监控能力概览
Netdata 自动采集的指标包括:
- CPU:总使用率、每核使用率、各模式分布(user/system/iowait)。
- 内存:总量、已用、可用、缓存、Swap 使用情况。
- 磁盘:读写速率、IOPS、分区使用率、I/O 延迟。
- 网络:带宽使用、包速率、错误率、丢包率。
- 进程:进程数、线程数、上下文切换、中断频率。
- 应用:自动检测 Nginx、MySQL、Redis、Docker 等服务并采集指标。
六、告警配置
6.1 内置告警规则
Netdata 预置了数百条告警规则,默认启用。查看和编辑告警配置:
cd /etc/netdata
./edit-config health.d/cpu.conf
./edit-config health.d/ram.conf
./edit-config health.d/disks.conf
./edit-config health.d/net.conf
6.2 自定义告警规则
cd /etc/netdata
./edit-config health.d/custom.conf
添加自定义告警规则示例:
alarm: cpu_usage_high
on: system.cpu
lookup: average -5m percentage of user,system
units: %
every: 1m
warn: $this > 75
crit: $this > 90
info: CPU 使用率过高
to: sysadmin
6.3 通知配置
cd /etc/netdata
./edit-config health_alarm_notify.conf
配置邮件通知:
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="admin@your-domain.com"
EMAIL_SENDER="netdata@your-domain.com"
配置 Telegram 通知:
SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN"
DEFAULT_RECIPIENT_TELEGRAM="YOUR_CHAT_ID"
七、配置反向代理
server {
listen 443 ssl http2;
server_name netdata.your-domain.com;
ssl_certificate /etc/letsencrypt/live/netdata.your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/netdata.your-domain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:19999;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
八、与 Prometheus 集成
Netdata 支持将数据导出到 Prometheus:
cd /etc/netdata
./edit-config exporting.conf
[prometheus:remote1]
enabled = yes
destination = localhost:9090
remote write URL path = /api/v1/write
也可以直接在 Prometheus 中抓取 Netdata 的 metrics 端点:
scrape_configs:
- job_name: 'netdata'
metrics_path: '/api/v1/allmetrics'
params:
format: [prometheus]
static_configs:
- targets: ['localhost:19999']
九、安全加固
# 限制 Web 界面访问 IP
ufw allow from YOUR_IP to any port 19999
ufw deny 19999
# 或在 netdata.conf 中限制
[web]
allow connections from = localhost YOUR_IP
十、版本更新与卸载
# 更新 Netdata
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
bash /tmp/netdata-kickstart.sh --stable-channel
# 卸载 Netdata
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
bash /tmp/netdata-kickstart.sh --uninstall
总结
Netdata 是快速搭建服务器实时监控的最佳选择,一键安装即可获得专业级的监控仪表板。如果需要更复杂的监控体系,可以搭配 Prometheus 和 Grafana 使用。选购搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。