一键部署Netdata:Linux服务器实时监控面板搭建指南

概述

服务器跑着跑着就不知道哪里出了问题。SSH连上去看日志?太慢了。Netdata是一个开箱即用的实时监控系统,一条命令装好,浏览器打开就能看到CPU、内存、磁盘、网络的毫秒级数据面板。

今天教你在Linux VPS上从零部署Netdata,全程不超过5分钟。

准备工作

你需要:

  • 一台运行Debian/Ubuntu或CentOS/RHEL的VPS
  • root权限或sudo权限
  • 一个域名(可选,用于通过域名访问)
  • 防火墙已开放所需端口

推荐最低配置:512MB内存即可流畅运行。

步骤

第一步:安装Netdata

Netdata官方提供自动安装脚本,支持几乎所有主流Linux发行版。

Ubuntu/Debian系统:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

CentOS/RHEL系统:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

安装脚本会自动检测系统类型,下载对应包并安装。整个过程大约1-2分钟。

安装完成后,Netdata服务会自动启动:

systemctl status netdata

如果看到绿色的 active (running) 字样,说明服务正常。

第二步:配置防火墙

Netdata默认监听19999端口。如果你使用了ufw防火墙,需要放行:

sudo ufw allow 19999/tcp
sudo ufw reload

如果用firewalld:

sudo firewall-cmd --permanent --add-port=19999/tcp
sudo firewall-cmd --reload

云服务商的话,别忘了去控制台的安全组里也放行19999端口。

第三步:设置访问认证(推荐)

裸奔的监控面板谁都能看,不安全。给Netdata加个基础认证。

编辑配置文件:

sudo nano /etc/netdata/netdata.conf

找到 [web] 段落,添加:

[web]
bind to = *
default port = 19999
mode = unix

更简单的方式是用nginx做反向代理加认证。先装nginx:

sudo apt install nginx -y

创建配置文件:

sudo nano /etc/nginx/sites-available/netdata

填入以下内容(把 your-domain.com 换成你的域名):

server {
    listen 80;
    server_name your-domain.com;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.netdata_passwd;

    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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_cache_bypass $http_upgrade;
    }
}

生成密码文件:

sudo apt install apache2-utils -y
sudo htpasswd -c /etc/nginx/.netdata_passwd admin

按提示输入两次密码。然后启用配置:

sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

第四步:自定义监控项

Netdata自动检测了绝大多数指标。如果想添加自定义监控,比如监控某个特定进程:

sudo nano /etc/netdata/go.d/custom-checks.conf

添加你要监控的服务信息。改完重启:

sudo systemctl restart netdata

验证

打开浏览器,访问:

http://你的服务器IP:19999

或者配了域名的话:

https://your-domain.com

看到密密麻麻的图表就说明成功了。每个指标都能下钻查看历史数据。

快速验证命令:

curl -s http://127.0.0.1:19999/api/v1/info | head -20

有JSON返回就是正常的。

常见问题

Q: 装了之后面板打不开怎么办?

检查三点:1)netdata服务是否运行 systemctl status netdata;2)端口19999是否被防火墙拦截;3)云服务器安全组是否放行了该端口。

Q: 面板中文显示乱码?

Netdata依赖系统locale。确保系统安装了中文字体:

sudo apt install fonts-noto-cjk -y
sudo systemctl restart netdata

Q: 如何把Netdata数据同步到远程?

Netdata支持主从架构。在主节点配置 /etc/netdata/stream.conf,从节点设为stream目标即可实现数据汇聚。适合多服务器统一管理。

Q: 内存占用会不会很高?

Netdata默认每秒钟采集一次数据,内存占用通常在50-150MB之间。对于2GB以上内存的VPS完全不是问题。如果资源紧张,可以调大采集间隔。

Q: 卸载Netdata怎么操作?

sudo /usr/libexec/netdata/netdata-uninstaller.sh --force

搭好Netdata之后,服务器状态一目了然。下次再遇到性能问题,不用猜,直接看面板就对了。

你的服务器上跑了什么服务?评论区聊聊,说不定能帮你挑几个值得重点监控的指标。

这篇文章对你有帮助吗?