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