跳至内容

使用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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注