使用Netdata实时监控服务器的硬件和网络使用情况
发布日期:
作者: 西木
评论数:暂无评论
Netdata是一个轻量级、实时的监控工具,可以通过Web界面查看服务器的CPU、内存、磁盘、网络流量等信息。Netdata v1.29.3的网页监控界面示例图:

下面说下Netdata的安装和使用
安装Netdata
sudo apt install netdata
或者,如果想要安装最新版的Netdata,则命令为:
bash <(curl -Ss https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/kickstart.sh)
安装后,Netdata会自动运行,并监听 19999 端口,可以通过:
http://你的服务器IP:19999
访问Web界面。
如果想要通过域名访问该web界面,方法如下:
如果Web服务器用的是Nginx,在域名的配置里加一个 location
反向代理Netdata:
location /netdata/ {
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 https;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
添加完成后重启Nginx生效,可以通过www.yourdomain.com/netdata
来访问Netdata页面。
如果你不想让别人查看该页面,那么可以设置仅允许特定IP访问Netdata页面,或者为Netdata页面启用密码保护,也可以两个方法一起用上。
仅允许特定IP访问Netdata
修改Nginx的配置限制访问IP:
location /netdata/ {
allow 192.168.0.1; # 替换为第一个允许访问的 IP 地址
allow 192.168.1.2; # 替换为第二个允许访问的 IP 地址
allow 192.168.0.0/24; # 替换为允许的ip段
deny all; # 拒绝其他 IP
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 https;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
修改完后重启Nginx生效。
为Netdata页面启用密码保护
如果你想给Netdata加个登录密码,可以用Basic Auth:
apt install apache2-utils # 安装 htpasswd 工具(如果没有)
sudo htpasswd -c /etc/nginx/.htpasswd username # 创建用户名,将username替换为你想要设置的用户名
执行上述命令后,系统会提示您输入密码并确认密码。
然后修改Nginx的配置:
location /netdata/ {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
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 https;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
}
修改完后重启Nginx生效。再次访问www.yourdomain.com/netdata
会提示要输入用户名和密码。
如果后期要更改Netdata登陆用户username
的密码:
sudo htpasswd /etc/nginx/.htpasswd username
然后输入 新密码,它会自动覆盖旧密码。
📌 注意:
- 不要 加
-c
选项,否则会清空/etc/nginx/.htpasswd
里的其他用户,只保留netdata
这一个用户。 - 只输入
htpasswd /etc/nginx/.htpasswd netdata
,它会提示你输入新密码并自动更新。
如果后期想删除 username
这个用户:
htpasswd -D /etc/nginx/.htpasswd netdata
重新加载 Nginx
改完 .htpasswd
文件后,Nginx 会自动生效,但建议手动重启一下:
sudo systemctl restart nginx