

ELK前端日志分析、监控系统
source link: https://blog.csdn.net/eclipsexys/article/details/53364480
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前端日志与后端日志不同,具有很强的自定义特性,不像后端的接口日志、服务器日志格式比较固定,大部分成熟的后端框架都有非常完善的日志系统,借助一些分析框架,就可以实现日志的监控与分析,这也是运维工作的一部分。
什么是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来进行日志数据的展示工作。
以上三个框架,就构成了我们这套架构的核心。如果你想进一步了解这套架构,可以去他的官网上进行了解:
这里也讲一个真实的故事——Elasticsearch项目的来历。
Elasticsearch 来源于作者 Shay Banon 的第一个开源项目 Compass 库,而这个 Java 库最初的目的只是为了给 Shay 当时正在学厨师的妻子做一个菜谱的搜索引擎。2010 年,Elasticsearch 正式发布。至今已经成为 GitHub 上最流行的 Java 项目,不过 Shay 承诺给妻子的菜谱搜索依然没有面世。
不得不说,还真是面向对象编程……
ELK架构图解
下面这张图很好的解释了什么是ELK:
当然,这也是最简单的ELK架构,在后端运维架构中,可能远不止如此,比如,还需要加入Kafka活这Redis等等,这里我们不做过多的讨论,我们只讨论最基础的架构。
ELK环境搭建
有同事问我,配置一套ELK环境需要多长时间,我说,大概需要20分钟,另外,其中大概有15分钟是在下载!
由于现在整个ELK项目基本上都已经被elastic这个公司收购了,所以,在它的官方网站上可以很容易的找到配置Guide。
按照这个配置指南,基本上很快就可以完成ELK的搭建,我们唯一需要做的,就是找到一份Log,然后配置下,让他展示出来就完了。
下载好tar包后,请尽量使用tar指令解压,不然就会像我的同事TT那样因为解压后的权限折腾上很长时间。
配置Logstash
我们首先需要在Logstash的文件根目录下创建一个配置文件,我这里举一个例子:
input {
file {
path => "/Users/xuyisheng/Downloads/temp/log.txt"
ignore_older => 0
sincedb_path => "/dev/null"
}
}
output {
elasticsearch{}
stdout{}
}
这个配置相信不用我多说,大家也能看懂,当然,这是一个非常基本的配置,只是从固定的文件中去读取Log信息并写入到elasticsearch,并不做任何处理工作。
写好配置文件后,只需要通过如下所示的指令启动Logstash即可:
➜ logstash-5.0.1 bin/logstash -f logstash.conf
启动之后,Logstash就会从文件中读取信息了。
配置Elasticsearch和Kibana
为什么Logstash我要单独讲,而Elasticsearch和Kibana我可以放一起讲呢?因为——这两个的配置实在是太简单了,简单到你根本不用配置任何东西……
只需要两个指令就完成了,启动Elasticsearch:
➜ elasticsearch-5.0.0 bin/elasticsearch
启动Kibana:
➜ 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的搜索语法等等,如果大家有兴趣,可以在下面留言,如果感兴趣的人比较多,我会在后面的文章中进行进一步的分析。
一年一度的CSDN博客之星评选又开始了,欢迎大家给我投票:
http://blog.csdn.net/vote/candidate.html?username=x359981514
有了各位的支持,我才有动力能够继续写出更多更好的文章,非常感谢大家的支持。
Recommend
-
56
nodejs 日志规范 一般前端开发同学,对日志其实不太敏感,毕竟前端大多数情况下,不太关心日志。即使有,也可能调用一些第三方的统计,比如百度统计或者别的等。在 Node.js(下文中简称node) 推进过程中,也发现我们平常打日志太随意,该打的日志没有打,打
-
15
主流的 ELK (Elasticsearch, Logstash, Kibana) 目前已经转变为 EFK (Elasticsearch, Filebeat or Fluentd, Kibana) 比较重,对于容器云的日志方案业内也普遍推荐采用 Fluentd,我们一起来看下从 ELK 到 EFK 发生了哪些...
-
19
民生银行:我们的 ELK 日志分析平台
-
6
亿级 ELK 日志平台构建实践 ...
-
14
背景:市面上的监控系统有很多,大多收费,对于小型前端项目来说,必然是痛点。另一点主要原因是,功能通用,却未必能够满足我们自己的需求, 所以我们自给自足。 这是搭建前端监控系统的第二章,主要是介绍如何统计js报错,跟着...
-
6
在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪中送碳,必定能够提高我们排查线上...
-
5
当我们公司内部部署很多服务以及测试、正式环境的时候,查看日志就变成了一个非常刚需的需求了。是多个环境的日志统一收集,然后使用 Nginx 对外提供服务,还是使用专用的日志收集服务 ELK 呢?这就变成了一个问题!而 Graylog 作为整合方案,使用 Elast...
-
5
ELK系统日志管理搭建Apr 20, 2022ELK4点击elk搭建基于linux系统,版本需要保持一致。 安装Elasticsearchelasticsearch...
-
7
如何用 ELK 搭建 TB 级的日志监控系统? 作者:不才陈某 2022-08-30 08:41:51 日志文件采集端我们使用 FileBeat,运维通过我们的后台管理界面化配置,每个机器对应一个 FileBeat,每个 FileBeat日志对应的 Topic...
-
5
微服务系列之分布式日志 ELK 1.ELK简介 ELK是E...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK