最近一直使用logstash+elasticsearch+kibana作日志分析,通过kibana来查看报表的各种panel,但是每次查看都需要拨线上的VPN,比较麻烦,于是就想到用nginx来给kibana和elasticsearch作个权限认证。认证成功的效果如下:
呵呵,得瑟下。好了,废话不多说,直接上配置。
1、配置nginx密码:nginx可以为网站或目录甚至特定的文件设置密码认证。密码必须是crypt加密的。可以用apache的htpasswd来创建密码。
格式为:htpasswd -b -c site_pass username password
site_pass为密码文件。放在同nginx配置文件同一目录下,当然你也可以放在其它目录下,那在nginx的配置文件中就要写明绝对地址或相对当前目录的地址。
配置文件:
nginx_kibana_auth.conf
- <pre name="code" class="html">worker_processes 1;
-
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
-
- #pid logs/nginx.pid;
-
-
- events {
- worker_connections 1024;
- }
-
- http {
-
- include mime.types;
- default_type application/octet-stream;
-
- server {
- listen *:80 ;
- server_name ip;
- location / {
- #你的Kibana地址。
- root /data/kibana;
- index index.html index.htm;
- auth_basic "Restricted";
- #你的nginx密码文件地址
- auth_basic_user_file /usr/local/nginx/conf/site_pass_team;
- }
-
- location ~ ^/_aliases$ {
- proxy_pass http://ip:9200;
- proxy_read_timeout 90;
- }
- location ~ ^/.*/_aliases$ {
- proxy_pass http://ip:9200;
- proxy_read_timeout 90;
- }
- location ~ ^/_nodes$ {
- proxy_pass http://ip:9200;
- proxy_read_timeout 90;
- }
- location ~ ^/.*/_search$ {
- proxy_pass http://ip:9200;
- proxy_read_timeout 90;
- }
- location ~ ^/.*/_mapping$ {
- proxy_pass http://ip:9200;
- proxy_read_timeout 90;
- }
-
- # Password protected end points
- location ~ ^/kibana-int/dashboard/.*$ {
- proxy_pass http://ip:9200;
- proxy_read_timeout 90;
- limit_except GET {
- proxy_pass http://ip:9200;
- auth_basic "Restricted";
- #你的nginx密码文件地址,如果需要在保存panel时新加认证,多生成一份不用账号密码的文件即可。
- auth_basic_user_file /usr/local/nginx/conf/site_pass_support;
- }
- }
- location ~ ^/kibana-int/temp.*$ {
- proxy_pass http://ip:9200;
- proxy_read_timeout 90;
- limit_except GET {
- proxy_pass http://ip:9200;
- auth_basic "Restricted";
- #你的nginx密码文件地址,如果需要在保存panel时新加认证,多生成一份不用账号密码的文件即可。
- auth_basic_user_file /usr/local/nginx/conf/site_pass_support;
- }
- }
- }
- }
2、开通外网域名,映射到服务器上nginx监听的80端口。
3、修改kibana下的config.js,将elasticsearch: "http://"+window.location.hostname+":9200",修改为elasticsearch: "http://"+window.location.hostname+":80",即可。
4、启动nginx时指定nginx_kibana_auth.conf配置文件即可。
本文允许转载,但请保留出处:http://blog.csdn.net/u011419453/article/details/39395627