初识ELK

初衷

  • 首先想谈谈自己为什么要了解ELK以及写这篇文章的原因。
  • 申明一下我是一个刚入行的小白,主要工作是数据运营(取数工具人);此文主要来记录学习ELK的一些心路历程,如果你还没有听过ELK,或者想了解什么是ELK,或者跟我一样是个小白,那就请你继续看下去吧~
  • 最近在公司里面用SQL取数总不能满足运营业务的需求,我只能去找大佬要数据,大佬对我说需要ES来取数,我就一头问号脸?什么是ES?后面又有个大佬跟我说以后用ELK,我又一脸懵逼,什么是ELK?我立马问大佬什么是ELK?大佬大大巨忙巨忙,扔下这句话就走了。
  • 为了成为一个合格的取数工具人,为了以后有人找我要数据,我立马就说好的没问题,可以弄出来,我就开始找资料,找视频开始学习啦~
  • p.s 此文主要是为了记录一些学习的心路历程,可能参考性不大,但可以看看最后的链接,都是大佬们的优秀的文章

一、什么是ELK?

  • ELK,指的就是 Elastic Stack。

  • “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。

  • Elasticsearch(简称ES) ,它是一个实时的分布式搜索和分析引擎, 它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎Apache Lucene基础上的搜索引擎,使用Java语言编写。

  • Logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集(如:读取文本文件)、解析,并将数据发送给ES。

  • Kibana 为Elasticsearch提供了分析和可视化的Web平台。它可以在Elasticsearch的索引中查找、交互数据,并生成各种维度表格、图形。

  • Elastic Stack 是 ELK Stack 的更新换代产品。

  • ELK = Elastic Stack (Elasticsearch、Logstash 、 Kibana)

个人理解

  • 数据管道—Logstash是服务器端数据处理管道,同时从多个来源采集数据、转换数据,将数据传输给Elasticsearch
  • 存储/仓库—Elasticsearch将数据收集提取出来
  • 数据可视化—Kibana将从Elasticsearch获取的数据进行二次加工,最终以表格、图形呈现

二、ELK的用途

  • 传统意义上,ELK是作为替代Splunk的一个开源解决方案。Splunk 是日志分析领域的领导者。日志分析并不仅仅包括系统产生的错误日志,异常,也包括业务逻辑,或者任何文本类的分析。而基于日志的分析,能够在其上产生非常多的解决方案,譬如:
  • 1.问题排查。日志分析技术显然问题排查的基石。基于日志做问题排查,还有一个很帅的技术,叫全链路追踪,比如阿里的eagleeye或者Google的dapper,也算是日志分析技术里的一种。
  • 2.监控和预警。日志,监控,预警是相辅相成的。基于日志的监控,预警使得运维有自己的机械战队,大大节省人力以及延长运维的寿命。
  • 3.关联事件。多个数据源产生的日志进行联动分析,通过某种分析算法,就能够解决生活中各个问题。比如金融里的风险欺诈等。这个可以可以应用到无数领域了,取决于你的想象力。
  • 4.数据分析。

个人理解

  • 就我目前的工作而言,如果单纯只是看用户的订单数据,只能在一定程度上反映业务状况,如果需要知道用户整个业务动作,单纯只看关系型数据库里面存储的数据内容是远远不够的,需要从日志里面提取相关的数据。但一是数据量特别巨大,二是当前需要的信息可能不多,需要从大量日志中提取有用数据这个就是一个难点,而ELK出现就是解决这样一个问题;ELK分布式搜索方式可以提高提取数据的速度,感觉跟多线程一样
  • 出现了这样的一种方式,不管是对于运维、开发、还是数据分析,都可以从海量的日志文件中提取有用的东西,进而更好的发现异常,推进生产

补充知识

  • Splunk,Splunk Enterprise 是用于搜索、分析和可视化机器数据的软件平台,所谓机器数据,是指IT基础架构或企业内网站、应用程序、传感器、网络设备等生成的数据。
  • 在您定义数据源后,Splunk Enterprise 会对数据流建⽴索引并将其解析为⼀系列可供查看和搜索的事件。您可以使⽤Splunk提供的搜索处理语⾔(SPL)或交互式数据透视表功能来创建报表和可视化仪表板。

三、ELK火热的原因?

1、数据(日志)的日益增多

2、开源

  • 这点我就想到之前学Linux时,老师讲到为什么一般服务器系统采用Linux而不是windows,其中很大一部分原因就是开源。因为Linux是开源的,一旦发现系统有漏洞,就会有人在源代码上进行维护,但windows则不行,因为它的源代码没有公开。

