• ElasticSearch(二)【Kibana】


    二、Kibana


    上一篇文章ElasticSearch - 简介

    简介

    Kibana(Navicat)是一个针对Elasticsearch(MySQL)开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作,使用Kibana能执行高级的 数据分析,并能以图表、表格和地图的形式查看数据

    2.1 基础安装

    Kibana官网https://www.elastic.co/cn/downloads/kibana

    查看以前版本,注意下载的版本需要跟ES的版本对应

    在这里插入图片描述

    在这里插入图片描述

    ### 1.下载完压缩包之后使用 xftp 上传到服务器中
    
    ### 2.解压下载的kibana安装包
    tar -zxvf kibana-7.14.0-linux-x86_64.tar.gz
    
    ### 3.编辑kibana配置文件
    vim /[kibana安装目录]/config/kibana.yml
    
    ### 4.修改如下配置内容
    # 开启外部访问
    server.host: "0.0.0.0"
    # publicBaseUrl
    server.publicBaseUrl: "http://127.0.0.1:5601"
    # es访问地址
    elasticsearch.hosts: ["http://127.0.0.1:9200"]
    # es账号
    elasticsearch.username: "elastic"
    # es密码
    elasticsearch.password: "123456"
    
    
    ### 5.启动kibana,在kibana的/bin目录下(注意,需要确保ES是开启的状态)
    ./bin/kibana
    
    ### 6.开启kibana56
    firewall-cmd --zone=public --add-port=5601/tcp --permanent
    
    ### 7.访问kibana的web界面
    http://192.168.159.100:5601/	# kibana默认端口为5601
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    在这里插入图片描述

    在这里插入图片描述

    报错

    log [11:13:23.080] [error][savedobjects-service] [.kibana] [cluster_block_exception]: index [.kibana_7.14.0_001] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];

    可能原因一

    Elasticsearch基于磁盘的碎片分配,存储空间不足时,kibana自动将其配置更改为只读模式。默认情况下,Elasticsearch的决定基于可用磁盘空间的百分比,因此在大磁盘上,即使您有许多GB的可用空间,也可能发生这种情况

    出现该错误的原因是磁盘空间不足85%时,默认值为85%,这意味着Elasticsearch不会将碎片分配给使用了超过85%磁盘的节点。所有会报上述错误

    解决方法
    将kibana存储在磁盘上有比较充足的空间

    可能原因二:ES中携带了kibana的索引,需要删除掉

    解决方法
    删除ES中.kibana索引

    # 在启动了ES条件下,在终端输出
    curl -u elastic:123456 -XDELETE http://localhost:9200/.kibana*
    
    • 1
    • 2

    如果不加星号会出现下面的问题

    {“error”:{“root_cause”:[{“type”:“illegal_argument_exception”,“reason”:“The provided expression [.kibana] matches an alias, specify the corresponding concrete indices instead.”}],“type”:“illegal_argument_exception”,“reason”:“The provided expression [.kibana] matches an alias, specify the corresponding concrete indices instead.”},“status”:400}
    是因为删除索引kibana只是个别名,所以需要加*

    当然,我自己也失败了,所以使用docker进行安装

    2.2 docker安装kibana

    # 先运行docker
    systemctl start docker
    
    ### 1.拉取kibana镜像
    docker pull kibana:7.14.0
    
    ### 2.运行kubana
    docker run -d --name kibana -p 5601:5601 kibana:7.14.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    在这里插入图片描述

    ### 修改kibana.yml文件内容
    # 进入容器内部
    [totoro@vinjcent /]$ sudo docker exec -it 8d23198cb6f0 bash
    # 进入后,退出时后台运行
    Ctrl + P + Q
    # 进入容器内部,修改config目录下的kibana.yml文件,修改ES服务运行ip与端口,如下所示
    vi ./config/kibana.yml
    # 修改完之后,需要停止运行并重启kibana容器
    exit 	# 退出命令
    docker restart [kibana容器id]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    在这里插入图片描述

    本机访问与运行测试(需要在ES服务运行之后,启动Kibana

    访问测试:http://ip:5601/

    在这里插入图片描述

    运行测试

    在这里插入图片描述

    在这里插入图片描述

    2.3 基于docker容器数据卷方式配置

    ### 4.基于数据卷加载配置文件方式运行
    - 从容器复制kibana配置文件出来
    - 修改配置文件为对应ES服务器地址
    - 通过数据卷加载配置文件方式启动
    
    # 从容器复制kibana配置文件出来
    docker cp [容器id]:/usr/share/kibana/config/kibana.yml ./[当前宿主机的路径]
    
    # 在宿主机上修改复制之后的kibana.yml文件,修改ES服务地址
    elasticsearch.hosts: ["http://192.168.159.100:9200"]
    
    # 通过数据卷加载配置文件方式启动
    docker run -d -v ./[宿主机的路径]/kibana.yml:/usr/share/kibana/config/kibana.yml --name kibana -p 5601:5601 kibana:7.14.0
    # 【注意】需要删除原来的kibana容器,再通过数据卷方式启动
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    2.4 compose方式安装(运行)

    docker环境、docker-compse环境

    在这里插入图片描述

    # 1.首先要删除ES与Kibana容器
    docker rm -f [ES容器id] [Kibana容器id]
    # 2.创建一个es-kibana容器目录
    mkdir es-kibana
    # 3.在该目录下编辑一个docker-compose.yml文件
    vim docker-compose.yml
    # 4.在该目录下编辑一个kibana.yml文件
    vim kibana.yml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    docker-compose.yml

    ############################################### docker-compose.yml ###############################################
    version: "3.8"
    volumes:
      data:
      config:
      plugin:
    networks:
      es:
    services:
      elasticsearch:
        image: elasticsearch:7.14.0
        ports:
          - "9200:9200"
          - "9300:9300"
        networks:
          - "es"
        environment:
          - "discovery.type=single-node"
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        volumes:
          - data:/usr/share/elasticsearch/data
          - config:/usr/share/elasticsearch/config
          - plugin:/usr/share/elasticsearch/plugins
    
      kibana:
        image: kibana:7.14.0
        ports:
          - "5601:5601"
        networks:
          - "es"
        volumes:
          - ./kibana.yml:/usr/share/kibana/config/kibana.yml
    
    ################################################## 解析文件 ##################################################
    version: "3.8"
    volumes:
      data:
      config:
      plugin:
    networks:	# 声明使用的网络,代表两个服务共同使用一个网络
      es:
    services:
      elasticsearch:	# ES服务名称
        image: elasticsearch:7.14.0		# 镜像与版本号
        ports:			# 本地与容器进行端口映射
          - "9200:9200"
          - "9300:9300"
        networks:
          - "es"
        environment:	# 环境为单机模式、并设置vm的启动内存大小
          - "discovery.type=single-node"
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        volumes:		# 数据卷挂载
          - data:/usr/share/elasticsearch/data
          - config:/usr/share/elasticsearch/config
          - plugin:/usr/share/elasticsearch/plugins
    
      kibana:
        image: kibana:7.14.0
        ports:
          - "5601:5601"
        networks:
          - "es"
        volumes:
          - ./kibana.yml:/usr/share/kibana/config/kibana.yml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65

    kibana.yml

    ############################################### kibana.yml ###############################################
    server.host: "0"
    server.shutdownTimeout: "5s"
    elasticsearch.hosts: ["http://elasticsearch:9200"]
    monitoring.ui.container.elasticsearch.enabled: true
    
    # 【注意】配置ES服务地址时,是根据docker-compose中的服务名称进行访问的,那么下次ES配置地址改变时,服务名称不变,还能够正常运行
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    最后在有docker-compose.yml的文件下运行

    # 启动ES、Kibana两个服务
    docker-compose up -d
    # 查看运行中的容器
    docker ps
    # 查看运行中的容器日志
    docker logs -f [容器id]
    # 在./es-kibana中关闭我们运行的容器
    docker-compose down
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述
    下一篇文章ElasticSearch - 索引、映射、文档

  • 相关阅读:
    GraphQL 实践与服务搭建
    VisualStudio使用 props文件的一个坑
    @GlobalLock注解作用与原理解析
    linux 文本处理工具 cut 和 awk
    OKhttp上传图片视频
    CSS---border-image属性的使用心得
    反序列化漏洞(1), 原理, 实验, 魔术方法
    C++-继承-多继承-类型转换-内存结构分析-汇编分析-逆向分析(二)
    Gradle整合Mybatis Generater自动生成
    MIT 6.s081 lab3-pgtbl
  • 原文地址:https://blog.csdn.net/Wei_Naijia/article/details/126923048