计算机系统应用教程网站

网站首页 > 技术文章 正文

如何将kibana的dashboard集成到自有系统中

btikc 2024-10-19 03:08:18 技术文章 7 ℃ 0 评论

kibana是ELK技术栈的可视化解决方案,它提供了可见即所得的页面生成功能。用现在时髦的话说就是低代码可视化开发。但是我们拖拽生成好页面后,如何嵌入或是集成到自己的系统中呢?今天给大家演示2种方法,希望能帮助大家少走弯路。由于kibana数据是从elasticsearch里面获取的,为了演示方便,我们先启动elasticsearch.

  1. 创建网络
docker network create elastic

2.启动elasticsearch

docker run -d --name es01-test --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=true" -v /root/elk/elastic-data:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:7.16.2

匿名方式:

  1. 制作证书,具体的制作命令在下面会列出。
  2. 配置kibana.yml,下面会列出完整的内容。其中xpack.security.sameSiteCookies:"None"。允许浏览器在一个第三方网站中使用iframe嵌入kibana的网页。这个非常重要,又由于iframe必须嵌入https协议的网站,所以配置用到了上面制作的证书。
  3. 启动kibana容器
docker run --name kib01-test -d --net elastic -p 5601:5601 -v /root/elk/server:/root/elk/server -v /root/elk/kibana.yml:/usr/share/kibana/config/kibana.yml -e "ELASTICSEARCH_HOSTS=http://es01-test:9200" -e "ELASTICSEARCH_USERNAME=kibana_system" -e "ELASTICSEARCH_PASSWORD=CC352132" docker.elastic.co/kibana/kibana:7.16.2

4.登录获取匿名登录的嵌入代码,将相关iframe代码放到自有系统的页面中即可。

kibana配置



#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true

server.ssl.enabled: true
server.ssl.key: /root/elk/server/server.key
server.ssl.certificate: /root/elk/server/server.crt

csp.rules: ["frame-src 'self' https://naturalcycles.com/"]

xpack.security.sameSiteCookies: "None"

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

证书制作

Generate CA and self-signed certificates

openssl genrsa -des3 -out ca.key 2048
openssl req -sha256 -new -x509 -days 365 -key ca.key -out ca.crt \ -subj "/C=CN/ST=GD/L=SZ/O=lee/OU=study/CN=testtest"

生成服务器端证书

openssl genrsa -des3 -out server.key 2048
openssl req -new -nodes -keyout server.key -out server.csr -config openssl.cnf
openssl x509 -req -in server.csr -CA demoCA/newcerts/ca.crt -CAkey demoCA/newcerts/ca.key -CAcreateserial -out server.crt -days 3600 -extfile openssl.cnf -extensions v3_req

OpenID connect方式

1.搭建AuthorizationServer用于认证服务,如何搭建,大家可以搜搜。有多种方式,比如cas或是spring-security-oauth2等开源方案可以实现。

2.启动Elasticsearch OpenID Connect 认证

3.配置kibana,实现单点登录

具体的配置过程,请参考下面的oidc-guide的wiki

参考wiki

https://www.elastic.co/guide/en/elasticsearch/reference/current/oidc-guide.html

https://www.elastic.co/guide/en/kibana/current/kibana-authentication.html#embedded-content-authentication

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表