【Docker】ES、Kibana及IK安装配置

 目录

一.单节点安装部署

1.版本选择

2.推荐及总结

​3.官网下载地址

4.创建网络

5.拉取镜像

6.创建文件夹

7.运行docker命令

二、安装kibana

1.安装kibana

2.浏览器访问

3.国际化

三、Elasticsearch查询

1.数据插入:POST或PUT

2.数据查询GET

3.分词测试

四、安装分词器IK

(一)手动安装

1.下载IK安装包

2.解压IK,修改plugin-descriptor.properties 文件

(二)在线安装IK

1.在线安装IK

2.浏览器访问

3.测试


一.单节点安装部署

1.版本选择

[支持一览表 | Elastic]

2.推荐及总结

  •  ES 7.x 及之前版本,选择 Java 8
  •  ES 8.x 及之后版本,选择 Java 17 或者 Java 18,建议 Java 17,因为对应版本的 Logstash 不支持 Java 18
  •  Java 9、Java 10、Java 12 和 Java 13 均为短期版本,不推荐使用
  •  M1(Arm) 系列 Mac 用户建议选择 ES 7.8.x 以上版本,因为考虑到 ELK 不同产品自身兼容性,7.8.x以上版本原生支持 Arm 原生 JDK

​3.官网下载地址

Past Releases of Elastic Stack Software | Elastic

以下安裝教程选择7.x 的最新版本:<strong> 7.17.15</strong>

注:建议选择7.15.5或7.17.6 ,因为分词器的版本最高为7.17.6。当然,安装7.17.15也有对应的解决办法。

4.创建网络

docker network create elastic

5.拉取镜像

docker  pull  elasticsearch:7.17.15

6.创建文件夹

创建数据、日志、插件存放文件夹

mkdir -p {'/docker/es/data','/docker/es/logs','/docker/es/plugins','/docker/es/config'}

7.运行docker命令

docker run -d \
-p 9200:9200 \
--restart=always \
--name es \
-v /docker/es/logs:/usr/share/elasticsearch/logs \
-v /docker/es/data:/usr/share/elasticsearch/data \
-v /docker/es/plugins:/usr/share/elasticsearch/plugins \
-v /docker/es/config:/usr/share/elasticsearch/config \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
-e "TAKE_FILE_OWNERSHIP=true" \
--network elastic --privileged elasticsearch:7.17.15# 命令解释:
# -p 9200:9200:端口映射配置
# restart=always:开机启动
# -e “discovery.type=single-node”:非集群模式
# -e “ES_JAVA_OPTS=-Xms512m -Xmx512m”:设置内存,如果服务器内存不是很大,这里设置小点,否则服务将起不来
# -v 本地目录:逻辑目录
# -v /usr/local/es/single/logs:/usr/share/elasticsearch/logs 挂载逻辑卷,绑定es的日志目录
# -v /usr/local/es/single/data:/usr/share/elasticsearch/data 挂载逻辑卷,绑定es的数据目录
# -v /usr/local/es/single/plugins:/usr/share/elasticsearch/plugins 挂载逻辑卷,绑定es的插件目录
# --network elastic 加入一个名为elastic的网络中
# –privileged 允许访问挂载目录
# --name es 容器名
# TAKE_FILE_OWNERSHIP:挂载权限问题,绑定-挂载本地目录或文件,请确保该用户能够读懂它,而数据和日志dirs则需要另外的写访问权限。一个好的策略是为本地目录授予组对gid 1000或0的访问权限

浏览器访问http://xxxxxx:9200

二、安装kibana

[支持一览表 | Elastic]

即es是哪个版本,kibana就安装对应的版本即可

1.安装kibana

docker  pull  kibana:7.17.15
docker run -d \
-p 5601:5601 \
-e "ELASTICSEARCH_HOSTS=http://es:9200" \
--network=elastic \
--name kibana kibana:7.17.15# 命令解释
# -p 5601:5601 端口映射
# –network elastic 加入一个名为elastic的网络中,与elasticsearch在同一个网络中
# -e ELASTICSEARCH_HOSTS=http://127.0.0.1:9200 设置elasticsearch的地址,也可以用es容器名,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch

2.浏览器访问

http://xxxxx:5601

3.国际化

# 将容器内的配置拷贝到本地
docker cp 容器id:/usr/share/kibana/config/kibana.yml /usr/local/kibana/kibana.yml
# 修改配置文件,添加国际化后保存
i18n.locale: "zh-CN"
# 将修改后的配置拷贝到容器内
docker cp /usr/local/kibana/kibana.yml 容器id:/usr/share/kibana/config/kibana.yml
# 重启kibana
docker restart kibana

三、Elasticsearch查询

1.数据插入:POST或PUT

