【elk-day01】es和kibana搭建及验证---Mac-Docker

Mac系统使用Docker下载搭建和验证es+kibana

Docker下载安装

Docker Desktop官网安装下载地址

说明一下为什么要安装desktop版本的docker,因为docker作为工具使用,我们需要的是开箱即用,没有必要非得整那种dockerserver什么的手动进行安装,一大堆配置很麻烦,这个desktop很适合新手使用,查看管理镜像和容器非常方便

  • 下载完之后打开docker.dmg文件,将docker的图标拖动至application
  • 打开application中的docker程序,不知道怎么打开的,快捷键command+空格出现搜索框,搜索docker,然后选择刚刚安装的docker图标按回车,等一会,会打开dockerdesktop的界面,第一次用docker的话就按照默认选择直接安装即可,建一最好创建登陆自己的账号,这样以后换电脑还能同步一些数据

es安装

  • 按照如下方式搜索选择镜像进行下载,新手建议选择官方镜像,我这里选择的是最新8.11.3版本
  • 这里不要着急在desktop中直接点击运行按钮,最好是通过命令行进行一些配置,例如最基本的端口映射,文件挂载等,这样方便后期找文件和访问方便不受限制
  • 创建es的挂载文件,这里根据个人喜好进行创建

创建挂载文件夹

bash 复制代码
$ mkdir -p ~/es/data
$ mkdir -p ~/es/plugins
$ mkdir -p ~/es/logs
$ cd ~
$ pwd

创建docker专属网络

bash 复制代码
$ docker network create elastic
90c5589fffadaaa93e0e66c917458607e81b79d837647ee80eb38c4922d2162f
  • 执行如下命令来启动es注意这里-v的路径换成 自己~文件夹路径

端口说明

9200:外部访问使用

9300:集群间相互通信使用

bash 复制代码
$ docker run -d \
  --name es \
  --net elastic \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -e "discovery.type=single-node" \
    -v es-data:/Users/mrhan/es/data \
    -v es-plugins:/Users/mrhan/es/plugins \
    -v es-logs:/Users/mrhan/es/logs \
    --privileged \
    -p 9200:9200 \
    -p 9300:9300 \
elasticsearch:8.11.3
83048519c39945c30c2bf34465a20500e73fc559ba4f5f5178a366ea2786def5

启动成功后会在desktop中看到已经启动的容器

也可以通过命令行查看正在运行中的容器

bash 复制代码
$ docker ps
CONTAINER ID   IMAGE                  COMMAND                   CREATED         STATUS         PORTS                                            NAMES
83048519c399   elasticsearch:8.11.3   "/bin/tini -- /usr/l..."   3 minutes ago   Up 3 minutes   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   es

es验证

  • 注意es8.0默认开启了ssl认证,因此验证的时候http是验证不通过的,需要在浏览器中输入https的地址:https://127.0.0.1:9200/

这里需要输入默认的账号密码,但是由于我们是通过docker启动,好像没有看到他的日志,不要慌,我们有两种办法可以解决这个问题,一个就是重置密码,一个就是关闭登录校验
建议重置密码不要关闭登录校验

  • 重置密码
bash 复制代码
#执行以下命令进入容器
$ docker exec -it es /bin/bash
#进入容器之后执行以下命令:bin/elasticsearch-reset-password -u elastic
elasticsearch@83048519c399:~$ bin/elasticsearch-reset-password -u elastic
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]
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: O+PLWc9U=UUFDIOc1P6K

以上输出的结果表明elastic账号 的密码已经被重置为O+PLWc9U=UUFDIOc1P6K

接下来正常登录就会看到如下结果

账号:elastic

密码:O+PLWc9U=UUFDIOc1P6K

  • 关闭认证
bash 复制代码
elasticsearch@db7a23c3ac34:~$ ls
LICENSE.txt  README.asciidoc  config  jdk  logs     plugins
NOTICE.txt   bin              data    lib  modules
elasticsearch@db7a23c3ac34:~$ cd config
elasticsearch@db7a23c3ac34:~/config$ ls
certs                              jvm.options             role_mapping.yml
elasticsearch-plugins.example.yml  jvm.options.d           roles.yml
elasticsearch.keystore             log4j2.file.properties  users
elasticsearch.yml                  log4j2.properties       users_roles
elasticsearch@db7a23c3ac34:~/config$ vi elasticsearch.yml

