docker 安装 elasticsearch + kibana [最新 8.0.1 ] 最详细的安装教程

4,906 阅读2分钟

背景

鉴于网上大部分是6 或者7的教程,有点老旧,使用最新版8.0.1。

因为在安装中遇到一点配置问题,遂去查阅文档,并且这部分网上比较少,所以记录一下,方便后面的同学学习使用elasticsearch最新版给个参照。

image.png

本机环境

# elasticsearch kibana 2个版本要一一对应
➜  conf docker images 
REPOSITORY      TAG       IMAGE ID       CREATED       SIZE
elasticsearch   8.0.1     a19fb2049f96   13 days ago   652MB
kibana          8.0.1     9fab8ca82613   13 days ago   953MB

安装

步骤一:创建elastic网络

docker network create elastic

步骤二:docker run 并指定网络 elastic 不然后续没法通信

# -e ES_JAVA_OPTS="-Xms512m -Xmx512m"  如果是在测试阶段 建议加上这个配置,不然可能会老是断掉

docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -t elasticsearch:8.0.1

注意:

  • 步骤二会产生一个token,用于步骤三的登陆
  • token 有效期是半个小时
-> Configure other nodes to join this cluster:
* Copy the following enrollment token and start new Elasticsearch nodes with `bin/elasticsearch --enrollment-token <token>` (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjAuMSIsImFkciI6WyIxNzIuMjQuMC40OjkyMDAiXSwiZmdyIjoiNmE4ZWM4NjFlZDk2M2Q4NGUzMjk0ZTc4OTZjZmM0ZmUwOTYyYWY4YjgwZWQzYjNiM2VlZDA5OTE1MDZhZTQwMyIsImtleSI6ImVpTVdjMzhCNUFtZHUyblFzN2Y2OlRhalU1OXJVUWZPQ1JDNnFGbEphb1EifQ==

  If you're running in Docker, copy the enrollment token and run:
  `docker run -e "ENROLLMENT_TOKEN=<token>" docker.elastic.co/elasticsearch/elasticsearch:8.0.1`

image.png

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

image.png

➜  ~ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                            NAMES
14bdcb85f7e9   elasticsearch:8.0.1   "/bin/tini -- /usr/l…"   10 minutes ago   Up 10 minutes   0.0.0.0:9500->9200/tcp, 0.0.0.0:9600->9300/tcp   es-node01

# 进入 elasticsearch 镜像 
➜  ~ docker exec -it 14bdcb85f7e9  /bin/bash

# 用 elasticsearch-create-enrollment-token 生成新token
elasticsearch@14bdcb85f7e9:~$ bin/elasticsearch-create-enrollment-token --scope kibana
WARNING: Owner of file [/usr/share/elasticsearch/config/users] used to be [root], but now is [elasticsearch]
WARNING: Owner of file [/usr/share/elasticsearch/config/users_roles] used to be [root], but now is [elasticsearch]
eyJ2ZXIiOiI4LjAuMSIsImFkciI6WyIxNzIuMjQuMC4yOjkyMDAiXSwiZmdyIjoiZTg2MzVkNTQxNDM4ZTkyZDU4NDE4NDExNjVhZjQ4Y2FlZmJjYmZhMmI1N2RlNzAxODgwYjUxNzcxYWY1MmJmNyIsImtleSI6IjQ1UTZjMzhCTnhoZ19Zc1oxWUh0OmI0SEhrWjZKVE5tZnpqTWp3WGVsNkEifQ==

image.png

步骤三 指定网络 elastic 不然后续没法通信

docker run --name kib-01 --net elastic -p 5601:5601 kibana:8.0.1

image.png

image.png

打开http://0.0.0.0:5601/?code=414780 是不是很激动,然而配置刚开始,填入步骤二的token

image.png

注意: 如果这里停在Completing setup,并转圈很久的话,应该是刚刚elasticsearch改token导致elasticsearch停止了,这里启动下elasticsearch就好,问题不大。

➜  conf docker start 14bdcb85f7e9
14bdcb85f7e9

结果

 ~ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                            NAMES
6b55c628936c   kibana:8.0.1          "/bin/tini -- /usr/l…"   21 minutes ago   Up 21 minutes   0.0.0.0:5601->5601/tcp                           kib-01
14bdcb85f7e9   elasticsearch:8.0.1   "/bin/tini -- /usr/l…"   33 minutes ago   Up 16 minutes   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   es-node01

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

image.png

➜  flink docker start 14bdcb85f7e9
14bdcb85f7e9

步骤四 设置账号密码

image.png

看到账号密码是不是很慌,之前没有设置这个,查阅文档

image.png

➜  ~ docker exec -it 91197a2a35cc  /bin/bash
elasticsearch@91197a2a35cc:~$ bin/elasticsearch-reset-password -u elastic
This tool will reset the password of the [elastic] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]y


Password for the [elastic] user successfully reset.
New value: edBcP-3ciGogXaQ_IXtd
elasticsearch@91197a2a35cc:~$

image.png

image.png

End,就可以操作了

image.png

image.png

进阶

汉化

  • 打开 /usr/share/kibana/config/kibana.yml
  • 在文档末尾加入
i18n.locale: zh-CN
  • 重启kibana

image.png

来源