❤️️💚💙💛🧡💜🖤🤍🧡

大家好!我是曾续缘🥰

欢迎关注💕

❤️点赞 👍 收藏 ⭐再看,养成习惯

🔥钟不会逆时针而转,时光也不会为谁停留,与其为流逝的时光惶恐不安,还不如踏踏实实抓住每分每秒。📚

大家好,我是曾续缘。在上一个教程中,我们成功安装了docker,这次我们将使用Docker来搭建Elasticsearch与Kibana的环境,并实现它们的互联。

1. 创建自定义网络

首先,我们需要创建一个自定义网络,让Elasticsearch和Kibana能够互相通信。在命令行中执行以下命令:

docker network create es-net

在这里插入图片描述

在Docker中,网络可以用来连接多个容器,让它们能够相互通信。

通过创建自定义网络,我们可以实现以下目的:

  1. 容器通信:自定义网络允许在同一网络中的容器之间进行通信。通过将容器连接到相同的网络,它们可以通过容器名称或IP地址相互访问,而无需暴露主机端口。
  2. 隔离性:自定义网络提供了一种隔离容器的方式,使得不同网络中的容器默认情况下无法直接通信。这增加了容器之间的安全性,并减少了不必要的暴露。
  3. 连接外部网络:自定义网络还可以用于将容器连接到外部网络,例如主机网络或其他自定义网络。这样,容器可以访问Internet或与其他服务进行通信。

2. 拉取Elasticsearch镜像并创建挂载点目录

拉取Elasticsearch的Docker镜像

docker pull elasticsearch:8.7.0

在这里插入图片描述

3. 建用于持久化存储数据的挂载点目录

创建用于持久化存储数据的挂载点目录:

mkdir -p /usr/local/es/{data,config,plugins}

授权挂载点目录的访问权限:

chmod 777 /usr/local/es/{data,config,plugins}

在这里插入图片描述

4. 启动Elasticsearch容器

现在,我们可以通过以下命令启动Elasticsearch容器:

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms128m -Xmx128m" \
elasticsearch:8.7.0
  • docker run:表示启动一个新的Docker容器。
  • -d:表示以“detached”模式运行容器,即容器在后台运行(即“守护进程”模式)。
  • --restart=always:指定容器应该在任何情况下都自动重启,确保Elasticsearch服务不会意外停止。容器随docker自动启动。
  • --name es:给容器命名为“es”,方便管理和查找。
  • --network es-net:将容器连接到名为“es-net”的自定义网络,确保容器可以与其他服务进行通信。
  • -p 9200:9200:将容器内部的9200端口映射到主机的9200端口上。这是Elasticsearch REST API使用的默认端口。
  • -p 9300:9300:将容器内部的9300端口映射到主机的9300端口上。这是Elasticsearch节点之间通信使用的端口。
  • --privileged:授予容器特权,使其可以访问主机的设备和文件系统。
  • -v /usr/local/es/data:/usr/share/elasticsearch/data:将主机上的/usr/local/es/data目录挂载到容器内部的/usr/share/elasticsearch/data目录上,以便持久化存储Elasticsearch数据。
  • -v /usr/local/es/plugins:/usr/share/elasticsearch/plugins:将主机上的/usr/local/es/plugins目录挂载到容器内部的/usr/share/elasticsearch/plugins目录上,以便安装和管理Elasticsearch插件。
  • -e "discovery.type=single-node":指定Elasticsearch的发现类型为“单节点模式”,因为我们只有一个Elasticsearch节点。
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":指定JVM堆内存的最小和最大大小,这里设置为512MB。这是Elasticsearch所需的最小值,可以根据需要进行调整。
  • elasticsearch:8.7.0:指定要使用的Docker镜像的名称和版本号。在本例中,使用的是Elasticsearch 8.7.0版本的镜像。

在这里插入图片描述

要删除一个已创建的Docker容器,您可以使用以下命令:

docker rm -f es

这将删除名为"es"的容器。使用"-f"标志可以强制删除正在运行的容器。

5. 关闭密码安全验证

将ES容器内的配置文件elasticsearch.yml复制到本地目录/usr/local/es/config/。这样可以方便地对配置文件进行修改。

docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /usr/local/es/config/

在这里插入图片描述

打开刚刚复制的配置文件。

vim /usr/local/es/config/elasticsearch.yml