3、行业属性

  • 有些行业对日志的依赖是非常大的,比如CDN日志除了能排查错误,对其分析还能对CDN调度等很多方面产生影响,这些都是实打实的经济效益。

4、运维自身发展

  • 运维本身也在发展,可能一直在刀耕火种的年代。而日志对于运维来说,应该算是命根子了。对一个成体系的,标准化的日志分析方案的需求,也是历史发展的必然。ELK在恰当的时候产生,运维接受它就是自然而然的了。

5、ELK自身属性问题

  • ELK能解决的核心问题,覆盖面也广,标准化,易扩展集成,开发和运维都对其感冒
  • ELK本身非常易用,现在也有一个非常好的社区,加上需求如此之大,不火都不行。

6、大数据导致机器开始变得廉价

  • 大数据的一个很好的副作用是让机器在某种意义上变得廉价了。少则几十上百台,多则上万甚至几十万台。服务器数量的急速攀升促进了很多技术的发展,典型的比如现在火的不要不要的深度学习。这就意味着,拿出几十台,上百台服务器做日志分析,一点问题也没有,集中式的日志分析慢慢成为主流。而ELK也是一个典型的集中式日志分析方案。

7、写入时计算->查询时计算

  • 所谓写入时计算是指将数据经过较为复杂的处理,聚合,得到的结果直接面向查询。写入时计算规则由查询需求决定。随着存储格式的不断进步,譬如列式存储等的普及,以吸强大的计算资源(一个ES集群动则上百台),使得直接存储原汁原味的数据,然后查询的时候做各种计算变得可能。而ELK已经提供较为强大的查询功能。总体而言,写入时计算的大方向是往查询时计算转化。查询时计算最大的优势是支持任意查询,不丢失信息。

补充知识

  • CDN(Content Delivery Network),内容分发网络)是互联网网站、应用上极其重要的基础设施,通过CDN,终端用户可直接从边缘节点访问各种图片、视频资源,避免直接访问源站。这对于降低访问延时、提升体验有很大帮助,也有助于源站降低负载,容应对流量高峰,保证服务的稳定。在(短)视频、直播等对网络流量很大需求的领域,CDN作用尤其重要。

四、ELK简介

  • ELK是三个开源软件的缩写,分别为: Elasticsearch、 Logstash以及Kibana ,它们都是开源软件。不过现在还新增了一个Beats, 它是一个轻量级的日志收集处理工具(Agent),Beats占用资源少,给于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具,目前于原本的ELK Stack成员中加入了Beats 具所以已改名为Elastic Stack。

  • Elastic Stack包含

  • Elasticsearch是个开源分布式搜索引擎, 提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口, 多数据源,自动搜索负载等。

  • Logstash是用来日志的搜集、分析、过滤日志工具,支持大量的数据获取方式。一 般工作方式为c/s架构,client端安装在需要收集日志的主机上, server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

  • Kibana也是一 个开源和免费的工具,Kibana可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助汇总分析和搜索重要数据日志。

  • Beats在这里是一 个轻量级日志采集器, 其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、 解析日志,但是Logstash对内存、cpu、 i0等资源消耗比较高。相比Logstash, Beats所占系统的CPU和内存几乎可以忽略不计

  • ELK Stack (5.0版本之后) -> Elastic Stack == (ELK Stack + Beats)。前Beats包六种工具

  • Packetbeat:网络数据(收集网络流量数据)

  • Metricbeat:指标(收集系统、进程和文件系统级别的CPU和内存使用情况等数据)

  • Filebeat:日志文件(收集文件数据)

  • Winlogbeat: windows事件日志(收集Windows事件日志数据)

  • Auditbeat:审计数据(收集审计日志)

  • Heartbeat:运行时间监控(收集系统运行时的数据)

五、简单了解Filebeat

Filebeat由两个主要组件组成: prospectors 和harvesters。这两个组件协同工作将文件变动发送到指定的输出中。

  • Prospector (勘测者) :负责管理Harvester并找到所有读取源。
  • Harvester (收割机) :负责读取单个文件内容。每个文件会启动一个Harvester,每个Harvester会逐行读取各个文件,并将文件内容发送到指定输出中。

六、简单了解Logstash

  • Logstash事件处理有三个阶段: inputs — fiters — outputs。是一个接收、 处理、转发日志的工具。支持系统日志、webserver日志、错误日志、应用日志,总之包括所有可以抛出来的日志类型。

七、简单了解Kibana

  • Kibana是一个开源的分析和可视化平台, 设计用于和Elasticsearch一起工作。你可以用Kibana来搜索、查看、并和存储在Elasticsearch索引中的数据进行交互。你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。

参考链接

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值