kibana仪表盘嵌入到web页面显示(跳过登录)

工作需求,需要将kibana的仪表盘,嵌入到另一个web端页面内显示,此处记录实现思路、遇到的问题和解决方案

着急看的,直接拉到最底下解决方案(3.2.3 、嵌入代理文件-已实现)。

实现流程

1、获取kibana在线链接

kibana支持在仪表盘处,点击分享,生成在线链接代码,此处注意生成的时候,选择“已保存对象”。

快照”和“已保存对象”的区别

“快照”:对此时的仪表盘做一个状态快照,生成链接。之后仪表盘变化,链接访问的,仍是之前的的状态。

“已保存对象”:仪表盘变换后,根据链接访问的,是最新的状态。

2、web端嵌入在线链接

在web端,嵌入第一步生成的链接代码,如果kibana没有配置账号密码登录的话(低版本的kibana默认是不开启安全认证的),在这一步就已经可以实现直接访问了。

如果kibana开启了安全认证,那么嵌入后,会先跳转到kibana登录页面,输入账号密码后才能访问仪表盘。这就比较麻烦,但是如果用户能接受的话,那也皆大欢喜,但是我的用户估计是不会接受,所以我还得继续。

3、实现kibana自动登录

3.1、使用匿名登录-未实现

为kibana配置匿名登录,然后再去分享仪表盘,在链接里面拼装匿名参数,就可以实现免登录访问仪表盘了。我在配置的时候,启动服务识别不了配置内容总是报错,不知道是不是版本问题,也找不到相关文档,最后放弃了。

修改kibana.yml配置文件,

vim /etc/kibana/kibana.yml

路径可能跟我不一样,但是文件名肯定是这个,可以用linux命令,在kibana文件夹下查查

find ./  -name kibana.yml  (查找当前目录下,名叫kibana.yml的文件,如果目录过深,可以加上查找深度参数)

xpack.security.authc.providers:
  basic.basic1:
    order: 0
  anonymous.anonymous1:
    order: 1
    credentials:
      username: "anonymous"
      password: "anonymous"

绑定的账号密码,可以自己去创建一个,给只读权限,避免安全问题。

3.2 、手动生成票据-已实现

我在仔细查看kibana的登录页面和登录按钮点击后发起的网络请求后,发现他的鉴权机制,其实是在登录时,发起post请求登录,然后由后台生成sid,写入到当前域名下(账号密码竟然还是铭文传输的,差评)。

原理知道了,那我自己也能照抄一份。

3.2.1 、页面调用接口-未实现

我试着在前台,用ajax调用鉴权接口,传入账号密码,调用会有跨域问题,但是我解决了。但是最麻烦的是,调用成功后,kibana的域名下,并没有生成sid的cookie,这也是因为跨域问题,这个问题没能解决,所以页面调用没能实现。

我认为应该是有解决方法的(不然我都不会写在这里),但是我尝试了两个小时未果,此路放弃,留待后用。

3.2.2、后台调用接口-未实现

前台白搭,那我干脆从后台调用,拿到cookie的值,自己重新放。

但是也没实现,我后台拿到了sid,但是无论是后台放进cookie,还是返回给前台,让前台放进cookie,都没能实现,这种跨域cookie,顶多能在同一个一级域名下放置,我的web端和kibana,直接就不同域,没法实现。

如果web端和kibana是同一级域名的(比如http://wangzai.test1/和http://wangzai.test2/),可以尝试以下,应该是可行的。

3.2.3 、嵌入代理文件-已实现

最坚固的堡垒总是从内部攻破的,我从外面搞不定他,那我搞他的介质。

我找到kibana的介质,对比页面访问他时浏览器发出来的network请求,找到了他有个目录没有设置监听,可以直接访问,所以我准备在这里放一个html,然后在这里面,实现自行登录、放置cookie、嵌入仪表盘,最后我再从外部嵌入这个html。

果不其然,直接好使了,直接在外部访问这个sysmonit文件,即可免登录访问仪表盘。

但是,我试着在web端,用iframe嵌入这个页面,又默认跳到登陆页面了,但是看cookie里面明明已经放置成功了的。

tm还是跨域的问题!

累了,不想折腾了,那我干脆在web端,以开启新tab页面的方式,访问他算了。这下成功了,先这么着吧。

//源系统触发事件
function clickHandle(){
   window.open('http://xxxx:xxx/ui/sysmonit.html', '_blank');
}

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值