常规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其实是启动成功了的。
如下图.
docker pull kibana:8.1.0 docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:8.1.02.2 登入?
然后就会成功。
接下来就会惊喜地发现,进不去—怎么跟7.x差别这么大?!
如下图
此图需要填token,token在上面的那个终端截图处已经提到了。
记好内容,填进去就行。
然后进入下一步
2.3 进入kibana 2.4 进入登录页
蛤? 还有个登录页?
我哪里知道账号啊(哭)?
这里把前面提到的终端截图再发出来,圈出重点。
经尝试,elastic是用户名,下面的是密码。
下面看到另一个惊喜。
验证码哪里来呢?
还得自己在kibana中产生!
这时候,只能按要提示,还好我们可以使用docker exec -it 命令进入容器。
如:
docker exec -it containerId /bin/bash
然后执行图中浅紫色内容。
得到如图。
填入验证码,登录成功。
自此,就可以在kibana中疯狂操作了。
补充当然,你可能会忘记记录或者没有机会记住这些密码等内容,都可以自动生成,比如es用户。
https://www.cnblogs.com/sanduzxcvbnm/p/14267006.html
上个我产生登录用户的图。
发现里面不得不学习很多新东西,如什么 fleet agent之类,有点困扰,先记录一下。
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)



