栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

docker 安装和部署 elk 8.1.0的过程(elasticsearch + kibana + logstash)

docker 安装和部署 elk 8.1.0的过程(elasticsearch + kibana + logstash)

〇、前言

常规rpm等部署elk 7.8.0的方式已经试过了,在之前的一篇博文里,不多说了。
注意这里说的不是elk是最新版本的elk,即8.1.0,不是以前的 7.x或者更早的版本。
以前的elk部署好了直接启动就能用,现在8.x的麻烦一些,多了一些安全性。


一、8.x 与 之前的(如7.x)的不同
就我目前学习研究的情况来看,差别还是挺大的,学起来压力不小。
如非必要,不如还是直接用7.x 来得快,如果你不想要最新版本里的那些花里胡哨的功能特性的话。
但是7.x以及更早的某些版本,有log4j漏洞。具体自己看,见下方链接。

https://hub.docker.com/_/elasticsearch?tab=tags&page=1&name=7.

8.x增强了安全性。

只说我目前感受到的

如之前在机器上分别安装了es,启动后,则可直接通过网页访问到,如下图。

kibana同理,也可以直接通过网页访问,图略。
即以前直到地址和端口,直接就可以访问到。
现在的es安装,启动,通过浏览器也无法访问到了,如下图。

所以安装了es 8.x,启动后网页上看不到不要觉得是出问题了

kibana倒是还可以访问到,但上来就需要输入一些token之类的东西,如下图。

这些密码之类的东西输入完成后最终是可以访问的。


特别注意,es第一次启动时会有这样的日志:

记下来,用得着。
内容如:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-> Elasticsearch security features have been automatically configured!
-> Authentication is enabled and cluster connections are encrypted.

->  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  uda-7Gd0x5p56m3sFbAI

->  HTTP CA certificate SHA-256 fingerprint:
  7ef31f22076b35963822ff18fbb00597704c6e83ba3dd73cb2b6e3f25eca1574

->  Configure Kibana to use this cluster:
* Run Kibana and click the configuration link in the terminal when Kibana starts.
* Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxNzIuMTguMC4yOjkyMDAiXSwiZmdyIjoiN2VmMzFmMjIwNzZiMzU5NjM4MjJmZjE4ZmJiMDA1OTc3MDRjNmU4M2JhM2RkNzNjYjJiNmUzZjI1ZWNhMTU3NCIsImtleSI6InI0SGJmWDhCMjh4QkhncjlYaDBQOmhENEFzUVpUUTI2RDVwMTQ2TkZtMGcifQ==

-> Configure other nodes to join this cluster:
* Copy the following enrollment token and start new Elasticsearch nodes with `bin/elasticsearch --enrollment-token ` (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxNzIuMTguMC4yOjkyMDAiXSwiZmdyIjoiN2VmMzFmMjIwNzZiMzU5NjM4MjJmZjE4ZmJiMDA1OTc3MDRjNmU4M2JhM2RkNzNjYjJiNmUzZjI1ZWNhMTU3NCIsImtleSI6InJvSGJmWDhCMjh4QkhncjlYaDBPOjlhOVNZSkE5UUh1WldDeGx5d2lXTFEifQ==

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

增强了便利性(有学习成本)

比如以前安装和启动了es、kibana,可以通过kibana连接到es,从而操作数据。
在kibana里面可以导入示例数据、通过csv文件导入数据成为es的索引等,但(据我所知)想要批量地、持续地导入大量数据,比如把mysql的某表数据导入到es,还是需要logstash,写好了logstash的配置启动后,会持续地向es导入数据。
但现在的kibana可以直接集成各种数据源,非常多,如mysql的图如下:

即可能不需要logstash了。
这个数据导入我正在尝试。

** 多了不少新概念,不少学习成本**
多了 fleet、integration、agent等好几个新概念,有的学了,挺迷惑的。

其中integration我觉得是很重要的,集成多种功能,甚至目前看来我觉得logstash可能都不需要存在了。

但discover里面找不到直接从csv等地方导入数据的入口了,对新手是个困扰。

二、如何部署 1. es

直接取最新,启动就行。
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

docker pull elasticsearch:8.1.0

docker run --name es01 -p 9200:9200 -p 9300:9300 -it elasticsearch:8.1.0

注意上面已经说过了,如果浏览器访问9200失败不见得是你es启动失败了,只是现在加了安全相关的内容。

其实此时如果我们启动es时不是后台启动的话,即我们可以看到容器的控制台输出,每当我们刷新一下浏览器重新发起一次请求,如http://1.1.1.1:9200的话,就会在控制台看到变化信息。
这也就证明了es其实是启动成功了的。
如下图.

2. kibana 2.1 安装,启动
docker pull kibana:8.1.0

docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:8.1.0

2.2 登入?

然后就会成功。
接下来就会惊喜地发现,进不去—怎么跟7.x差别这么大?!

如下图

此图需要填token,token在上面的那个终端截图处已经提到了。
记好内容,填进去就行。

然后进入下一步

2.3 进入kibana

2.4 进入登录页


蛤? 还有个登录页?
我哪里知道账号啊(哭)?

这里把前面提到的终端截图再发出来,圈出重点。

经尝试,elastic是用户名,下面的是密码。

2.5 蛤?还有验证码?

下面看到另一个惊喜。

验证码哪里来呢?
还得自己在kibana中产生!

这时候,只能按要提示,还好我们可以使用docker exec -it 命令进入容器。
如:
docker exec -it containerId /bin/bash
然后执行图中浅紫色内容。
得到如图。

填入验证码,登录成功。

自此,就可以在kibana中疯狂操作了。

补充

当然,你可能会忘记记录或者没有机会记住这些密码等内容,都可以自动生成,比如es用户。
https://www.cnblogs.com/sanduzxcvbnm/p/14267006.html

上个我产生登录用户的图。

三、其他

发现里面不得不学习很多新东西,如什么 fleet agent之类,有点困扰,先记录一下。

四、感想 关于logstash

logstash以我现在的感觉,可能是要淘汰了,主要是kibana里面有好多的integration(需要研究),可以直接读取数据源,这也就是logstash的功能。

看elk官网的产品里面,已经不提logstash了,这可能就是个信号。

8.x的kibana中新东西好多,感觉重了不少,需要慢慢消化。
但部署确实是如上所述全部成功,先记录这么多。


logstash 的官方文档,docker方式部署logstash
下载:
https://www.elastic.co/cn/downloads/logstash

启动
https://www.elastic.co/guide/en/logstash/current/docker.html

使用具体的配置
https://www.elastic.co/guide/en/logstash/current/docker-config.html

暂存,以后再说。

docker方式启动如图:

 docker run --rm -it -v /docker/logstash/xtcrm-logstash.yml:/usr/share/logstash/config/logstash.conf -v /etc/logstash.yml:/usr/share/logstash/config/logstash.yml -v /docker/logstash-bin/mysql-connector-java-5.1.45.jar:/usr/share/logstash/mylib/5.1.45/mysql-connector-java-5.1.45.jar --network elastic --name logstash02 logstash:8.1.0

注意体会一下两个-v的含义

其他小工具

查看docker容器的IP地址

docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/761039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号