打开文件如下:

yaml 复制代码
cluster.name: "docker-cluster"
network.host: 0.0.0.0

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically
# generated to configure Elasticsearch security features on 27-12-2023 06:53:43
#
# --------------------------------------------------------------------------------

# Enable security features
#是否需要账号密码
xpack.security.enabled: true
#注册时是否需要账号密码
xpack.security.enrollment.enabled: true

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12

# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------

修改上述文件中的以下配置为false就可以了,然后重启服务

yaml 复制代码
xpack.security.enabled: false
xpack.security.enrollment.enabled: false

访问地址不需要账号密码:https://127.0.0.1:9200/

至此es安装成功!!!

kibana安装

  • 在这里找到跟es同版本的kibana点击pull
  • 执行以下命令启动kibana:
bash 复制代码
$ docker run -d \
  --name kibana \
  --net elastic \
    -p 5601:5601 \
kibana:8.11.3

261b2a93006751bb2aba76482676d85c9e69617a9b467977891ca455582388e6

kibana验证

  • 访问kibana页面:http://localhost:5601/

  • 这里发现需要填写一个token

  • 这里发现需要填写一个token,这个token生成命令如下

bash 复制代码
$ docker exec -it es /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

eyJ2ZXIiOiI4LjExLjMiLCJhZHIiOlsiMTcyLjE4LjAuMjo5MjAwIl0sImZnciI6IjQzNDJiYTg0MGM1NmFmYjRmMTIxYTk1NDc4NDA0NmQ0M2JjMmEzZjAzNGMwMWNlMmI0NGM2NmEzMzBkZGQyMTIiLCJrZXkiOiJZdWVJcW93QlJFTnpLN3ZxdFR1XzpWTDFEZXlMM1FFMnowbUZMTXVpUmR3In0=
  • 将令牌填入上图的Enrollment token中,会来到以下页面需要您填写一个验证码:
  • 获取验证码过程如下:
bash 复制代码
docker ps
CONTAINER ID   IMAGE                  COMMAND                   CREATED          STATUS          PORTS                                            NAMES
261b2a930067   kibana:8.11.3          "/bin/tini -- /usr/l..."   8 minutes ago    Up 8 minutes    0.0.0.0:5601->5601/tcp                           kibana
83048519c399   elasticsearch:8.11.3   "/bin/tini -- /usr/l..."   24 minutes ago   Up 24 minutes   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   es
#这里要将261b2a930067替换成自己电脑上的kibana的container Id
 ~/es  docker exec -it 261b2a930067 bash
kibana@261b2a930067:~$ bin/kibana-verification-code
Kibana is currently running with legacy OpenSSL providers enabled! For details and instructions on how to disable see https://www.elastic.co/guide/en/kibana/8.11/production.html#openssl-legacy-provider
Your verification code is:  350 931

接下来会看到登录页面登录前文es的账号密码即可

账号:elastic

密码:O+PLWc9U=UUFDIOc1P6K

登录成功之后会看到欢迎界面,至此es和kibana已经全部安装链接成功,后续使用一般点击explore on my own 自行使用就可以了

相关推荐
吴佳浩1 天前
OpenClaw macOS 完整安装与本地模型配置教程(实战版)
人工智能·macos·agent
Java陈序员2 天前
轻量强大!一款现代化的 Kubernetes 集群管理与监控工具!
云原生·容器·kubernetes
Sheffield3 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield4 天前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
马艳泽4 天前
win10下运行Start Broker and Proxy报错解决
docker
Elasticsearch4 天前
需要知道某个同义词是否实际匹配了你的 Elasticsearch 查询吗?
elasticsearch
用户13573999256605 天前
Windows 从 0 搭建 WSL2 原生 AI 开发环境:Codex + Docker + VSCode
docker
vi_h5 天前
在 macOS 上通过 Docker 安装并运行 Ollama(详细可执行教程)
macos·docker·ollama
黑心老魔5 天前
通过 Docker 创建开发环境
docker·开发环境
冬奇Lab5 天前
一天一个开源项目(第41篇):Workout.cool - 现代化开源健身教练平台,训练计划与进度追踪
docker·开源·资讯