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


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


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容