PUT /mytest/user/1
{"name": "李四lisi","age": 21,"car": "宝马x5"
}
# 结果
{"_index" : "mytest","_type" : "user","_id" : "1","_version" : 3,"result" : "updated","_shards" : {"total" : 2,"successful" : 1,"failed" : 0},"_seq_no" : 3,"_primary_term" : 1
}

2.数据查询GET

# 根据id进行查询
GET /mytest/user/1
# 结果:
{"_index" : "mytest","_type" : "user","_id" : "1","_version" : 3,"_seq_no" : 3,"_primary_term" : 1,"found" : true,"_source" : {"name" : "李四lisi","age" : 21,"car" : "宝马x5"}
}# 查当前索引下所有数据
GET /mytest/user/_search
#结果:
{"took" : 0,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 2,"relation" : "eq"},"max_score" : 1.0,"hits" : [{"_index" : "mytest","_type" : "user","_id" : "2","_score" : 1.0,"_source" : {"name" : "张三,zhangsan","age" : 21,"car" : "奥迪a6l"}},{"_index" : "mytest","_type" : "user","_id" : "1","_score" : 1.0,"_source" : {"name" : "李四lisi","age" : 21,"car" : "宝马x5"}}]}
}
# 查当前索引下多个id的数据
GET /mytest/user/_mget
{"ids": ["1","2"]
}
#结果:
{"docs" : [{"_index" : "mytest","_type" : "user","_id" : "1","_version" : 3,"_seq_no" : 3,"_primary_term" : 1,"found" : true,"_source" : {"name" : "李四lisi","age" : 21,"car" : "宝马x5"}},{"_index" : "mytest","_type" : "user","_id" : "2","_version" : 1,"_seq_no" : 2,"_primary_term" : 1,"found" : true,"_source" : {"name" : "张三,zhangsan","age" : 21,"car" : "奥迪a6l"}}]
}

3.分词测试

如果没装分词器,中文分词不是很友好,结果如下:

#分词查询
GET _analyze
{"analyzer": "standard","text": "宝马x5"
}
#结果:
{"tokens" : [{"token" : "宝","start_offset" : 0,"end_offset" : 1,"type" : "<IDEOGRAPHIC>","position" : 0},{"token" : "马","start_offset" : 1,"end_offset" : 2,"type" : "<IDEOGRAPHIC>","position" : 1},{"token" : "x5","start_offset" : 2,"end_offset" : 4,"type" : "<ALPHANUM>","position" : 2}]
}

四、安装分词器IK

(一)手动安装

IK版本必须和es版本一致,由于安装的es版本为7.17.15,而 当前 ik的最新版本为7.17.6,因此不能在线安装,改为手动安装

在线安装时报错:

Plugin [analysis-ik] was built for Elasticsearch version 7.17.6 but version 7.17.15 is running

1.下载IK安装包

https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.6/elasticsearch-analysis-ik-7.17.6.zip

2.解压IK,修改plugin-descriptor.properties 文件

 

 

 将修改后的IK复制到es容器内:

# d26e72805e83 为容器id,docker ps 即可查看
docker cp /home/ik/ d26e72805e83:/usr/share/elasticsearch/plugins/ik

然后重启es即可

# es 你的容器名称
docker restart es

(二)在线安装IK

1.在线安装IK

# 查看es容器id
docker ps
# 进入容器内部
docker exec -it 容器id /bin/bash
# 在线下载安装IK
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.6/elasticsearch-analysis-ik-7.17.6.zip# 退出容器
exit
# 重启容器
docker restart 容器id

2.浏览器访问

http://xxxxx:5601/app/dev_tools#/console

3.测试

IK分词安装后有两种分词策略:ik_smart,ik_max_word。其中ik_smart称为智能分词,网上还有别的称呼:最少切分,最粗粒度划分。ik_max_word称为最细粒度划分。

ik_max_word:对输入文本根据词典穷尽各种分割方法是细力度分割策略。

ik_smart:会对输入文本根据词典以及歧义判断等方式进行一次最合理的粗粒度分割。

ik_max_word 测试

