Docker安装ElasticSearch+Kibana

ElasticSearch是什么?

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。

-- 以上引用自《百度百科》

Docker是什么?

请参阅官网:https://www.docker.com/

Docker如何安装?

Windows或Mac等支持桌面的平台,直接下载桌面版安装即可

为了便于本地临时测试ElasticSearch,本文使用Docker安装ElasticSearch。

本文中的操作系统为MacOS,理论上MacOS终端的大部分功能,Windows的命令提示符或PowerShell也应该可以做到,如果操作不便捷,也可以在Docker桌面版UI中操作

由于本机操作系统中已安装Docker,本文不再演示Docker安装过程

本文为安装配置记录,步骤记录可能有遗漏


确认Docker版本

本机已安装Docker的版本为:4.11.1(非最新版本)


安装ElasticSearch 

依据自己需要实际情况安装对应的版本

由于服务器上的版本为8.4.1,所以本地测试环境也安装8.4.1版本的ElasticSearch

elastic官方地址:https://www.elastic.co/guide/en/elasticsearch/reference/8.4/docker.html

下文中,在终端中执行的命令,也是根据网址中的说明文档来操作的

首先为Elasticsearch创建单独的网络,便于后续通讯

打开终端, 执行以下语句:

docker network create elastic

其中,elastic为创建的网络名称,名称可自由指定,需要注意,下文中会使用该网络名称,所以请记下来备用

网络创建完成后,从远程仓库拉取ElasticSearch镜像

打开终端,执行以下语句:

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.4.1

其中后面的数字 8.4.1为版本号

版本号根据实际需要指定,如果对版本号不确定,可以查看上面的官网链接,官网中罗列了ElasticSearch的各个版本。

下载完成后,在终端执行以下语句,来创建容器并启动运行:

docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t docker.elastic.co/elasticsearch/elasticsearch:8.4.1

 其中:

--name,指定容器名称,名称可以自由指定,命名需遵循命名规则,此处使用es-node01

--net,指定使用的网络,即前面创建的网络

-p,绑定的端口,即容器 9200 端口绑定本地的 9200 端口,后面的9300同理。9200、9300为ElasticSearch默认的端口。本地端口可以更改

-t,后面的跟的是前面拉取的镜像名称,注意路径,需要写完整路径


执行之后,终端会输出很多内容,需要留意最后面的内容,其中包含了用户名、密码,以及配置Kibana需要的token,建议复制到单独的文件中保存备用。


注意,上面的内容包含配置Kibana验证的token,30分钟内有效,如果token过期,请按照文章末尾的提示流程操作。


安装 Kibana

ElasticSearch安装完成之后,接下来安装 Kibana

参考地址:https://www.elastic.co/guide/en/kibana/8.4/docker.html

打开新的终端窗口,输入以下语句从官方仓库中拉取kibana:

docker pull docker.elastic.co/kibana/kibana:8.4.1

其中8.4.1为Kibana的版本号。

需要注意,Kibana版本号需要与前面安装的ElasticSearch一致,上面安装的ES版本为8.4.1,此处Kibana的版本也选择8.4.1

数据下载完成之后,在终端执行以下语句来创建Kibana容器并启动运行:

docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.4.1

其中:

--name:名称

--net:网络,需与ElasticSearch在同一个网络,即前面创建的elastic

-p: 指定绑定的端口,即容器的5601端号绑定本地的5601端口,本地端口可以更改,Kibana的默认端口为5601

配置完成之后,终端会输出如下内容:

配置Kibana

接下来需要配置Kibana

打开浏览器,输入上面的地址,其中code为随机码,每次安装都不同

http://0.0.0.0:5601/?code=251855

如果打不开,把0.0.0.0替换为:http://127.0.0.1:5601/?code=251855


打开后,页面需要输入token,还记得上面安装ElasticSearch后,终端输出的内容吧?


其中加粗的就是token,把token复制过来,粘贴到页面的输入区域后,点击“Configure Elastic”进行配置。

配置完成后,会自动转到登录页,此处需要输入用户名和密码来登录:


还是回到ElasticSearch安装后的信息那里,将会看到如上图所示的内容,其中用户名为:elastic,密码为下面的一串字符:


将以上内容分别输入到username、password中,点击“Log in”

登录成功后,会看到类似如下页面:



实际上ElasticSearch+Kibana到此已安装完成



如果Docker安装的桌面版,打开Docker,能看到上面通过命令拉取的镜像,及创建的容器等信息:



如果登录密码忘记,如何重置?

 打开终端,输入以下语句并执行:

docker exec -it es-node01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

 其中:

es-node01: 为 ElasticSearch容器的名称,即前面创建ElasticSearch容器时指定的名称

-u后面的elastic为要重置密码的用户名

执行后会提示是否要重置:


输入:y,回车确认,会生成新的密码:


如果token过期,如果重新生成?

token的有效期为30分钟

如果token过期,或者清屏了,可以用如下命令生成新的token


操作流程:

1.打开新的终端,在终端输入并执行以下语句:

docker ps


该语句用于查看正在运行的docker实例

执行后会显示正在运行的docker实例

 2.记下elasticsearch对应的 CONTAINER ID

882e2406c166 

 3.接下来进入 elasticsearch 的实例

在终端执行以下语句:

docker exec -it 882e2406c166 /bin/bash

其中,-it 后面跟的前面提到的 CONTAINER ID

4.进入后,执行下面提示的语句:

bin/elasticsearch-create-enrollment-token --scope kibana

用来生成新的token,使用新生成的token,继续执行后续流程


如何更改Kibana界面语言为中文

如果对于英文界面(尤其一些专有词语)操作不熟悉,可以更改Kibana界面语言为中文

操作流程如下:

1.打开终端,在终端中输入以一语句:

docker ps


该语句用于查看正在运行的docker实例,执行后会显示正在运行的docker实例,记下Kibana对应的 CONTAINER ID:b823e11bdd20

2.接下来进入 Kibana 的实例

在终端执行以下语句:

docker exec -u root -it b823e11bdd20 /bin/bash

其中,-it 后面跟的前面提到的 CONTAINER ID

3.进入后,编辑Kibana配置文件:

vim /usr/share/kibana/config/kibana.yml

是不是提示 vim命令不存在?

在终端中,执行以下命令安装vim:

apt-get update

apt-get install vim

注意:推荐的做法是使用docker 的 -v 参数来挂载本地目录

一般情况下不推荐这种对容器内文件修改的方式,此处是临时修改,以便于演示如何通过修改配置文件来配置中文界面,如果项目长期需要测试运行,不建议使用此种方式。

docker -v参数示例:

docker run --es-node01 -v xxx:xxx -d config

其中,冒号前是本地路径(需要绝对路径),冒号后是容器中的路径


安装完vim命令后,再次执行:

vim /usr/share/kibana/config/kibana.yml

光标移到文件末尾

按“I”键插入,在文件末尾添加

i18n.locale: "zh-CN"

修改完成 英文模式下 按esc退出编辑模式 后保存配置:

按esc键后,再输入::wq

退出容器后(或者关闭终端窗口即可)


4.重启kibana

打开终端,输入:

docker restart b823e11bdd20

其中:b823e11bdd20为kibana容器Id


再次登录,界面语言变成中文了


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容