Nginx反代实现Kibana登录认证功能
因Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。决定采用nginx做反向代理。
二、实现过程
1.安装 Apache Httpd 密码生成工具
[ ~]# yum install httpd-tools -y
2.生成Kibana认证密码
?
[ ~]# mkdir -p /usr/local/src/nginx/
[ ~]# htpasswd -c /usr/local/src/nginx/passwd kibanna
New password:
Re-type new password:
Adding password for user kibanna
注意:上面的 /usr/local/src/nginx/passwd 是生成密码文件的路径,然后feiyu 是用户名,你可以根据需要自行设置成其它用户名。运行命令后,会要求你连续输入两次密码。输入成功后,会提示已经为feiyu这个用户添加了密码。
3.查看下生成的密码文件的内容:
[ ~]# cat /usr/local/src/nginx/passwd
kibanna:$apr1$bj22mciQ$4Rq6U1EnZPyxmDj5X8v1d/
其中用户名就是kibanna,分号后面就是密码(已经加过密)。
4.配置Nginx反向代理
在Nginx配置文件中添加如下内容:
[ ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
auth_basic "Restricted Access";
auth_basic_user_file /usr/local/nginx/conf/passwd/kibana.passwd;
location / {
proxy_pass 10.10.17.41:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade‘;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
配置Kibana
取消下面注释:
[ ~]# vim /usr/local/kibana/config/kibana.yml
server.host: "10.10.17.41"
重启 Kibana 及 Nginx 服务使配置生效
$ systemctl restart kibana
$ systemctl restart nginx
接下来浏览器访问 http://IP 会提示验证弹窗,输入以上生成的用户密码登录即可。