作家
登录

创业公司做数据分析(四)ELK日志系统

作者: 来源: 2017-04-07 09:19:50 阅读 我要评论

作为系列文┞仿的第四篇,本文将重点商量数据采集层中的ELK日记体系。日记,指的是后台办事中产生的log信息,平日会输入到不呵9依υ?件中,比如Django办事下,一般会有nginx日记和uWSGI日记。这些日记分散地存储在不合的机械上,取决于办事的安排情况了。如不雅我们依次登录每台机械去查阅日记,显然异常繁琐,效力也很低,并且也没法进行统计和检索。是以,我们须要对日记进行集中化治理,将所有机械上的日记信息收集、汇总到一路。完全的日记数据具有异常重要的感化:

  1. 信息查找。经由过程检索日记信息,定位响应的bug,找出解决筹划。
  2. 办事诊断。经由过程对日记信息进行统计、分析,懂得办事器的负荷和办事运行状况,找出耗时请求进行优化等等。
  3. 数据分析。如不雅是格局化的log,可以做进一步的数据分析,统计、聚合出有意义的信息,比如根据请求中的商品id,找出TOP10用户感兴趣商品。

ELK是一套开源的集中式日记数据治理的解决筹划,由Elasticsearch、Logstash和Kibana三个体系构成。最初我们扶植ELK日记体系的目标是做数据分析,记得第一个需求是期望应用nginx的日记,大年夜API请求的参数中发掘出用户的地位分布信息。后来该体系在追踪恶意刷量、优化耗时办事等方面都发挥了重要感化,并且跟着对Elasticsearch的认知加深,我们将其应用到了其他方面的数据存储和分析中。 本文的重点是结合自身实践来介绍若何应用ELK体系、应用中的问题以及若何解决,文中涉及的ELK版本是:Elasticsearch 2.3、Logstash 2.3、Kibana 4。

ELK整体筹划

2. nginx日记–>>Logstash–>>消息队列

ELK中的三个体系分别扮演不合的角色,构成了一个整体的解决筹划。Logstash是一个ETL对象,负责大年夜每台机械抓取日记数据,对数据进行格局转换和处理后,输出到Elasticsearch中存储。Elasticsearch是一个分布式搜刮引擎和分析引擎,用于数据存储,可供给及时的数据萌芽。Kibana是一个数据可视化办事,根据用户的操作大年夜Elasticsearch中萌芽数据,形成响应的分析结不雅,以图表的情势展示给用户。

ELK的安装很简单,可以按照“下载->修改设备文件->启动”办法分别安排三个体系,也可以应用docker来快速安排。具体的安装办法这里不具体介绍,我们来看一个常见的安排筹划,如下图所示,安排思路是:

  • 第一,在每台生成日记文件的机械上,安排Logstash,作为Shipper的角色,负责大年夜日记文件中提取数据,然则不做任何处理,直接将数据输出到Redis队列(list)中;
  • 第二,须要一台机械安排Logstash,作为Indexer的角色,负责大年夜Redis中掏出数据,对数据进行格局化和相干处理后,输出到Elasticsearch中存储;
  • 第三,安排Elasticsearch集群,当然取决于你的数据岑岭,数据量小的话可以应用单台办事,如不雅做集群的话,最好是有3个以上节点,同时还须要安排相干的监控插件;
  • 第四,安排Kibana办事,供给Web办事。

创虻公司做数据分析(四)ELK日记体系

在前期安排阶段,重要工作是Logstash节点和Elasticsearch集群的安排,而在后期应用阶段,重要工作就是Elasticsearch集群的监控和应用Kibana来检索、分析日记数据了,当然也可以直接编写法度榜样来花费Elasticsearch中的数据。

【编辑推荐】

  1. 非数据科学家若何进行数据分析?
  2. 数据可视化并不是数据分析
  3. “网管”必备的五大年夜收集数据分析对象
  4. 解读Wikibon 2017年大年夜数据分析猜测申报
  5. Python vs R : 在机械进修和数据分析范畴中的比较
【义务编辑:51CTO_OS TEL:(010)68476606】

其次,我们须要做的是将数据放入一个消息队列中进行缓冲,所以Redis只是个一一个选择,也可所以RabbitMQ、Kafka等等,在实际临盆中,Redis与Kafka用的比较多。因为Redis集群一般都是经由过程key来做分片,无法对list类型做集群,在数据量大年夜的时刻必定不合适了,而Kafka生成就是分布式的消息队列体系。

Logstash

在官方文档中,Deploying and Scaling Logstash一文具体介绍了各类Logstash的安排架构,下图是与我们上述筹划相吻合的架构。Logstash由input、filter和output三部分构成,input负责大年夜数据源提取数据,filter负责解析、处理数据,output负责输出数据,每部分都有供给丰富的插件。Logstash的设计思路也异常值得救鉴,以插件的情势来组织功能,经由过程设备文件来描述须冲要件做什么。我们以nginx日记为例,来看看若何应用一些常用插件。

创虻公司做数据分析(四)ELK日记体系

1. 设备nginx日记格局

起首须要将nginx日记格局规范化,便于做解析处理。在nginx.conf文件中设置:

创虻公司做数据分析(四)ELK日记体系

这部分是Logstash Shipper的工作,涉及input和output两种插件。input部分,因为须要提取的是日记文件,一般应用file插件,该插件常用的几个参数是:

  • path,指定日记文件路径。
  • type,指定一个名称,设置type后,可以在后面的filter和output中对不合的type做不合的处理,实用于须要花费多个日记文件的场景。
     1/4    1 2 3 4 下一页 尾页

      推荐阅读

      12款白帽子用于黑客渗透测试的操作系统

    想知道什么样的操作体系的是白帽子黑客的最爱吗?本文我们将推荐12个操作体系,包含一些Linux发行版,如Kali Linux,Parrot安然操作体系,BlackArch等。这些以安然为重点的操作体系,可以赞助白帽子黑客进行渗入渗出>>>详细阅读


    本文标题:创业公司做数据分析(四)ELK日志系统

    地址:http://www.17bianji.com/lsqh/34624.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)