概述
服务器跑着跑着就不知道哪里出了问题。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之后,服务器状态一目了然。下次再遇到性能问题,不用猜,直接看面板就对了。
你的服务器上跑了什么服务?评论区聊聊,说不定能帮你挑几个值得重点监控的指标。