ELK,多家网络巨头追捧的日志分析神器,网管福音,它牛逼在哪儿?
日志,对于任何系统来说都是及其重要的组成部分。在计算机系统里面,更是如此。通常,日志被分散的储存不同的设备上,很多系统都不是在一个地方,甚至都是跨国界的,即使是在一个地方的系统,也有不同的来源,他们都在不停产生各种各样的日志数据。根据不完全统计,我们全球每天大约要产生 2EB(1018)的数据。
面对如此海量的数据,又是分布在各个不同地方,如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。这个时候,ELK 横空出现,让大家又多了一种选择。
许多网络巨头:Sina、饿了么、携程、华为、美团、freewheel、畅捷通 、新浪微博、大讲台、魅族、IBM等等都在使用ELK 。ELK实际上是三个工具的集合,Elasticsearch + Logstash + Kibana,这三个工具组合形成了一套实用、易用的监控架构,像上面提及到的这些互联网公司都有利用它来搭建可视化的海量日志分析平台。
(ELK协议栈)
1、Elasticsearch
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。可以进行以下工作:一是分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索;二是实时分析的分布式搜索引擎;三是可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
2、Logstash
Logstash是一个完全开源的工具,你可以用它去收集日志、转换日志、解析日志并将他们作为数据提供给其它模块调用,例如搜索、存储等。Logstash在其过程中担任搬运工的角色,它为数据存储,报表查询和日志解析创建了一个功能强大的管道链。Logstash提供了多种多样的input,filters,codecs和output组件,让使用者轻松实现强大的功能。
3、 Kibana
Kibana 也是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持。可以帮助你汇总、分析和搜索重要数据日志。
说个题外话,Kibana有一个相似的工具叫做grafana,grafana有点效仿了kibana的形式,大致来说kibana能做的图形,grafana都可以做,grafana能做的展示效果,kibana不一定做的到。另外他们两点有些区别,就是如果你想做dashboard来展示的话,强烈推荐grafana,如果你是用来展示log的明细,且可以写条件搜索的话,那建议使用kibana。
ELK有何优势?
1、使用ELKstack集中展示日志,展现和搜索更加友好和方便。可以以分布式搜索的方式快速检索,而且支持DSL的语法来进行搜索,简单的说,就是通过类似配置的语言,快速筛选数据,解决了一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据的问题。
2、查看日志非常方便和高效。完美解决了开发人员不能登录线上服务器查看详细日志的问题。
3、完美的展示功能,可以展示非常详细的图表信息,而且可以定制展示内容,将数据可视化发挥的淋漓尽致,日志可由高性能服务器集中处理和展示。解决了日志数据量大,查询速度慢,或者数据不够实时的问题。
4、分布式功能,能够解决大型集群运维工作很多问题,包括监控、预警、日志收集解析等。
有多少工程师对这一工具有所了解呢?如果有兴趣的小伙伴可以自行安排学习下。
如果觉得文章不错,可以给我们点个赞,也可以转发到你的朋友圈让更多人受益,想了解更多ELK相关知识,可以扫码加微信,更多内容等你来挖掘~~