服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - 服务器知识 - Docker安装ElasticSearch和Kibana的问题及处理方法

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

2022-08-07 11:10ThinkWon 服务器知识

这篇文章主要介绍了Docker安装ElasticSearch和Kibana的问题及遇到问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

1. 安装docker

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

2. 拉取elasticsearch镜像

拉取最新版本elasticsearch

?
1
docker pull elasticsearch

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

?
1
docker pull elasticsearch:7.11.1

3. 启动elasticsearch

?
1
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

或者

?
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 目录结构

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[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,输入类似如下的信息表示安装成功

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
    "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

?
1
docker exec -it 54d1c07bc236 /bin/bash

plugins安装步骤

?
1
cd /usr/share/elasticsearch/plugins/

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

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

退出容器

?
1
exit

重启docker容器

?
1
docker restart 54d1c07bc236

5.2 分词器使用验证

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

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

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

?
1
2
3
4
{
    "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

?
1
docker pull kibana:7.11.1

6.2 启动kibana

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

?
1
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

?
1
docker pull mobz/elasticsearch-head:5

查看镜像

?
1
docker images

输出结果包含mobz/elasticsearch-head

?
1
2
3
4
5
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

启动容器

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

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

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

8、常见问题处理

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

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

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

?
1
2
http.cors.enabled: true
http.cors.allow-origin: "*"

参数说明:

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

退出容器

?
1
exit

重启elasticsearch

执行,54d1c07bc236为elasticsearch容器id

?
1
docker restart 54d1c07bc236

或者

?
1
docker restart elasticsearch

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

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

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

原文链接:https://blog.csdn.net/ThinkWon/article/details/122808762

延伸 · 阅读

精彩推荐