认识日志分析平台ELK

为什么要使用日志分析平台

对于日志的重要性,都会很认同,不管是一个小网站,还是一个大系统,都会用到日志

网站初期,一般就是查看web服务器访问日志,例如,平时关注一下404访问,有的话及时处理一下;网站访问变慢了,查看一下是哪些访问比较频繁、哪些资源占流量等等

如果管理员很勤劳,这时可能都不需要什么工具,直接打开日志文件用肉眼就能看个差不多了

随着网站规模的发展,访问日志越来越多,勤劳的管理员肉眼搞不定了,需要学习使用一些日志处理小程序,例如linux下,要使用 grep、sed、awk 等命令实现检索和统计

这时系统、安全方面也会时不时出现一些小问题,那么就不能只关注web访问日志了,还需要查看系统和安全方面的日志信息来排查问题

单服务器时怎么都好说,累点就累点了,管理员还能捣腾得过来,但到后来,单服务器撑不住了,要上集群

那么多台服务器中的大量日志怎么分析统计?管理员挨个服务器折腾是肯定不行了

随着网站规模的变大,日志的重要性越发突出,作用越来越大,例如

(1)监控系统健康状况

(2)帮助分析查找bug根源

(3)追踪安全问题

(4)做为网站策划活动的数据依据

……

并且日志的存储也不满足于普通的日志文件了,会把日志保存到数据库,如mysql、mongodb、hbase

日志的发展趋势就是:源头分散、产生速度快、数据量巨大

所以,传统日志分析手段力不从心,需要专业的日志分析平台

携程案例

携程分享过他们的日志发展历程

作为中国最大的OTA网站,每日产生的各类日志有好几十种,有数个TB大小,如果采用Splunk这样的商业软件,每年的授权费用就要近千万,必须要有自己的日志平台

当时有基于MySQL和HBase的日志分析工具,但不好用,只能做简单的查看和过滤,一旦有复杂的查询和统计就很慢,体验比较差

运维部门对日志分析工具需求如下:

(1)支持多种数据源

(2)日志解析方式灵活、简单

(3)支持关键词搜索和浏览,能支持组合条件搜索

(4)能够按照时间窗对特定字段做数值统计,比如计算某个时间段的平均响应时间,或者出现某种错误类型最多的URL等

后来通过技术分析调研,携程便使用了ELK日志分析平台,并在此基础上进行了扩展开发

ELK平台介绍

ELK是三个开源工具 ElasticSearchLogstashKibana 组成的软件栈

通过他们3个的完美配合,就可以完成对大型系统日志的 采集、存储、统计展示

Elasticsearch

是一个开源分布式搜索引擎,提供对大量日志信息的搜索统计能力

特点是 分布式、自动发现、索引自动分片、restful 风格接口、多数据源、自动搜索负载等

Logstash

是一个完全开源的工具,可以对日志进行收集、分析,并将其存储供以后使用

kibana

也是一个开源工具,配合Elasticsearch的强大搜索能力,对日志进行汇总、分析、搜索,以用户体验非常好的方式将结果展现出来

他们的协作流程如下

在需要收集日志的服务器上部署 logstash ,作为 logstash agent,用于过滤和收集日志

每个 logstash agent 将内容发送到 logstash indexer 汇总

logstash indexer 将日志收集在一起,交给全文搜索服务 ElasticSearch,管理员对 ElasticSearch 进行自定义搜索配置

最后通过 Kibana 来结合自定义搜索进行页面展示

本文分享自微信公众号 - 性能与架构(yogoup)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

MySQL主从信息的元数据维护

前几天专门花了时间开始做元数据的稽核,其实这只是一个初步的开始,也算是才开始走上正道。

13930
来自专栏腾讯云技术沙龙

白瑜庆:知乎基于Kubernetes的kafka平台的设计和实现

我是知乎技术中台工程师,负责知乎存储相关的组件。我的分享主要基于三个,第一,简单介绍一下Kafka在知乎的应用,第二,为什么做基于Kubernetes的Kafk...

1.1K110
来自专栏java一日一条

影响Java EE性能的十大问题

本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一...

11820
来自专栏

记录服务上线一年来的点点滴滴

2015年12月,也就是在一年前,开发了半年的云存储服务上线。这对于付出了半年努力的我们来说,是一件鼓舞人心的事件。因为这个服务在我们手上经历了从0到1的过程。...

21750
来自专栏非著名程序员

关于Android中设置闹钟的相对比较完善的解决方案

? 前些时候,有人在我「非著名程序员」公众号的后台问我有没有设置闹钟的demo,我当时说承诺为大家写一个,一直没空,直到最近又有人跟我要,我决定抽时间写一个吧...

516100
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–应付账款(158)-3 F110使用付款程序过帐预付款

4.3 F110使用付款程序过帐预付款 对供应商的预付定金可使用付款程序自动过帐。 必须过帐预付款。 必须不激活支付发布清单和直联支付(EPIC)应用程序才能...

413110
来自专栏Python与爬虫

如何识别老玩家

10520
来自专栏编程

影响Java EE性能的十大问题

程序猿看过来:影响Java EE性能的十大问题 ? 本文是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。他在性能优化...

23060
来自专栏Android群英传

沪江学习Android端重构实践

10130
来自专栏hadoop学习笔记

详谈分布式系统缓存的设计细节

在分布式Web程序设计中,解决高并发以及内部解耦的关键技术离不开缓存和队列,而缓存角色类似计算机硬件中CPU的各级缓存。如今的业务规模稍大的互联网项目,即使在最...

14640

扫码关注云+社区

领取腾讯云代金券