日志管理:快速发现和定位问题

日志管理:快速发现和定位问题

2023年7月17日发(作者:)

⽇志管理:快速发现和定位问题 开始本⽂之前,我们先提问⼏个问题:1. 如果你的⽹站或者服务出现故障,是谁第⼀时间发现问题的?⽤户还是运维⼈员?2. 如果我们的服务架构是由若⼲微服务组成的,其中⼀个微服务的异常导致了你的某个API请求异常了,你是否能快速定位到时哪个微服务出了问题?3. 在部署系统后,你是否能观察出来系统的性能是上升了还是下降了?如果我们对这些有不太确认的答案,那么我们就可以来看看,如果借助监控和⽇志分析⼯具,第⼀时间发现线上问题,以及快速定位产品问题。 什么是⽇志管理呢?⽇志就是操作系统和应⽤软件⾃动⽣成的事件说明或者消息记录,包含了时间、⽇志信息,在⽇志数量不多的时候,凭借⾁眼或者借助⽂本编辑器,还能⼤概看出⽇志的内容,但是当⽇志数量⼀多,从⽇志⾥查找需要的信息就变得很困难了。 现在的应⽤程序越来越复杂了,尤其是像微服务这样的架构,⼀个系统需要由若⼲微服务组成,每个微服务可能还会部署在若⼲容器上,那么意味着如果你要根据⽇志去排查故障的话,需要从⼏⼗、上百个地⽅去收集⽇志,再逐个去分析。 我们想要解决这样的问题,就需要对⽇志进⾏统⼀管理,⽇志管理就是对系统和应⽤产⽣的⽇志进⾏处理的⽅法,包括对⽇志统⼀收集、对⽇志数据进⾏筛选和解析,统⼀存储,还要让他们可以⽅便被检索。 当然我们不需要⾃⼰从头去实现这样的⽇志管理系统,现在有很多成熟的⽇志管理⼯具可以帮助我们,我们只需要去了解这些⼯具可以帮助我们做什么,以及如何基于他们来搭建适合我们项⽬的⽇志管理系统即可。 那如何快速发现和定位问题呢? ⾸先,⽇志集中式管理后,就可以⽅便地对所有⽇志进⾏统⼀的检索。当所有⽇志都放在⼀起检索时,⾃然就能⾼效地定位到问题了,⽽不是到各个应⽤程序的⽇志⾥去检索。同时,检索⽅式上,可以⽤类似于Sql语句的⽅式来检索,⾼效地对结果进⾏查询和归类:然后,对⽇志进⾏集中式管理后,可以通过图表直观的看到应⽤运⾏情况。当所有的应⽤实时将⽇志传输到⼀起,⽇志管理系统就可以根据应⽤⽇志中记录的信息,动态⽣成图表,实时看到应⽤运⾏的情况。最后,可以根据⽇志的数值设置规则⾃动报警。对于从⽇志中实时分析出来的数据结果,如果设置好相应的阈值,在超过阈值后,⾃动触发报警,通知相关的开发⼈员进⾏维护。我们可以看到,当我们搭建好⼀整套⽇志管理系统后,不仅可以帮助我们快速地对⽇志进⾏检索,还可以根据图表看数据⾛势,还可以通过对⽇志分析结果的监控,设置⾃动报警的规则,第⼀时间了解系统故障。那⼤⼚的⽇志管理系统的架构是什么样⼦的呢?现在对于像阿⾥、新浪这样的⼤⼚来说,对⽇志管理系统的应⽤已经是标配了,⽐如说阿⾥云的《基于ELK实时⽇志分析的最佳实践》、新浪的《ELK Stack在新浪微博的最佳实践》、《新浪是如何分析处理32亿条实时⽇志的?》、七⽜的《如何快速搭建智能化的统⼀⽇志管理系统》。 很显然,很多⼤⼚都是基于ELK搭建的⾃⼰的⽇志管理系统,⽽ELK的架构也是⼀套经典的⽇志管理架构,今天我们以ELK为例来说明⽇志管理系统的基本架构。 ELK是什么?ELK是Elasticsearch+Logstash+Kibana的缩写,Elasticsearch是⼀套搜索框架,提供了⽅便的接⼝,可以⽅便地做全⽂检索,可以⽤来对⽇志进⾏检索。Logstash是⼀个数据收集⼯具,可以⽤来收集⽇志数据。Kibana是⼀套可以和Elasticsearch交互的界⾯,通过Kibana可以⽅便的检索Elasticsearch内的所有数据,还可以⽤图形化的⽅式展⽰数据结果。 基于ELK搭建的⽇志管理系统基本架构如下:这套架构分为⼏个重要的模块:⽇志采集和解析、存储和搜索、结果可视化和监控报警1. ⽇志采集和解析要想对⽇志进⾏统⼀管理,就必须要从各个应⽤系统收集⽇志,Logstash就可以帮助实现对⽇志的采集,然后解析成结构化的数据,才能⽅便地检索,logstash不但可以对⽇志数据进⾏收集,还能对⽇志数据进⾏过滤和解析,解析完成后再将解析好的数据发送给Elasticsearch1. 存储和搜索当所有的⽇志数据都被集中存储后,可以想象这个⽇志数据库是相当庞⼤的,直接查询效率是⽐较地下的,需要对其进⾏索引和分析,从⽽可以快速地检索出来结果。Elasticsearch就是⼀套专业的全⽂检索和数据存储系统,同时还有⼀套类似于SQL的查询语句,这样我们就可以基于它⽅便对收集好的⽇志数据进⾏检索了。But,Elasticsearch本⾝类似于数据库,没有图形化界⾯。1. 结果可视化可视化是⽇志管理的另⼀项重要功能,通过可视化的图表,可以直观看到数据⾛势,⽅便跟历史数据对⽐。例如通过观察交易数据的⾛势曲线,能看出来这周的交易数据⽐上周是增长还是下降;根据API响应速度的⾛势,可以看得出新版本部署后,性能是提升还是下降。Kibana就是⼀套专门针对Elasticsearch的图形化操作⼯具,可以⽅便对Elasticsearch数据进⾏检索,也可以对结果⽤图表的⽅式展现1. 监控和报警ELK只提供了基础的⽇志管理框架,基于它可以有很多扩展,⽐如⾃动报警就是⼀个典型的场景,基于已经存储和索引好的⽇志数据,制定相应的⾃动报警规则,当线上服务发⽣异常时,可以⾃动地触发报警,通知相关值班⼈员及时处理。ELK可以通过插件的⽅式,安装ElastAlert或Watcher类似的⾃动报警插件,实现⾃动报警功能。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689544284a264849.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信