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 是快速搭建服务器实时监控的最佳选择,一键安装即可获得专业级的监控仪表板。如果需要更复杂的监控体系,可以搭配 PrometheusGrafana 使用。选购搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。