让NetData在Nginx的加持下愉快地跑起来 时间: 2022-03-13 21:22 分类: 运维笔记 > 部分参考官方教程: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`之间有`=`保证只匹配根目录 ```batch location = /netdata { return 301 /netdata/; } ``` 接下来就是带斜线的路径处理。注意之间有`~` ```batch location ~ /netdata/(?.*) { 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`即可,省着配置麻烦。 然后设密码: ```bash printf "yourusername:$(openssl passwd -apr1)" > /etc/nginx/passwords ``` 有可能没权限,所以可以直接把`printf`出来的密码文件手动敲进去。 配置文件里填上 ```bash auth_basic "Protected"; auth_basic_user_file passwords; ``` 重启nginx结束配置 标签: 无