欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 【橘子ES】使用docker搭建ELK环境

【橘子ES】使用docker搭建ELK环境

2025/2/1 3:56:51 来源:https://blog.csdn.net/liuwenqiang1314/article/details/145316824  浏览:    关键词:【橘子ES】使用docker搭建ELK环境

我们在搭建ELK环境的时候,一般有三种选择。
1、本地安装,你可以到官网把安装包下载下来然后解压,修改配置文件,然后启动,这样比较麻烦,比较考验操作。那有的玩家就要问了,这种操作太吃手感了,有没有比较容易上手的玩法。有的有的,这样的玩法还有两种。
2、容器启动,这就很简单了,拉取镜像,启动容器,都是一键操作的。
3、Elastic cloud,es的官网提供了云服务,你可以注册账号上去直接用,但是免费时间只有14天,后面就得花钱了。当然你可以再找个新账号。这种是最方便的,但是有时间限制。

我们这里重点来说容器启动,首先你确保你的环境上有docker了,不然白扯。

一、拉取镜像

我们先去docker hub上看一下我们要安装的组件的镜像是不是存在,我们先来操作kibana,所以我们直接搜索kibana就可以了。
在这里插入图片描述
我们点进去就看到官方发布的镜像的各个版本以及他的其他信息了。
好的,那我们来拉取kibana的镜像。
在这里插入图片描述
我们使用docker pull kibana来拉取镜像的时候,因为你没指定拉取的哪个版本,,所以他会默认去拉取latest的这个版本,而docker hub上没有这个版本号,所以失败了,那我们就指定一个版本,注意你指定的版本一定是docker hub上存在的,不然你还是会失败。本次我们使用8.4.3这个版本,其余的8的版本也差不多,你可以随便找一个。我们看到docker hub上是有这个8.4.3版本的。
在这里插入图片描述
我们把命令改为docker pull kibana:8.4.3
在这里插入图片描述
ok,此时我们拉取成功了,同样的,我们还需要elasticsearch(简称es)的镜像,而且要注意,es和kibana的版本要保持一致。
命令自然是docker pull elasticsearch:8.4.3,不出意外的话,这个也是可以拉取下来的。
在这里插入图片描述

二、创建网络

我们现在有了镜像,在我们启动容器之前我们需要创建一个docker网络,用于在容器之间通信,这个网络是独立于你宿主机的网络的,他是虚拟的。
其命令就是docker network create 网络名称,我们创建一个docker network create myElkNetwork,他会返回一个网络的唯一标识id,我们这里是38ac953be25f6ad9de506d476c6d80abb43fcdd47c0e0668aa6fc608be4d6da2,实际上没啥用,就是看看有就行。

三、启动容器

我们以单节点最小化的方式启动容器,至于那些命令的详细细节我就不说了,可以看看docker的命令。

docker run -d --name myes01  --net myElkNetwork  -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node"  elasticsearch:8.4.3

这样我们就启动了这个es容器,他的名字叫myes01。
在这里插入图片描述
没有问题,我们可以在浏览器访问一下es的api,然后确定他是不是真的启动成功了。
同样的,我们继续启动kibana:

docker run -d --name myKibana01  --net myElkNetwork -p 5601:5601 kibana:8.4.3

至此我们启动完成了,我们只需要去浏览器打开localhost:5601来确认kibana是不是启动成功即可。
在这里插入图片描述
ok,你会发现他让你输入token 令牌,容器安装就是这样的,你如果本地化安装就没这个问题,我们怎么获取这个token呢。注意,你的这个令牌是kibana访问es的,所以你要去es的容器中去找。你要进入es容器来为kibana生成token。因为es8.x是默认开启密码校验模式的。
我们进入es容器。docker exec -it 容器id /bin/bash
在这里插入图片描述
你可以看到他有一个生成token的命令,我们运行这个命令看下。
在这里插入图片描述
报错了,是因为es内部生成token是要区分是给kibana的还是给es集群的。因为这是两种不同访问方式。所以我们要加上-s “kibana”。
在这里插入图片描述
ok,此时我们就拿到了这个token,贴到kibana的ui界面上看下。
在这里插入图片描述
弹出这个界面,在这里插入图片描述
他让你去kibana的服务上运行bin/kibana-verification-code这个指令,没说的,我们继续进入kibana容器。
在这里插入图片描述
于是我们就生成了这个code,可以正式开启kibana的使用了,是吗,真的可以了吗。
在这里插入图片描述
在你完成了检验之后,你还要输入密码,这很正常,token check和密码账户本来也不一定就是一起的。继续做吧骚年。注意,这个账户密码是你访问es的,所以你需要去es那边,但愿你还没有退出你的es容器。我们继续进入到es容器你会看到这个命令。
在这里插入图片描述
ok,这就是你要执行的。我们来看下他的参数。


elasticsearch@3046fce9312e:~/bin$ elasticsearch-reset-password -h
Resets the password of users in the native realm and built-in users.Option (* = required)  Description                                          
---------------------  -----------                                          
-E <KeyValuePair>      Configure a setting                                  
-a, --auto                                                                  
-b, --batch                                                                 
-f, --force            Use this option to force execution of the command    against a cluster that is currently unhealthy.     
-h, --help             Show help                                            
-i, --interactive                                                           
-s, --silent           Show minimal output                                  
* -u, --username       The username of the user whose password will be reset
--url                  the URL where the elasticsearch node listens for     connections.                                       
-v, --verbose          Show verbose output      
~~
首先-u是带星号的,一定要加,他的作用是标识你要给哪个账户重置密码,在es启动的时候他会默认创建一个叫做elastic的账户。我们就用这个。
-i 一般也要加上,因为他表示交互式,所谓交互式就是你可以和服务对话,他会提醒你要不要创建,创建啥你输入,不然es自己给你生成哪个密码很抽象,你记不住的。
所以我们的命令就是 elasticsearch-reset-password -u elastic -i

在这里插入图片描述
此时我们真的完成了最后一步。登陆吧骚年。
在这里插入图片描述
在这里插入图片描述
完美进入。你发现了吧,很几把麻烦,尤其是集群会更麻烦,后面我会写一篇集群如何部署的文档。

注意,你之后启动容器就直接run就好,别删了重新启动一个新的,这样你还要再来一遍。

至于如果你使用elastic cloud的话,那会方便的多得多,但是只有14天,后面要收费,很贵的哦。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com