自己对日志分析挖掘处理感兴趣,然后自己在学,没有找到太好的视频,都比较零散,或者有的只是讲Elastic,对于ELK的概念,原理不是很清楚,所以自己在网上也有遇到好的文章,讲的非常清楚。链接放在这里,方便查看。

  这篇文章所附的链接,我出于这样的目的:其一,这是一个总分总的结构布局, 先从一篇好的文章开始进行了解,再看一下官方的介绍视频,大致知道elastic stack 的技术范畴,能够给我们带来什么便利,解决什么问题。然后实战,实操,逐个技术的进行拆分开的学习。实操是一件让人非常头疼的事,也是最能提升我们自身价值,丰富我们技术栈的一趴。最后再来一个实战视频,整体的连接在一起。

  自己的学习路线,分享给大家。

# # 我的建议是先看看这篇文章,弄明白ELK做什么的,什么原理,什么架构。

 

# # 另外 看看elastic 官方的讲解视频(具体介绍了elastic能做什么,以及整个生态)

​https://www.elastic.co/cn/webinars/introduction-elk-stack?baymax=rtp&elektra=docs&storm=top-video&iesrc=ctr​

 

# # 这套是黑马的 ELK从入门到实践(这个听着比较舒服一点,如果是系统的学,我建议看这个)

​https://www.bilibili.com/video/av67957955?p=6​

 

# # 千锋的讲解视频 ES(整套)  

​https://www.bilibili.com/video/av75009506?p=33​

 

# # ElasticTalk #1 用 ElasticStack 快速收集和分析 Nginx 日志 讲解视频(大约一个小时)

​https://www.bilibili.com/video/av27123368/​

 

# #  elasticsearch 官方文档

​https://www.elastic.co/guide/cn/elasticsearch/guide/current/_finding_exact_values.html​

 

# # logstash 官方文档

​http://docs.flycloud.me/docs/ELKStack/logstash/get-start/hello-world.html​

 

# # 接下来是我看官方视频的记录内容

 elastic的软件生态

学习ELK的资料_数据

 

 计算机世界的本质,程序的本质,其实也就是数据的输入,数据的处理(可能需要先将数据存放起来),数据的输出,只不过因为需求的不同,而进行了不同的中间过程。

  这张图先看左下角的一块内容,可以看到和我前边提到的本质对应起来了。 beats 是一个轻量级的日志收集的开箱即用的工具,它的优点就在于占用更少的 cup 以及 内存空间。 logstash可以直接用作日志收集的,也可以作为一个单独的服务,来接收 beats 收集到的日志信息。 不管是用不用 beats ,都要用logstash,然后将日志处理完了以后,交给 elasticserch来存储,计算(这就是 elastic的特长所在了,他有近实时的处理能力,秒级别) kibana 就是用来做数据展示的,我把它叫做输出。 

  前边提到的这些内容,都是开源免费的。中间的黄色部分,从数据安全开始向下直到机器学习,是elastic是商业化提供的服务。

 

 

# #   再来说一下elastic stack 成员扮演的角色是什么,以及想要自己搭建一个 日志分析系统应该怎么做

学习ELK的资料_数据_02

  bests 包括了 fileBeat 和 MetricBeat  等 ,filebeat 看前缀就知道它是用来处理文件的,而metricBeat 一般用来收集系统内存 和 CPU 等使用的情况。 beats 充当的就是数据采集的角色,通过监听某个目录下的指定的文件,来采集数据,这里一般采集ngix 日志 或者数据库日志 等等。

  logstash 充当的是数据处理工厂的作用,其实它也可以用作数据的收集,并处理,但是 beat 轻量级的,节省CPU 和 内存。所以 logstash 只能让专业的人做专业的事,而自己乖乖的做数据处理。这里数据的处理是指,从日志文件中收集到数据以后,日志中往往是很长的内容,非结构化。处理就是做一些分割呀什么的。

  elasticserch 充当是存储的觉得,它自己相比较 mysql 这类数据库,自己有独特的处理方法,在存储的基础上能做到秒级别的检索。这里完全就可以理解为数据仓库,用来存放数据的仓库。同时 它提供搜索的功能。

   kibana 充当的是数据展示的作用。数据的来源就是上边提到的 elasticserch,将elasticserch存储并检索到的数据,做一个数据展示的作用。其实这是我们最终想实现的目的。就是看到想看的数据,一些服务器的CPU使用的情况呀,内存使用的情况呀,nginx 日志收集到的用户请求情况呀,等等。