关闭ES的密码安全验证功能。

xpack.security.enabled: false

在这里插入图片描述

将修改后的配置文件重新复制回ES容器内的配置目录,以使修改生效。

docker cp /usr/local/es/config/elasticsearch.yml es:/usr/share/elasticsearch/config/

重启ES容器,使新的配置生效。

docker restart es

使用浏览器打开 http://<your_ip>:9200。如果一切顺利,我们将看到类似于您提供的截图,显示ES的基本信息。

在这里插入图片描述

6. 拉取Kibana镜像

类似地,我们也需要拉取Kibana的Docker镜像。

docker pull kibana:8.7.0

在这里插入图片描述

7. 建用于持久化存储数据的挂载点目录

创建用于持久化存储数据的挂载点目录:

mkdir -p /usr/local/kibana/{data,config}

授权挂载点目录的访问权限:

chmod 777 /usr/local/kibana/{data,config}

在这里插入图片描述

8. 启动Kibana容器

我们可以通过以下命令启动Kibana容器:

docker run -d \
--name kibana \
--network es-net \
-p 5601:5601 \
-v /usr/local/kibana/data:/usr/share/kibana/data \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.7.0
  • -p 5601:5601: 这个选项指定端口映射,将Docker主机上的端口5601映射到容器内部的端口5601,这样就可以通过主机上的IP地址和端口访问Kibana Web界面。
  • -e ELASTICSEARCH_HOSTS=http://es:9200: 这个选项是设置一个环境变量,其中ELASTICSEARCH_HOSTS指定了Elasticsearch的地址

这个命令会启动一个名为"kibana"的Kibana容器,并将其连接到之前创建的自定义网络"es-net"。容器将会在后台运行。

我们还将主机的5601端口映射到容器的5601端口,以便可以通过主机的IP地址访问Kibana的Web界面。

在环境变量ELASTICSEARCH_HOSTS中,我们指定了Elasticsearch的地址。这样,Kibana就能够连接到Elasticsearch,并显示其数据。

在这里插入图片描述

9. 配置中文

将Kibana容器中的配置文件kibana.yml复制到本地目录

docker cp kibana:/usr/share/kibana/config/kibana.yml /usr/local/kibana/config/

打开复制到本地的kibana.yml文件

vim /usr/local/kibana/config/kibana.yml

添加以下配置来设置Kibana的语言为中文

i18n.locale: "zh-CN"

在这里插入图片描述

在这里插入图片描述

将修改后的kibana.yml文件复制回Kibana容器

docker cp /usr/local/kibana/config/kibana.yml kibana:/usr/share/kibana/config/

重新启动Kibana容器使配置生效

docker restart kibana

10. 测试Kibana是否安装成功

最后,我们可以通过浏览器访问虚拟机地址+端口号,即http://<your_ip>:5601/,来测试Kibana是否安装成功。

http://localhost:5601/

在这里插入图片描述

如果一切正常,您应该能够看到Kibana的欢迎界面。

11. 安装IK分词器

如果您需要在Elasticsearch中安装IK分词器,可以进入Elasticsearch容器,并执行以下命令:

docker exec -it es /bin/bash
  • docker exec:这是Docker命令的一部分,用于在运行中的容器内部执行命令。
  • -it:这是两个选项的组合。-i表示交互式操作,-t表示分配一个伪终端。结合起来,这两个选项允许用户与正在运行的容器进行交互,并提供一个类似于本地终端的命令行界面。
  • es:这是要操作的目标容器的名称或ID,即"elasticsearch"容器的名称。
  • /bin/bash:这是要在容器内部执行的命令,即启动一个Bash shell。Bash shell是一个常见的Unix shell,它为用户提供了在容器内部执行命令和操作的接口。

在这里插入图片描述

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.0/elasticsearch-analysis-ik-8.7.0.zip

./bin/elasticsearch-plugin表示执行Elasticsearch的插件管理工具,install是指示该工具安装插件的命令。后面的URL链接https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.0/elasticsearch-analysis-ik-8.7.0.zip指向插件的压缩包文件。

运行该命令时,Elasticsearch会自动下载插件压缩包,并将其解压到适当的目录中。

在这里插入图片描述

以上就是使用Docker搭建Elasticsearch与Kibana环境的详细步骤。希望本教程对您有所帮助!

Logo

更多推荐