让NetData在Nginx的加持下愉快地跑起来

部分参考官方教程:https://learn.netdata.cloud/docs/agent/running-behind-nginx

1. 前言

NetData是狂拽酷炫⚪炸天的Linux可视化资源监控工具。
虽然功能过于强大基本用不到那么多,但是我可以不用,你不能没有系统资源占用很小,并且有需要的时候有个可视化的东西参考真的很方便。所以这里简单介绍搭建方法。其实这套软件默认配置就挺好用,不过公网Server肯定不能直接把这么关键服务暴露出来,因此走Nginx做个前级反代就显得比较重要了。

2. 本体安装以及配置

Ubuntu下建议直接apt安装,可以省很多麻烦。
这样默认的配置文件位置在:/etc/netdata/netdata.conf
首先是[Global]部分。
(1)history项,代表记录保存多长时间。单位为秒,3600~14400都行,不过时间长占用内存会多,大概7200就可以了。
(2)添加hostname项,用于网页端的服务器名显示
(3)添加access log = none用于关闭访问日志。这是因为nginx的日志与之重复了。

然后是[web]部分
(1)添加default port = 非常用端口用于更换端口
(2)只允许本地访问allow connections from = localhost以及bind to = 127.0.0.1 ::1

使用service netdata restart重启

3. Nginx设置

Nginx实现两个功能,其一是反代,其二是访问登录验证。
Nginx的基本配置不展开。先配置反代。
这里的场景是把domain.com/netdata路径绑定到localhost:xxxx端口,因此是个带路径跳转。

首先需要把不带斜线的路径301到带斜线的路径上,注意location/netdata之间有=保证只匹配根目录

location = /netdata {
    return 301 /netdata/;
}

接下来就是带斜线的路径处理。注意之间有~

location ~ /netdata/(?<ndpath>.*) {
    proxy_redirect off;
    proxy_set_header Host $host;

    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_pass_request_headers on;
    proxy_set_header Connection "keep-alive";
    proxy_store off;
    proxy_pass http://127.0.0.1:xxxx/$ndpath$is_args$args;

    gzip on;
    gzip_proxied any;
    gzip_types *;
}

关键点是proxy_pass项。由于跳转带变量,所以要写ip地址。
另外就是由于默认CF帮我们加上了https所以X-Forwarded-Proto给加上,而又由于Web端通讯都是本地不用加密,所以proxy_pass的地址直接http即可,省着配置麻烦。
然后设密码:

printf "yourusername:$(openssl passwd -apr1)" > /etc/nginx/passwords

有可能没权限,所以可以直接把printf出来的密码文件手动敲进去。
配置文件里填上

 auth_basic "Protected";
 auth_basic_user_file passwords;

重启nginx结束配置

标签: 无

发表评论: