Kibana:如何让用户匿名访问 Kibana 中的 Dashboard
文章转载自:https://elasticstack.blog.csdn.net/article/details/118152293
有一个很好的 Dashboard,我们想分析这个 Dashboard 给没有访问权限的人进行查看。当然这种也使用大屏幕 Canvas 可视化。我们可以让一个实时动态的 Canvas 给大众访问。在这种情况下,我们必须使用一种匿名的访问方式才能完成。
安装
首先,我们先要安装 Elasticsearch 及 Kibana。还需要给 Elasticsearch 及 Kibana 配置好安全。这样当我们访问 Elasticsearch 或者 Kibana 的时候,我们需要输入用户名及密码。
创建一个 Space
在这里,我们希望创建一个完全不同于 Default 的一个 Space。在这个 Space 里,我们只能展示可视化的部分和一些基本的管理部分。打开 Kibana:
如上所示,我们在 Analytics 的部分值启动了 Dashboard。为了下面的操作方便,我同时也启动了 Management。我们在完成我们的目的过后,可以把这个也去掉。点击上面的 Create space 按钮。
在上面的浏览器的 url 中,我们可以看到一个以 /app 为起始的字符串。我们把这个字符串拷贝下来。针对我的情况是:
/app/dashboards#/view/edf84fe0-e1a0-11e7-b6d5-4dc382ef7f5b?_g=(filters:!())&_a=(description:'Analyze%20mock%20web%20traffic%20log%20data%20for%20Elastic!'s%20website',filters:!(),fullScreenMode:!f,options:(hidePanelTitles:!f,useMargins:!t),query:(language:kuery,query:''),tags:!(),timeRestore:!t,title:'%5BLogs%5D%20Web%20Traffic',viewMode:view)
重新回到 Stack Management/Advanced settings 页面:
从上面,我们可以看到每当这个 visualization space 被打开的时候,这个 Dashboard 就会自动被打开。
创建 role
接下来创建一个叫做 kibana_data_analyst 的 role。当然我们必须切回到 Default 的 space 下来完成这个工作。在进行下面的操作之前,我们也必须仿照之前在 visualization_only space 下加载 kibana_sample_data_logs 索引一样的方法来进行加载。给这个角色配置命令空间权限。
创建一个用户
在上面我们已经创建了一个叫做 kibana_data_analyst 的 role。如果没有一个用户使用这个 role,上面的 role 是没有任何意义的。我们点击 Stack Management/Users 来创建一个 user:
在上面,我们创建一个叫做 kibana-dashboard-only-user 的用户,并设置它的密码为 password。点击上面的 Create user 按钮,这样,我们就创建了一个叫做 kibana-dashboard-only-user 的用户。
匿名登录 Kibana
将使用刚才已经被创建好的 kibana-dashboard-only-user 用户匿名来登录 Kibana。这样当一个用户访问我们的 Kibana 时,它会自动登录,并展示我们想要的 Dashboard 页面。我们先停下 Kibana 的运行,并在 Kibana 的配置中做如下的修改:
config/kibana.yml
xpack.security.authc.providers:
anonymous.anonymous1:
order: 1
credentials:
username: "kibana-dashboard-only-user"
password: "password"
等修改完后,我们重新启动 Kibana,并同时访问我们的 Kibana 地址 http://localhost:5601。这个时候,我们可以看到如下的画面:
显然这个就是我们之前想要的画面。虽然我们的 Elasticsearch 及 Kibana 都设置有用户名和密码,但是我们还是可以在不使用用户名及密码的情况下访问 Kibana 的部分资源。上面的应用场景针对一些实时事件展示,或者一些大屏幕数据展示都是非常用的,尽管访问者可以不需要使用任何的登录。