Kibana默认是没有登录鉴权机制,官方提供付费的插件支持,也可以使用Nginx来实现登录验证功能。

1、nginx安装过程(略)

2、kibana安装过程(略)

3、生成鉴权文件

  • 安装密码生成工具
yum install http-tools -y
  • 生成密码文件
htpasswd -b /etc/nginx/.htpasswd zyadmin <password>

可增加多个用户:

htpasswd -b /etc/nginx/.htpasswd hgbadmin <password>

该密码文件是经过加密的:

$ cat /etc/nginx/.htpasswd
zyadmin:$apr1$Y2837tOI$uGW/QSJguh4NNsYha4vXP.
hgbadmin:$apr1$X71j1V15$Zo7ENXTDuM2u0mTwWZmQI1

htpasswd参数

-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
-n 不更新passwordfile,直接显示密码
-m 使用MD5加密(默认)
-d 使用CRYPT加密(默认)
-p 使用普通文本格式的密码
-s 使用SHA加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户

4、添加Nginx反向代理配置

  • 根域名反代配置如下:
location / {
    proxy_pass   http://localhost:5601;
    proxy_redirect off;
    auth_basic " Basic Authentication ";      
    auth_basic_user_file "/etc/nginx/.htpasswd"; 
}
  • 如果想要用nginx的二级目录代理kibana,除了nginx的配置文件以外,还需要修改kibana的配置文件(重要)

nginx.conf

location /kibana/ {
    auth_basic " Basic Authentication ";      
    auth_basic_user_file "/etc/nginx/.htpasswd"; 
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_pass  https://localhost:5601/;
    rewrite ^/kibana/(.*)$ /$1 break;
}

kibana.yml

修改本地监听地址为127.0.0.1,且basePath更改为与nginx中location处配置一致:

server:
  server.name: kibana
  basePath: "/kibana"
  server.host: "127.0.0.1"
  elasticsearch.url: http://elasticsearch:9200

配置修改完毕后重启服务,即可生效。

​​‌‌​​​‌‌​‌​​‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​‌​​‌​​​‌​​​‌‌​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​​‌‌‍​‌‌​​​​‌​​​​​​​‍​​​‌​‌​‌‌​‌​‌‌‌‍‌​‌‌​​​‌‍‌​​‌‌​​​‍‌​​‌​‌‌​‍‌​​‌​​​‌‍‌​​​​‌‌‌‍​‌​​‌​​​‌‌​​​​‌‍​​​‌‌​​​‌​​‌‌‌‌‍‌​‌‌​‌​​‍‌​​‌​‌‌​‍‌​​‌‌‌​‌‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌‌‌​‍​​​‌​​‌​‌‌‌‌​‌‌‍​​​‌​​‌‌​​​​‌​​‍​‌​​​​​‌​‌​‌​‌​‍​‌‌​​‌​‌​‌‌‌​​‌‌‍​‌‌‌​‌​​​​‌‌‌‌‌​‍​​‌‌‌‌‌‌‌‌​​‌​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​​‌‌‌‌​‍‌​​‌‌​‌‌‍‌​​‌​​‌​‍‌​​‌​‌‌​‍‌​​‌​​​‌‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌‌​‍‌‌​​​‌‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌​‍‌‌​​‌‌‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​‌‌‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​‌​‌‌​‍‌​​‌​‌​​‍‌​​‌​‌‌​‍‌​​​‌​​​‍‌​​‌​‌‌​‍‌‌​‌​​​‌‍‌​​‌​​‌​‍‌​​‌‌​‌​‍‌​‌​​​‌‌‍‌​​‌‌‌‌​‍‌​​​‌‌​‌‍‌​​‌‌‌​​‍‌​​‌​‌‌‌‍‌​​‌​‌‌​‍‌​​​‌​​‌‍‌​​‌‌​‌​‍‌​​​‌‌​​‍‌​‌​​​‌‌‍‌‌​​‌​‌​‍‌‌​​​‌‌​‍‌‌​​‌​‌​‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌

5、访问页面测试:

The End.