部分参考官方教程: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结束配置