【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 自行使用就可以了

相关推荐
昌sit!3 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
SoraLuna4 小时前
「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
macos·ui·harmonyos
追风林4 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
yqcoder4 小时前
mac 安装 nodemon
macos
一ge科研小菜鸡4 小时前
macOS开发环境配置与应用开发(详细讲解)
macos
hairenjing11234 小时前
使用 Mac 数据恢复从 iPhoto 图库中恢复照片
windows·stm32·嵌入式硬件·macos·word
A ?Charis6 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision6 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge6 小时前
Docker篇(Docker Compose)
运维·docker·容器
北漂IT民工_程序员_ZG7 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes