把kibana装到grafana里要几步

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 我们想在grafana里给elasticsearch数据源做词云可视化,由于grafana没有词云方面的插件,我们发现kibana里有词云方面的可视化方案tag cloud。我们尝试着把kibana的词云的图形嵌入到grafana里来快速实现了grafana的词云功能。那么把kibana装到grafana里要几步呢?答案是三步。

把kibana装到grafana里要几步?

我们想在grafana里给elasticsearch数据源做词云可视化,由于grafana没有词云方面的插件,我们发现kibana里有词云方面的可视化方案tag cloud。我们尝试着把kibana的词云的图形嵌入到grafana里来快速实现了grafana的词云功能。那么把kibana装到grafana里要几步呢?答案是三步。

原理

先来说说服务部署的现状,kibana和elasticsearch 我没有选用官方的x-pack版,选用的AWS 开源的opendistroforelasticsearch,是elasticsearch 官方的修改版,里边集成了AWS的认证模块opendistro_security,在这里我没有启用其他认证方式,只是使用了opendistro_security的简单认证(base auth)。这样就有一个问题,如果在grafana里直接嵌入从kibana面板拷贝过来的iframe code的时候,需要做认证,否则会报401 Unauthorized错误。所以我使用了一种折中的方案,在grafana和kibana中间再加一层nginx代理,把简单认证的密码加到nginx请求的header里,让nginx去帮忙做认证,把认证后的结果返回给grafana。画了个流程图,有点low,大家凑合着看吧。

grafana(html iframe)----------- nginx (header) ------------- kibana(带base auth功能)

如果您对opendistro项目感兴趣,可以参考https://opendistro.github.io/for-elasticsearch/

第一步 配置好kibana

kibana和elasticsearch 配置认证这里就不讲了,感兴趣的可以参考opendistro开源项目文档。

1.在Kibana Visualize 里 创建 tag cloud ,把elasticsearch里的数据可视化为词云。如图1

66.png


2.Kibana Visualize里支持分享iframe代码,拷贝词云这幅图表的iframe代码。如图2

67.png

第二步 配置好nginx

对用户名和密码 做base64转码

echo -n username:password | base64

比如用户名是admin,密码是admin,echo -n admin:admin | base64,使用Base64对明文admin:admin进行转码,然后把转码后的base64字符串添加到nginx proxy_set_header Authorization "Basic YWRtaW46YWRtaW4=";中。

nginx.conf example

upstream  kibana_backend  {   
              server   10.10.10.110:5601 max_fails=2 fail_timeout=30s ;    
    }
server {
        listen 443 ssl;
        server_name kibana.xxx.com;
        ssl_certificate  xxx.com.crt;
        ssl_certificate_key  xxx.com.key;
        ssl_session_timeout  5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;    
        ssl_prefer_server_ciphers   on;    
    location / {
        proxy_pass   http://kibana_backend/;
        proxy_set_header  Host $host;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Authorization "Basic YWRtaW46YWRtaW4=";
    }
}


第三步 配置好grafana

1.grafana 配置文件

grafana 配置里需要设置允许嵌入iframe

grep -vE "^;|#"  /etc/grafana/grafana.ini
[security]
allow_embedding = true
[panels]
disable_sanitize_html = true


2.grafana(html iframe)

在grafana 面板里我们通过Pannel--Visualization--Text--Options--Mode--html 添加iframe代码。可以先拿百度地图测试一下,看html iframe能否正常显示。

<iframe id="inlineFrameExample"
    title="Inline Frame Example"
    width="1200"
    height="900"
    src="https://map.baidu.com">
</iframe>

以下嵌入grafana的代码,只对布局做了调整,其他都是引用kibana--Visualize --share里"Copy iframe code" 的内容。

<iframe src="https://kibana.xxx.com/app/kibana#/visualize/edit/14da2260-a700-11ea-93ba-a9a125fcf025?embed=true&_g=()" height="900" width="1200" style="POSITION:absolute;RIGHT:500px; LEFT:-50px; TOP:-100px;"></iframe>

好啦,此刻kiabana的词云已经装到grafana里了,是不是很简单,三步搞定grafana词云。当然你把python的 word cloud嵌入到grafana里,我也没意见。以上kibana,grafana 都使用了域名并配置了https证书。

本文参考的文档 :https://discuss.elastic.co/t/auto-authenticating-to-iframe-embedded-kibana-dashboard/46091

————————————————————

作者简介:左国才,VIPKID运维工程师,笔名icai,主要研究Linux操作系统,数据库,云计算领域相关技术, 热爱开源技术,平时喜欢阅读脚本之家公众号。

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
3月前
|
Prometheus 监控 Cloud Native
基于Prometheus和Grafana的监控平台 - 环境搭建
基于Prometheus和Grafana的监控平台 - 环境搭建
|
21天前
|
Prometheus 监控 Cloud Native
自定义grafana_table(数据源Prometheus)
综上所述,自定义 Grafana 表格并将 Prometheus 作为数据源的关键是理解 PromQL 的查询机制、熟悉 Grafana 面板的配置选项,并利用 Grafana 强大的转换和自定义功能使数据展示更为直观和有洞见性。随着对这些工具更深入的了解,您将可以创建出更高级的监控仪表盘,以支持复杂的业务监控需求。
60 1
|
22天前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之Grafana安装与配置
prometheus学习笔记之Grafana安装与配置
|
23天前
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
97 1
|
23天前
|
Prometheus 监控 Cloud Native
Spring Boot 性能护航!Prometheus、Grafana、ELK 组合拳,点燃数字化时代应用稳定之火
【8月更文挑战第29天】在现代软件开发中,保证应用性能与稳定至关重要。Spring Boot 作为流行的 Java 框架,结合 Prometheus、Grafana 和 ELK 可显著提升监控与分析能力。Prometheus 负责收集时间序列数据,Grafana 将数据可视化,而 ELK (Elasticsearch、Logstash、Kibana)则管理并分析应用日志。通过具体实例演示了如何在 Spring Boot 应用中集成这些工具:配置 Prometheus 获取度量信息、Grafana 显示结果及 ELK 分析日志,从而帮助开发者快速定位问题,确保应用稳定高效运行。
35 1
|
1月前
|
Prometheus Kubernetes 监控
Kubernetes(K8S) 监控 Prometheus + Grafana
Kubernetes(K8S) 监控 Prometheus + Grafana
123 2
|
1月前
|
Prometheus 监控 Cloud Native
在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
在Linux中,如何使用Grafana和Prometheus进行网络监控和可视化?
|
2月前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。