欢迎来到站长天空!

其它服务器

当前位置: 主页 > 服务器 > 其它服务器

Docker安装ElasticSearch和Kibana的问题及处理方法

时间:2026-01-06 18:45:11|栏目:其它服务器|点击:

目录
  • 1. 安装docker
  • 2. 拉取elasticsearch镜像
  • 3. 启动elasticsearch
    • 3.1 目录结构
  • 4. 验证elasticsearch是否启动成功
    • 5. 插件安装
      • 5.1 安装IK分词器
      • 5.2 分词器使用验证
    • 6. kibana安装
      • 6.1 docker安装kibana
      • 6.2 启动kibana
    • 7、elasticsearch-head安装
      • 8、常见问题处理

        注意:本方案没有进行数据持久化,切勿用于生产环境

        1. 安装docker

        docker安装可参考此 Docker 从入门到实践系列二 - Docker 安装

        2. 拉取elasticsearch镜像

        拉取最新版本elasticsearch

        docker pull elasticsearch

        拉取指定版本elasticsearch,比如拉取7.11.1版本的elasticsearch

        docker pull elasticsearch:7.11.1

        3. 启动elasticsearch

        docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d elasticsearch:7.11.1

        或者

        docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d 54d1c07bc236

        运行docker镜像参数说明:

        -p:端口映射

        -e:设置环境变量,discovery.type=single-node(单机运行),ES_JAVA_OPTS="-Xms512m -Xmx512m"(设置JVM参数)

        -d:后台启动

        –name:容器名称

        54d1c07bc236:镜像id

        3.1 目录结构

        [root@node-123 systemd]# docker exec -it 54d1c07bc236 /bin/bash
        [root@54d1c07bc236 elasticsearch]# ls -l
        total 560
        -rw-r--r--  1 elasticsearch root   3860 Feb 15  2021 LICENSE.txt
        -rw-r--r--  1 elasticsearch root 545323 Feb 15  2021 NOTICE.txt
        -rw-r--r--  1 elasticsearch root   7263 Feb 15  2021 README.asciidoc
        drwxr-xr-x  2 elasticsearch root   4096 Feb 15  2021 bin
        drwxrwxr-x  1 elasticsearch root     55 Dec 23 09:40 config
        drwxrwxr-x  1 elasticsearch root     19 Dec 23 08:39 data
        drwxr-xr-x  1 elasticsearch root     17 Feb 15  2021 jdk
        drwxr-xr-x  3 elasticsearch root   4096 Feb 15  2021 lib
        drwxrwxr-x  1 elasticsearch root     71 Dec 23 09:41 logs
        drwxr-xr-x 57 elasticsearch root   4096 Feb 15  2021 modules
        drwxrwxr-x  1 elasticsearch root     25 Dec 23 09:40 plugins

        目录结构

        目录 配置文件 描述
        bin   脚本文件,包括启动 Elasticsearch、安装插件,运行统计数据等。
        config elasticsearch.yml 集群配置文件
        JDK   Java 运行环境
        data path.data 数据文件
        lib   Java 类库
        logs path.logs 日志文件
        modules   包含所有 ES 模块
        plugins   包含所有已安装插件

        4. 验证elasticsearch是否启动成功

        linux内用curl访问: curl http://localhost:9200,输入类似如下的信息表示安装成功

        {
            "name": "54d1c07bc236",
            "cluster_name": "docker-cluster",
            "cluster_uuid": "5UUvjjKKRMeQG9FZvW_mxA",
            "version": {
                "number": "7.11.1",
                "build_flavor": "default",
                "build_type": "docker",
                "build_hash": "ff17057114c2199c9c1bbecc727003a907c0db7a",
                "build_date": "2021-02-15T13:44:09.394032Z",
                "build_snapshot": false,
                "lucene_version": "8.7.0",
                "minimum_wire_compatibility_version": "6.8.0",
                "minimum_index_compatibility_version": "6.0.0-beta1"
            },
            "tagline": "You Know, for Search"
        }

        5. 插件安装

        5.1 安装IK分词器

        插件安装可以用elasticsearch-plugin install url命令

        比如安装:elasticsearch-analysis-ik(分词器),Ik分词器版本要和ES和Kibana版本保持一致

        docker进入容器命令,容器id为 54d1c07bc236

        docker exec -it 54d1c07bc236 /bin/bash

        plugins安装步骤

        cd /usr/share/elasticsearch/plugins/

        安装插件,elasticsearch-analysis-ik版本与elasticsearch保持一致,即7.11.1

        elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.11.1/elasticsearch-analysis-ik-7.11.1.zip 

        退出容器

        exit

        重启docker容器

        docker restart 54d1c07bc236 

        5.2 分词器使用验证

        ik_smart:智能分词,最少切分,宁缺毋滥,保证查准率

        ik_max_word:最大化分词法,最细粒度划分,尽量多的有意义的分词,保证查全率,ik_max_word分词包含 ik_smart

        Postman post请求分词测试:http://ip:9200/_analyze

        {
            "tokenizer": "ik_smart",
            "text": "花城广州"
        }

        结果如下:

        {
            "tokens": [
                {
                    "token": "花城",
                    "start_offset": 0,
                    "end_offset": 2,
                    "type": "CN_WORD",
                    "position": 0
                },
                {
                    "token": "广州",
                    "start_offset": 2,
                    "end_offset": 4,
                    "type": "CN_WORD",
                    "position": 1
                }
            ]
        }

        6. kibana安装

        6.1 docker安装kibana

        安装kibana版本与elasticsearch版本一致,即7.11.1

        docker pull kibana:7.11.1

        6.2 启动kibana

        安装完成以后需要启动kibana容器,使用–link连接到elasticsearch容器,命令如下:

        docker run --name kibana --link=elasticsearch:elasticsearch -p 5601:5601 -d kibana:7.11.1

        启动以后可以打开浏览器输入http://ip:5601就可以打开kibana的界面了。

        Docker安装ElasticSearch和Kibana的问题及处理方法

        7、elasticsearch-head安装

        elasticsearch-head是用于Elasticsearch监控的插件

        镜像 pull

        docker pull mobz/elasticsearch-head:5

        查看镜像

        docker images

        输出结果包含mobz/elasticsearch-head

        REPOSITORY                TAG       IMAGE ID       CREATED         SIZE
        hello-world               latest    feb5d9fea6a5   3 months ago    13.3kB
        elasticsearch             7.11.1    bc3d45eba361   10 months ago   819MB
        kibana                    7.11.1    ecf6e21a953f   10 months ago   1.01GB
        mobz/elasticsearch-head   5         b19a5c98e43b   4 years ago     824MB

        启动容器

        docker run -d --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

        浏览器访问(http://ip:9100/),结果如下:

        Docker安装ElasticSearch和Kibana的问题及处理方法

        8、常见问题处理

        开始链接elasticsearch服务,会发现链接不上,由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置

        docker exec -it elasticsearch /bin/bash
        vi config/elasticsearch.yml

        在elasticsearch.yml的文件末尾添加如下配置,保存,退出容器,并重启

        http.cors.enabled: true
        http.cors.allow-origin: "*"

        参数说明:

        参数 缺省值 说明
        http.cors.enabled false 是否支持跨域,默认为false
        http.cors.allowed.origin localhost 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?
        返回顶部
        顶部

        上一篇:docker基础之compose文件结构以及安装工具(实例详解)

        栏    目:其它服务器

        下一篇:Nginx构建Tomcat集群的操作方法

        本文标题:Docker安装ElasticSearch和Kibana的问题及处理方法

        本文地址:https://zz.feitang.co/server/35083.html

        广告投放 | 联系我们 | 版权申明

        申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

        如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

        联系QQ:257218569 | 邮箱:257218569@qq.com

        Copyright © 2018-2026 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号