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; }}
参考:
方案三、离线安装X-Pack
基于5.X以上版本,可以安装X-Pack,但是X-Pack需要license.X-Pack离线安装命令如下:
bin/elasticsearch-plugin install file:///path/x-pack-5.2.2.zipbin/kibana-plugin install file:///path/x-pack-5.2.2.zip
修改默认密码可以参见: