域名注册网站有哪些,网站建设方案推荐,网站建设 云计算,python设计网页文章目录 Docker安装部署elasticsearch拉取镜像创建数据卷创建网络elasticsearch容器#xff0c;启动#xff01;踩坑#xff1a;虚拟机磁盘扩容 Docker安装部署Kibana拉取镜像Kibana容器#xff0c;启动#xff01; 安装IK分词器安装方式一#xff1a;直接从github上下载… 文章目录 Docker安装部署elasticsearch拉取镜像创建数据卷创建网络elasticsearch容器启动踩坑虚拟机磁盘扩容 Docker安装部署Kibana拉取镜像Kibana容器启动 安装IK分词器安装方式一直接从github上下载安装方式二修改版本信息 Docker安装部署elasticsearch
在我发的上一个博客里记录了如何安装7.x版本的elasticsearch我在跟着教学学习Java Rest Client的时候发现在elastic的官网上Java Rest Client已经被标注为过时了elastc提供了全新的Elasticsearch Java API Client作为程序员应该勇于去尝试新技术因此我决定继续尝试使用elasticsearch8.x版本。
elasticsearch已经出到8.10.4,官方推荐使用8.10.2,docker镜像有8.10.2但暂时没有8.10.4,IK分词器提供了8.10.4但没有提供8.10.2。
综合考虑之下原则8.10.2(毕竟官方都没提供8.10.4的镜像我总不会闲到另辟蹊径自己打包8.10.4版本的镜像吧)IK分词器版本问题将使用一个sao操作解决
拉取镜像
docker pull elasticsearch:8.10.2创建数据卷
一般来说我们不希望在elasticsearch容器停止时丢失elasticsearch中的文件因此我们创建一个数据卷来关联elasticsearch的data文件夹。在elasticsearch的使用中我们可能会安装各种插件因此创建了另一个数据卷来关联elasticsearch的plugins文件夹
docker volume create es-data
docker volume create es-plugins创建网络
一般来说我们在使用elasticsearch的时候会结合kibana一起使用为了他们能够正常关联我们创建一个网络来连接他们
docker net create es-netelasticsearch容器启动
因为我是单机启动所以将discovery.type设置为single-node
es-net为上一步我们创建的网络名
docker run \
-d \
--name es \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-e discovery.typesingle-node \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
elasticsearch:8.10.2访问9200端口这次你不会看到任何东西因为8.x版本已经默认采用https了。
访问https://[yourIp]:9200此时会显示这是一个不安全的连接选择无视风险继续访问此时浏览器会弹出一个窗口让你输入用户名和密码。
elastic是一个默认账户而其密码是随机生成的。
首先我们进入elasticsearch容器中执行重置密码的命令
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic接下来新生成的密码将会打印到控制台。
将用户名和密码输入浏览器中的登录窗口。出现下面这串字符串就成功了。
{name: ab675a286e72,cluster_name: docker-cluster,cluster_uuid: ZdLfD65lQdKStAJi1yWMMQ,version: {number: 7.17.13,build_flavor: default,build_type: docker,build_hash: 2b211dbb8bfdecaf7f5b44d356bdfe54b1050c13,build_date: 2023-08-31T17:33:19.958690787Z,build_snapshot: false,lucene_version: 8.11.1,minimum_wire_compatibility_version: 6.8.0,minimum_index_compatibility_version: 6.0.0-beta1},tagline: You Know, for Search
}踩坑虚拟机磁盘扩容
我之前选择安装7.x版本的原因就是我执行重置密码时会显示集群状态为RED执行失败。我在查看了运行日志后发现是因为磁盘占用达到了预警线90%只需给磁盘扩容就好了。
这里只分享图形界面的扩容方法以ubuntu为例。
首先虚拟机关机在虚拟机设置界面选择磁盘扩容。
开机安装工具Gparted
apt-get install gparted然后选择你要扩充的分区。点击左上角的扩容如果显示无法给只读权限的分区扩容右键查看该分区挂载在哪个路径下使用root用户修改权限 我这是挂载在/和/var/snap/firefox/common/host-hunspell两个路径所以输入以下命令结束。
mount -o remount -rw /
mount -o remount -rw /var/snap/firefox/common/host-hunspellDocker安装部署Kibana
Kibana 是为 Elasticsearch设计的开源分析和可视化平台
拉取镜像
docker pull kibana:8.10.2Kibana容器启动
ELASTICSEARCH_HOSTS环境变量为elasticsearch服务的地址其中http://es:9200中的es是我们运行elasticsearch容器时起的别名
es-net为我们在之前创建的网络的名称
docker run \
-d \
--name kibana \
--net es-net \
-p 5601:5601 \
kibana:8.10.2访问5601端口会要求你输入elasticsearch的令牌
进入elasticsearch容器获取kibana的令牌
docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana接下来会要求你输入六位数的kibana验证码进入kibana容器获取验证码
docker exec -it kibana bin/kibana-verification-code 完成以上两步之后你只需要输入elasticsearch的用户名和密码就能正常使用kibana了
安装IK分词器
IK分词器没有8.10.2版本我们先下载8.10.4版本按之前的步骤来。
安装方式一直接从github上下载
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.10.4/elasticsearch-analysis-ik-8.10.4.zip安装方式二
之前我们将es-plugins数据卷挂载到了es容器内的plugins文件夹。
我们先使用魔法从github上下载
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.10.4/elasticsearch-analysis-ik-8.10.4.zip
然后将压缩包解压到数据卷对应的位置然后重启elasticsearch容器即可。
修改版本信息
打开IK分词器所在的位置打开 plugin-descriptor.properties 文件将version和elasticsearch.version的值从8.10.4修改为8.10.2重启容器完成。