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

 更新时间:2022年02月07日 16:50:14   作者:ThinkWon  
这篇文章主要介绍了Docker安装ElasticSearch和Kibana的问题及遇到问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

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、安装插件,运行统计数据等。
configelasticsearch.yml集群配置文件
JDK Java 运行环境
datapath.data数据文件
lib Java 类库
logspath.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的界面了。

在这里插入图片描述

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/),结果如下:

在这里插入图片描述

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.enabledfalse是否支持跨域,默认为false
http.cors.allowed.originlocalhost当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?😕/localhost(:[0-9]+)?/
http.cors.max-age1728000(20天)浏览器发送一个“预检”OPTIONS请求,以确定CORS设置。最大年龄定义多久的结果应该缓存。
http.cors.allow-methodsOPTIONS,HEAD,GET,POST,PUT,DELETE允许跨域的请求方式
http.cors.allow-headersX-Requested-With,Content-Type,Content-Length跨域允许设置的头信息
http.cors.allow-credentials 是否返回设置的跨域Access-Control-Allow-Credentials头,如果设置为true,那么会返回给客户端。

退出容器

exit

重启elasticsearch

执行,54d1c07bc236为elasticsearch容器id

docker restart 54d1c07bc236

或者

docker restart elasticsearch

浏览器再次访问(http://ip:9100/),记得修改elasticsearch地址,显示【集群健康值: green】表示连接elasticsearch成功

在这里插入图片描述

到此这篇关于Docker安装ElasticSearch和Kibana的文章就介绍到这了,更多相关Docker安装ElasticSearch和Kibana内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker中运行PostgreSQL容器的简单步骤

    docker中运行PostgreSQL容器的简单步骤

    这篇文章主要给大家介绍了关于docker中运行PostgreSQL容器的简单步骤,随着docker的广泛应用,为了提供便利的管理,PostgreSQL数据库也支持docker的安装方式,需要的朋友可以参考下
    2023-08-08
  • docker常用命令汇总

    docker常用命令汇总

    这篇文章主要介绍了docker常用命令汇总,都是一些常用的基本命令,有需要的同学可以尝试学习下
    2020-12-12
  • 使用 Azure Container Registry 储存镜像的问题

    使用 Azure Container Registry 储存镜像的问题

    Azure Container Registry(容器注册表)是基于 Docker Registry 2.0规范的托管专用 Docker 注册表服务。这篇文章主要介绍了使用 Azure Container Registry 储存镜像,需要的朋友可以参考下
    2021-05-05
  • 如何一次重启所有已停止的docker容器

    如何一次重启所有已停止的docker容器

    这篇文章主要介绍了如何一次重启所有已停止的docker容器问题,
    2024-01-01
  • Docker compose部署SpringBoot项目连接MySQL及遇到的坑

    Docker compose部署SpringBoot项目连接MySQL及遇到的坑

    这篇文章主要介绍了Docker compose部署SpringBoot项目连接MySQL,文中给大家强调了如果在使用的过程中修改了Dockerfile,一定要把之前的镜像删掉,具体内容详情跟随小编一起看看吧
    2021-09-09
  • 滚动 docker 中的 nginx 日志思路详解

    滚动 docker 中的 nginx 日志思路详解

    Nginx 自己没有处理日志的滚动问题,本文笔者介绍如何滚动运行在 docker 中的 nginx 日志文件,感兴趣的朋友一起看看吧
    2018-08-08
  • docker-compose 配置spring环境的方法步骤

    docker-compose 配置spring环境的方法步骤

    这篇文章主要介绍了docker-compose 配置spring环境的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 详解Docker的持久化存储和数据共享

    详解Docker的持久化存储和数据共享

    这篇文章主要介绍了详解Docker的持久化存储和数据共享,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • MacOS安装Docker的过程及遇到的坑

    MacOS安装Docker的过程及遇到的坑

    这篇文章给大家分享MacOS安装Docker的过程及遇到的坑,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友参考下
    2018-01-01
  • docker中进入容器所在目录删除文件

    docker中进入容器所在目录删除文件

    这篇文章主要介绍了docker中进入容器所在目录删除文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论