前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK前端日志分析、监控系统

ELK前端日志分析、监控系统

作者头像
用户1907613
发布2018-07-20 15:21:32
2K0
发布2018-07-20 15:21:32
举报
文章被收录于专栏:Android群英传Android群英传

前言

大数据时代,不仅仅是后端,前端更需要对数据进行分析、展示和汇总,你们会怎么做呢?今天我们来『师夷长技以制夷』,用ELK来搭建自己的日志分析、监控平台。

前端日志与后端日志不同,具有很强的自定义特性,不像后端的接口日志、服务器日志格式比较固定,大部分成熟的后端框架都有非常完善的日志系统,借助一些分析框架,就可以实现日志的监控与分析,这也是运维工作的一部分。

什么是ELK

ELK在服务器运维界应该是运用的非常成熟了,很多成熟的大型项目都使用ELK来作为前端日志监控、分析的工具。

那么首先,我们来了解下什么是ELK,ELK实际上是三个工具的集合:

  • E:Elasticsearch
  • L:Logstash
  • K:Kibana

这三个工具各司其职,最终形成一整套的监控架构。

Elasticsearch

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

我们使用Elasticsearch来完成日志的检索、分析工作。

Logstash

Logstash是一个用于管理日志和事件的工具,你可以用它去收集日志、转换日志、解析日志并将他们作为数据提供给其它模块调用,例如搜索、存储等。

我们使用Logstash来完成日志的解析、存储工作。

Kibana

Kibana是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持。

我们使用Kibana来进行日志数据的展示工作。

以上三个框架,就构成了我们这套架构的核心。如果你想进一步了解这套架构,可以去他的官网上进行了解:

https://www.elastic.co/

这里也讲一个真实的故事——Elasticsearch项目的来历。

Elasticsearch 来源于作者 Shay Banon 的第一个开源项目 Compass 库,而这个 Java 库最初的目的只是为了给 Shay 当时正在学厨师的妻子做一个菜谱的搜索引擎。2010 年,Elasticsearch 正式发布。至今已经成为 GitHub 上最流行的 Java 项目,不过 Shay 承诺给妻子的菜谱搜索依然没有面世。

不得不说,还真是面向对象编程……

ELK架构图解

下面这张图很好的解释了什么是ELK:

当然,这也是最简单的ELK架构,在后端运维架构中,可能远不止如此,比如,还需要加入Kafka活这Redis等等,这里我们不做过多的讨论,我们只讨论最基础的架构。

ELK环境搭建

有同事问我,配置一套ELK环境需要多长时间,我说,大概需要20分钟,另外,其中大概有15分钟是在下载!

由于现在整个ELK项目基本上都已经被elastic这个公司收购了,所以,在它的官方网站上可以很容易的找到配置Guide。

https://www.elastic.co/start

按照这个配置指南,基本上很快就可以完成ELK的搭建,我们唯一需要做的,就是找到一份Log,然后配置下,让他展示出来就完了。

下载好tar包后,请尽量使用tar指令解压,不然就会像我的同事TT那样因为解压后的权限折腾上很长时间。

配置Logstash

我们首先需要在Logstash的文件根目录下创建一个配置文件,我这里举一个例子:

代码语言:javascript
复制
input {
    file {
        path => "/Users/xuyisheng/Downloads/temp/log.txt"
        ignore_older => 0
        sincedb_path => "/dev/null"
    }
}
output {
    elasticsearch{}
    stdout{}
}

这个配置相信不用我多说,大家也能看懂,当然,这是一个非常基本的配置,只是从固定的文件中去读取Log信息并写入到elasticsearch,并不做任何处理工作。

写好配置文件后,只需要通过如下所示的指令启动Logstash即可:

代码语言:javascript
复制
➜  logstash-5.0.1 bin/logstash -f logstash.conf

启动之后,Logstash就会从文件中读取信息了。

配置Elasticsearch和Kibana

为什么Logstash我要单独讲,而Elasticsearch和Kibana我可以放一起讲呢?因为——这两个的配置实在是太简单了,简单到你根本不用配置任何东西……

只需要两个指令就完成了,启动Elasticsearch:

代码语言:javascript
复制
➜  elasticsearch-5.0.0 bin/elasticsearch

启动Kibana:

代码语言:javascript
复制
➜  kibana-5.0.0-darwin-x86_64 bin/kibana

OK,等程序启动完成,只需要打开localhost:5601就可以看见Kibana的界面了。

给大家看几张截图,简单的体会下它的强大就好(由于我这里项目是公司的,所以就从网上找了一些,是一样的)

这个是Kibana3的界面。

这个是Kibana5的界面,大家可以根据自己的需要选择不同的Kibana版本,反正配置都是一句话。

ELK的优势

ELK在运维上的优势我们就不具体的说了,什么分布式啊、什么消息队列、消息缓存啊,太多了,但我们其实并不用太关心。

强大的搜索

这是elasticsearch的最强大的功能,他可以以分布式搜索的方式快速检索,而且支持DSL的语法来进行搜索,简单的说,就是通过类似配置的语言,快速筛选数据。

强大的展示

这是Kibana的最强大的功能,他可以展示非常详细的图表信息,而且可以定制展示内容,将数据可视化发挥的淋漓尽致。

所以,借助ELK的这两大优势,我们可以让前端日志的分析与监控展现出强大的优势。

ELK使用场景

据我所知,现在已经有非常多的公司在使用这套架构了,例如Sina、饿了么、携程,这些公司都是这方面的先驱。同时,这套东西虽然是后端的,但是『他山之石,可以攻玉』,我们将这套架构借用到前端,可以使用前端日志的分析工作,同样是非常方便的。这里我举一些常用的使用场景。

  • 业务数据分析 通过客户端的数据采集系统,可以将一些业务流程的关键步骤、信息采集到后端,进行业务流程的分析。
  • 错误日志分析 类似Bugly,将错误日志上报后,可以在后端进行错误汇总、分类展示,进行错误日志的分析。
  • 数据预警 利用ELK,可以很方便的对监控字段建立起预警机制,在错误大规模爆发前进行预警。

ELK的基本介绍就到这里,其实还有很多东西没有讲,例如使用Logstash对日志内容的处理、已经elasticsearch的搜索语法等等,如果大家有兴趣,可以在下面留言,如果感兴趣的人比较多,我会在后面的文章中进行进一步的分析。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 群英传 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是ELK
    • Elasticsearch
      • Logstash
        • Kibana
        • ELK架构图解
        • ELK环境搭建
          • 配置Logstash
            • 配置Elasticsearch和Kibana
            • ELK的优势
              • 强大的搜索
                • 强大的展示
                • ELK使用场景
                相关产品与服务
                大数据
                全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档