什么是ELK

发表时间:2017-09-25 15:19:14 浏览量( 33 ) 留言数( 0 )

学习目标:

1、了解什么是ELK

2、了解ELK三个技术各个是什么和作用是什么


学习过程:

   项目部署了上去后就万事大吉了吗?系统运行发生了异常你知道吗?业务发生了错误你有知道吗?某个业务一天的访问量是多少你知道吗?你知道那个业务的访问量特别多,特别慢吗?如果经理问你这些问题你两眼一抹黑的。那估计你很难升职加薪了。后来你终于知道了日志的重要性,打印了很多日志,但是每次都要登陆服务器查看各个日志,估计你也很难升职加薪的。有没有一种技术可以非常自动的查看所有的日志呢?以前问这个问题都是多余的,肯定有,但是确实没有一种技术可以实现这个功能,我们需要整合不同的技术,这些其实都是可选的, 但是有三种技术用得特别多,也特别好,于是整合起来就交ELK。其实是三个技术来的。分别是

一:背景 

   通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理.

集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep 、 awk 和 wc 等 Linux 命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心

二、ELK的介绍

   能够实时的查看目前的日志情况,起码时准实时的,这样可以在系统出现异常情况可以理解通知相关人员,同时在业务逻辑出现错误的时候能够快速的查询到相关的日志。并且能够友好、快速的查看日志。其实说到这里我们也能想到要实现这个目标起码分为三步:1、收集各个系统产生的日志。2、把日志汇总保存,建立索引以方便快速检索。3、展示日志。

目前有三个技术分别实现了这些功能,Logstash、Elasticsearch、Kibana,合称ELK。所以ELK 由 ElasticSearch、Logstash和Kiabana三个开源工具组成。

官方网站: https://www.elastic.co/products

1. Logstash它可以对日志进行收集、分析、过滤,然后将其输出到其他地方,比如保存、发送到其他服务器保存等。

2. Elasticsearch是个开源分布式搜索引擎,底层时lucene的实现,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

3. Kibana可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。

   一般我们可以这样做:在需要收集日志的所有服务上部署logstash ,用于监控并过滤收集日志,将过滤后的日志收集在一起交给 ElasticSearch ,可以用 ElasticSearch进行自定义搜索,当然也可以通过 Kibana 来结合自定义搜索进行页面展示。

上面三种技术都是一种非常灵活的组合,也不是不可替代的,比如Logstash在收集日志的时候可能会占用很多的内存,Elasticsearch在收集日志的时候性能不高,为了更好的实现我们也可以引入,比较传统的ELK的组合

attcontent/116f33f3-44bf-4156-8830-9c2ccddbe975.png



当然也可以引入其他的技术,比如kafka,

attcontent/e92b9240-0a6a-40e3-80a2-1efa7f2eaba8.png

也可以使用

attcontent/d3b9f288-144f-4e59-8333-b7fa098edc59.png


有关日志的收集在大数据里面很有很多的方案。这里就不一一的列出来了,我们下面主要还是先学习最基本的ELK的组合,相对也时比较简单的。