用nginx给kibana、elasticsearch做权限认证

来源:互联网 发布:虚拟声卡软件 编辑:程序博客网 时间:2024/06/01 09:59

最近一直使用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


[html] view plain copy
  1. <pre name="code" class="html">worker_processes  1;  
  2.   
  3. #error_log  logs/error.log;  
  4. #error_log  logs/error.log  notice;  
  5. #error_log  logs/error.log  info;  
  6.   
  7. #pid        logs/nginx.pid;  
  8.   
  9.   
  10. events {  
  11.     worker_connections  1024;  
  12. }  
  13.   
  14. http {  
  15.   
  16. include       mime.types;  
  17. default_type  application/octet-stream;  
  18.    
  19. server {  
  20.   listen                *:80 ;  
  21.   server_name           ip;  
  22.   location / {  
  23.     #你的Kibana地址。  
  24.     root  /data/kibana;  
  25.     index  index.html index.htm;  
  26.     auth_basic "Restricted";  
  27.     #你的nginx密码文件地址  
  28.     auth_basic_user_file /usr/local/nginx/conf/site_pass_team;  
  29.   }  
  30.    
  31.   location ~ ^/_aliases$ {  
  32.     proxy_pass http://ip:9200;  
  33.     proxy_read_timeout 90;  
  34.   }  
  35.   location ~ ^/.*/_aliases$ {  
  36.     proxy_pass http://ip:9200;  
  37.     proxy_read_timeout 90;  
  38.   }  
  39.   location ~ ^/_nodes$ {  
  40.     proxy_pass http://ip:9200;  
  41.     proxy_read_timeout 90;  
  42.   }  
  43.   location ~ ^/.*/_search$ {  
  44.     proxy_pass http://ip:9200;  
  45.     proxy_read_timeout 90;  
  46.   }  
  47.   location ~ ^/.*/_mapping$ {  
  48.     proxy_pass http://ip:9200;  
  49.     proxy_read_timeout 90;  
  50.   }  
  51.    
  52.   # Password protected end points  
  53.   location ~ ^/kibana-int/dashboard/.*$ {  
  54.     proxy_pass http://ip:9200;  
  55.     proxy_read_timeout 90;  
  56.     limit_except GET {  
  57.       proxy_pass http://ip:9200;  
  58.       auth_basic "Restricted";  
  59.       #你的nginx密码文件地址,如果需要在保存panel时新加认证,多生成一份不用账号密码的文件即可。  
  60.       auth_basic_user_file /usr/local/nginx/conf/site_pass_support;  
  61.     }  
  62.   }  
  63.   location ~ ^/kibana-int/temp.*$ {  
  64.     proxy_pass http://ip:9200;  
  65.     proxy_read_timeout 90;  
  66.     limit_except GET {  
  67.       proxy_pass http://ip:9200;  
  68.       auth_basic "Restricted";  
  69.       #你的nginx密码文件地址,如果需要在保存panel时新加认证,多生成一份不用账号密码的文件即可。  
  70.       auth_basic_user_file /usr/local/nginx/conf/site_pass_support;  
  71.     }  
  72.   }  
  73. }  
  74. }  



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

0 0