【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.mzph.cn/news/225146.shtml

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

相关文章

如何用Adobe Audition 检测波形的pop和卡顿

在Adobe Audition中&#xff0c;检测卡顿和pop的方法各有不同&#xff1a; 1. **检测卡顿**&#xff1a; - 使用“诊断”面板中的“删除静音”或“标记音频”选项可以帮助识别音频中的静音段落&#xff0c;这可能表明存在卡顿。 - 配置诊断设置&#xff0c;指定静音的振…

docker consul容器的自动发现与注册

一、微服务&#xff08;容器&#xff09;的注册与发现——微服务架构中极其重要的组件 1、定义&#xff1a;是一种分布式管理系统以及定位服务的方法。传统架构中&#xff0c;应用程序之间直连到已知的服务&#xff0c;设备提供的网络&#xff08;IP地址&#xff09;&#xff…

高级前端开发工程师

岗位需求 熟练掌握前端主流框架Vue、React、Angular,至少熟练掌控Vue全家桶 文章目录 岗位需求前言一、Vue框架二、React框架三、Angular框架四、什么是Vue全家桶前言 -那就看你表哥的电脑里有没有硬盘 -我不敲键盘 一、Vue框架 Vue(读音为/vjuː/,类似于"view"…

Linux 内存池源码剖析

1 传统的分配与释放内存的函数缺点: void *malloc(size_t size); void *calloc(size_t nmemb,size_t size);void *realloc(void *ptr, size_t size);void free(void *ptr);缺点1: 高并发时较小内存块使用导致系统调用频繁,降低了系统的执行效率 缺点2: 频繁使用时增加了系统…

【答案】2023年国赛信息安全管理与评估第三阶段夺旗挑战CTF(网络安全渗透)

【答案】2023年国赛信息安全管理与评估第三阶段夺旗挑战CTF&#xff08;网络安全渗透&#xff09; 全国职业院校技能大赛高职组信息安全管理与评估 &#xff08;赛项&#xff09; 评分标准 第三阶段 夺旗挑战CTF&#xff08;网络安全渗透&#xff09; *竞赛项目赛题* 本文…

柔性数组(结构体成员)

目录 前言&#xff1a; 柔性数组&#xff1a; 给柔性数组分配空间&#xff1a; 调整柔性数组大小&#xff1a; 柔性数组的好处&#xff1a; 前言&#xff1a; 柔性数组&#xff1f;可能你从未听说&#xff0c;但是确实有这个概念。听名字&#xff0c;好像就是柔软的数…

如何连接到 Azure SQL 数据库(下)

在《如何连接到 Azure SQL 数据库&#xff08;上&#xff09;》中&#xff0c;我们已经了解到了以下内容↓↓↓ 开始之前&#xff1a;Azure 连接凭据和防火墙 如何检索 Azure 连接凭据如何配置服务器防火墙使用 SQL Server Management Studio 连接到 Azure使用 dbForge Studio…

数据结构--稀疏矩阵及Java实现

一、稀疏 sparsearray 数组 1、先看一个实际的需求 编写的五子棋程序中&#xff0c;有存盘退出和续上盘的功能。 分析问题: 因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据.->稀疏数组。 2、稀疏数组基本介绍 当一个数组中大部分元素为&#xff10;…

wordpress安装之正式开始安装wordpress

1、拉取wordpress镜像 docker pull wordpress 2、启动容器 启动容器&#xff0c;设置容器名为wordpress2并把80端口映射到宿主机的9988端口 docker run -it --name wordpress2 -p 9988:80 -d wordpress 3、查看容器状态 docker ps 4、安装wordpress博客程序 因为我们前面启…

微信小程序---使用npm包安装Vant组件库

在小程序项目中&#xff0c;安装Vant 组件库主要分为如下3步: 注意&#xff1a;如果你的文件中不存在pakage.json&#xff0c;请初始化一下包管理器 npm init -y 1.通过 npm 安装(建议指定版本为1.3.3&#xff09; 通过npm npm i vant/weapp1.3.3 -S --production 通过y…

大数据技术14:FlinkCDC数据变更捕获

前言&#xff1a;Flink CDC是Flink社区开发的flink-cdc-connectors 组件&#xff0c;这是⼀个可以直接从 MySQL、PostgreSQL 等数据库直接读取全量数据和增量变更数据的 source 组件。 https://github.com/ververica/flink-cdc-connectors 一、CDC 概述 CDC 的全称是 Change …

换内核ubuntu

grep menuentry /boot/grub/grub.cfg我要使用第三个(索引从0开始&#xff0c;所以是第二个) 可以使用vi编辑&#xff08;很麻烦&#xff09; i变为插入模型 esc变为普通模型 &#xff1a;x删除单个字符&#xff0c;dd删除一行&#xff0c;&#xff1a;wq保存并退出 更新文件…

rabbitmq-windows安装使用-简易后台界面-修改密码

文章目录 1.下载2.安装3.安装 RabbitMQ4.后台访问5.修改密码 1.下载 将erlang运行时和rabbitmq-windows版本&#xff0c;上传在csdn&#xff0c;下载链接。https://download.csdn.net/download/m0_67316550/88633443 2.安装 右键&#xff0c;以管理员身份运行rabbitmq。启动…

Android 12.0 Launcher3定制化之动态时钟图标功能实现

1.概述 在12.0的系统产品rom定制化开发中,在Launcher3中的定制化的一些功能中,对于一些产品要求需要实现动态时钟图标功能,这就需要先绘制时分秒时针表盘,然后 每秒刷新一次时钟图标,时钟需要做到实时更新,做到动态时钟的效果,接下来就来分析这个功能的实现 如图: 2.动…

《Kotlin核心编程》笔记:面向对象

kotlin 中的类 // Kotlin中的一个类 class Bird {val weight: Double 500.0val color: String "blue"val age: Int 1fun fly() { } // 全局可见 }把上述代码反编译成Java的版本&#xff0c;然后分析它们具体的差异&#xff1a; public final class Bird {privat…

Linux部署MySQL5.7和8.0版本 | CentOS和Ubuntu系统详细步骤安装

一、MySQL数据库管理系统安装部署【简单】 简介 MySQL数据库管理系统&#xff08;后续简称MySQL&#xff09;&#xff0c;是一款知名的数据库系统&#xff0c;其特点是&#xff1a;轻量、简单、功能丰富。 MySQL数据库可谓是软件行业的明星产品&#xff0c;无论是后端开发、…

【产品经理】产品专业化提升路径

产品专业化就是上山寻路&#xff0c;梳理一套作为产品经理的工作方法。本文作者从设计方法、三基座、专业强化、优秀产品拆解、零代码这五个方面&#xff0c;对产品经理的产品专业化进行了总结归纳&#xff0c;一起来看一下吧。 产品专业化就是上山寻路&#xff0c;梳理一套作为…

数据结构 | Log-Structured Merge Tree (LSM Tree)

今天介绍LSM Tree这个数据结构&#xff0c;严格意义上来说&#xff0c;他并不像他的名字一样是一棵树型的数据结构&#xff0c;而更多是一种设计思想。 LSM Tree最先在1996年被提出&#xff0c;后来被广泛运用于现代NoSQL&#xff08;非关系型数据库&#xff09;系统中&#xf…

虚幻学习笔记17—C++委托(单播)

一、前言 相比“代理”这个名词我更喜欢叫“委托”&#xff0c;虚幻的委托分为三类&#xff0c;分别为单播、多播和动态多播。单播顾名思义就是一次只能绑定一个函数的委托&#xff0c;多播能一次性绑定多个&#xff0c;动态多播即可以在蓝图中进行动态的绑定且可以绑定多个。 …

mybatisplus使用雪花id通过swagger返回ID时精度丢失问题

在使用mybatisplus自带雪花的时候会发现返回的ID是19位的长度&#xff0c;因此在通过swagger页面展示的时候会发现后端返回的和页面展示的ID不一致问题。是因为精度丢失的问题。因此需要更改雪花ID的长度跟踪进去&#xff1a;发现是DefaultIdentifierGenerator类实现了Identifi…