GET _analyze
{"analyzer": "ik_max_word","text": "宝马x5"
}#结果:
{"tokens" : [{"token" : "宝马","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "x5","start_offset" : 2,"end_offset" : 4,"type" : "LETTER","position" : 1},{"token" : "x","start_offset" : 2,"end_offset" : 3,"type" : "ENGLISH","position" : 2},{"token" : "5","start_offset" : 3,"end_offset" : 4,"type" : "ARABIC","position" : 3}]
}

ik_smart测试

GET _analyze
{"analyzer": "ik_smart","text": "宝马x5"
}#结果:
{"tokens" : [{"token" : "宝马","start_offset" : 0,"end_offset" : 2,"type" : "CN_WORD","position" : 0},{"token" : "x5","start_offset" : 2,"end_offset" : 4,"type" : "LETTER","position" : 1}]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/278439.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态面板简介以及ERP原型图案列

动态面板简介以及ERP原型图案列 1.Axure动态面板简介2.使用Axure制作ERP登录界面3.使用Asure完成左侧菜单栏4.使用Axuer完成公告栏5.使用Axuer完成左边侧边栏 1.Axure动态面板简介 在Axure RP中&#xff0c;动态面板是一种强大的交互设计工具&#xff0c;它允许你创建可交互的…

【Spring教程29】Spring框架实战:从零开始学习SpringMVC 之 服务器响应知识全面详解

目录 1 环境准备2 响应页面3 返回文本数据4 响应JSON数据5 知识点总结 欢迎大家回到《Java教程之Spring30天快速入门》&#xff0c;本教程所有示例均基于Maven实现&#xff0c;如果您对Maven还很陌生&#xff0c;请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配…

浅析AI视频分析与视频管理系统EasyCVR平台及场景应用

人工智能的战略重要性导致对视频智能分析的需求不断增加。鉴于人工智能视觉技术的巨大潜力&#xff0c;人们的注意力正在从传统的视频监控转移到计算机视觉的监控过程自动化。 1、什么是视频分析&#xff1f; 视频分析或视频识别技术&#xff0c;是指从视频片段中提取有用信息…

Pytorch从零开始实战13

Pytorch从零开始实战——ResNet与DenseNet探索 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——ResNet与DenseNet探索环境准备数据集模型选择开始训练可视化总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;P…

Excel中MATCH和INDEX函数的用法详解,以及Vlookup的数组用法

match函数 目的&#xff1a;查询函数&#xff0c;范围单元格中搜索特定的项&#xff0c;然后返回该项在此区域中的相对位置。 For example:让 match 去【隔壁办公室】找【老张】 Match 回复&#xff1a;【老张】坐在【隔壁办公室】第【四】个座位上 公式&#xff1a;【 mat…

Redis 的常见使用场景

01 缓存 作为 Key-Value 形态的内存数据库&#xff0c;Redis 最先会被想到的应用场景便是作为数据缓存。而使用 Redis 缓存数据非常简单&#xff0c;只需要通过 string 类型将序列化后的对象存起来即可&#xff0c;不过也有一些需要注意的地方&#xff1a; 必须保证不同对象的…

服务器数据恢复-EqualLogic PS存储硬盘坏道导致存储不可用的数据恢复案例

服务器数据恢复环境&#xff1a; 一台DELL EqualLogic PS系列存储&#xff0c;存储中有一组由16块SAS硬盘组成的RAID5。上层是VMFS文件系统&#xff0c;存放虚拟机文件。存储上层分了4个卷。 服务器故障&检测&#xff1a; 存储上有2个硬盘指示灯显示黄色&#xff0c;磁盘出…

微服务架构之争:Quarkus VS Spring Boot

在容器时代&#xff08;“Docker时代”&#xff09;&#xff0c;无论如何&#xff0c;Java仍然活着。Java在性能方面一直很有名&#xff0c;主要是因为代码和真实机器之间的抽象层&#xff0c;多平台的成本&#xff08;一次编写&#xff0c;随处运行——还记得吗&#xff1f;&a…

【MySQL学习之基础篇】约束

文章目录 1. 概述2. 基础约束3. 外键约束3.1. 介绍3.2. 外键的添加3.3. 外键删除和更新行为 1. 概述 概念&#xff1a; 约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。     目的&#xff1a; 保证数据库中数据的正确、有效性和完整性。 分类&#x…

路由器原理

目录 一.路由器 1.路由器的转发原理 2.路由器的工作原理 二.路由表 1.路由表的形成 2.路由表表头含义 直连&#xff1a; 非直连&#xff1a; 静态 静态路由的配置 负载均衡&#xff08;浮动路由&#xff09; 默认路由 动态 三.交换与路由对比 一.路由器 1.路由器…

Cockpit upload文件上传漏洞(CVE-2023-1313)

0x01 产品简介 Cockpit 是一个自托管、灵活且用户友好的无头内容平台,用于创建自定义数字体验。 0x02 漏洞概述 Cockpit assetsmanager/upload接口处存在文件上传漏洞,攻击者可通过该漏洞在服务器端任意上传代码,写入后门,获取服务器权限,进而控制整个web服务器。 0x0…

C语言----文件操作(二)

在上一篇文章中我们简单介绍了在C语言中文件是什么以及文件的打开和关闭操作&#xff0c;在实际工作中&#xff0c;我们不仅仅是要打开和关闭文件&#xff0c;二是需要对文件进行增删改写。本文将详细介绍如果对文件进行安全读写。 一&#xff0c;以字符形式读写文件&#xff…