ELK平台搭建完成后,由於Kibana的服務也是暴露在外網,且默認是沒有訪問限制的(外部所有人都可以訪問到),這明顯不是我們想要的,所以我們需要利用Nginx接管所有Kibana請求,通過Nginx配置將Kibana的訪問加上權限控制,簡單常見的方式可以使用如下三種方式:
方案一:利用Nginx用戶認證模塊
使用Nginx的用戶認證模塊(ngx_http_auth_basic_module模塊,Nginxg一般已經默認安裝),用戶訪問時會直接彈出登錄提示,要求輸入用戶名及密碼后登錄。
此方案需要依賴htpasswd命令生成密碼文件:

方案二:利用Nginx的IP訪問控制
利用Nginx的IP訪問控制,限定允許和禁止訪問的IP,非允許的IP訪問后網頁會顯示403 Forbidden信息
Nginx配置清單:
##如果是大規模集群環境,此處配置多台Kibana服務器即可
upstream kibana_server {
server 192.168.8.202:5601;
server 192.168.8.203:5601;
}
server {
listen 80;
server_name 218.61.2.109;
charset utf8;
location / {
proxy_pass http://kibana_server$request_uri;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
##方案一、用戶認證方式,依賴apache-utils中的生成密碼工具
##auth_basic "secret";
##auth_basic_user_file /usr/local/nginx/passwd.db;
##方案二、只有公司的外網IP,局域網IP可以訪問
allow 5*.**.**.**0;
allow 192.168.8.0/24;
deny all;
}
}
參考:http://wushengheibai.com/post/elk1
方案三、離線安裝X-Pack
基於5.X以上版本,可以安裝X-Pack,但是X-Pack需要license.X-Pack離線安裝命令如下:
bin/elasticsearch-plugin install file:///path/x-pack-5.2.2.zip bin/kibana-plugin install file:///path/x-pack-5.2.2.zip
修改默認密碼可以參見:https://huoding.com/2016/12/11/566
