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