`
乱蓬头199303
  • 浏览: 80451 次
文章分类
社区版块
存档分类
最新评论

日志系列--程序日志处理挑战与方案

阅读更多

摘要: 程序日志(AppLog)有什么特点? * 内容最全:程序日志是由程序员给出,在重要的地点、变量数值以及异常都会有记录,可以说线上90%以上Bug都是依靠程序日志输出定位到 * 格式比较随意:代码往往经过不同人开发,每个程序员都有自己爱好的格式,一般非常难进行统一,并且引入的一些第三方库的

程序日志(AppLog)有什么特点?

处理程序日志会有哪些挑战?

1. 数据量大

程序日志一般会比访问日志大1个数量级:假设一个网站一天有100W次独立访问,每个访问大约有20逻辑模块,在每个逻辑模块中有10个主要逻辑点需要记录日志。

则日志总数为:

每条长度为200字节,则存储大小为

这个数据会随着业务系统复杂变得更大,一天100-200GB日志对一个中型网站而言是很常见的。

2. 分布服务器多

大部分应用都是无状态模式,跑在不同框架中,例如:

对应实例数目会从几个到几千,需要有一种跨服务器的日志采集方案

3. 运行环境复杂

程序会落到不同的环境上,例如:

为了能够获得全貌,我们必须把所有数据统一并存储起来。

如何解决程序日志需求

1.统一存储

目标:要把各渠道数据采集到一个集中化中心,打通才可以做后续事情。

我们可以在日志服务中创建一个项目来存储应用日志,日志服务提供30+种日志采集手段:无论是在硬件服务器中埋点,还是网页端JS,或是服务器上输出日志,都可以在实时采集列表中找到。

image.png

在服务器日志上,除了使用SDK等直接写入外,日志服务提供便捷、稳定、高性能Agent-Logtail。logtail提供windows、linux两个版本,在控制台定义好机器组,日志采集配置后,就能够实时将服务日志进行采集,这里有一个5分钟视频。

在创建完成一个日志采集配置后,我们就可以在项目中操作各种日志了。

image.png

可能有人要问到,日志采集Agent非常多,有Logstash,Flume,FluentD,以及Beats等,Logtash和这些相比有什么特点吗?

2. 快速查找定位

目标:无论数据量如何增长、服务器如何部署,都可以保证定位问题时间是恒定的

例如有一个订单错误,一个延时很长,我们如何能够在一周几TB数据量日志中快速定位到问题。其中还会涉及到各种条件过滤和排查等。

  1. 例如我们对于程序中记录延时的日志,调查延时大于1秒,并且方法以Post开头的请求数据:
  1. 对于日志中查找包含error关键词,不包含merge关键词的日志

3. 关联分析

关联有两种类型,进程内关联与跨进程关联。我们先来看看两者有什么区别:

 

 

分享到:
评论

相关推荐

    Serverless日志处理挑战与方案.pdf

    1. **多渠道、多维度、多种处理方法**:Serverless应用程序通常跨越多个服务和平台,日志可能来源于容器、移动端、网页端等多种渠道,涉及应用打点、用户访问、程序日志等多维度信息。这需要高效统一的日志收集和...

    石山石_从OpenStack到Kubernetes-云平台日志监控的新挑战.pdf

    #### 三、日志采集与处理 为了确保日志的有效收集和分析,CtripCloudPlatform采用了多种工具和技术: 1. **采集**: - **平台日志**:记录系统层面的信息,如服务状态、操作记录等。 - **容器日志**:针对运行在...

    AN0022-RT-Thread-ulog 日志组件应用笔记 - 基础篇1

    在嵌入式开发过程中,日志记录是必不可少的,它可以帮助开发者追踪程序运行状态,定位问题。然而,传统的日志系统往往存在效率低、可扩展性差等问题。 3 问题的解决 - ULOG组件介绍 3.1 ulog简介 RT-THREAD ULOG是...

    分布式日志处理系统调研报告

    ELK 作为一种成熟的分布式日志处理解决方案,在当今的大数据时代发挥着重要作用。它不仅能满足企业对日志数据实时分析的需求,还能帮助企业实现安全、性能等方面的监控和优化。尽管存在一些挑战,但通过不断的技术...

    Kubernetes日志采集与分析的最佳实践

    Kubernetes中的日志主要分为应用程序日志、追踪(Trace)、度量(Metric)和入口(Ingress)等类型,对于ServiceMesh、API Server、CoreDNS、Controller等组件也有着重要的日志记录需求。日志的采集可以通过Docker...

    Android-可保持线程日志统一输出多线程不混乱

    `yyb-log-master`可能提供的解决方案,就是针对这一问题的一种实践,它可能包含了上述一种或多种策略,以帮助开发者更高效地处理多线程日志输出的挑战。在实际使用中,可以根据项目的具体需求选择合适的日志管理方案...

    轻松输出Java应用日志到七牛云大数据日志平台.zip

    七牛云作为一个提供大数据日志处理服务的平台,提供了方便的日志接入方案。本教程将介绍如何将Java应用的日志轻松输出到七牛云大数据日志平台。 首先,我们需要了解七牛云的大数据日志平台。这是一个基于云计算技术...

    芒果TV ELK日志系统实践 -刘波涛

    - **解决方案**: 使用自定义Java程序替代Logstash,实现更高效的日志处理。 - **Elasticsearch优化**: - **SSD替代传统硬盘**: 减少随机写磁盘的瓶颈。 - **Index.refresh_interval**: 增加刷新间隔,减轻系统...

    藏经阁-Airbnb 的核心日志系统.pdf

    1. 大规模的日志数据量:Airbnb 的日志系统需要处理每天数十亿条的日志记录,这给系统的设计和实施带来了巨大的挑战。 2. 数据质量和完整性:Airbnb 的日志系统需要确保收集到的日志数据的质量和完整性,以便支撑...

    基于日志的异常检测技术综述.docx

    随着现代信息技术的飞速发展,各种系统及应用程序在运行过程中会产生大量的日志数据。这些日志包含了丰富的系统活动信息,对于理解系统行为、诊断问题以及预测未来趋势至关重要。然而,日志数据的海量性质以及异构性...

    归档日志迅速增长解决方案.pdf

    ### 归档日志迅速增长解决方案 #### 一、问题背景与重要性 在数据库运行维护过程中,归档日志的迅速增长是一个常见的问题。尤其是对于Oracle数据库而言,这一问题尤为突出。当归档日志文件不断增大时,可能会导致...

    kettle学习资料-内有kettle程序.zip

    通过分析和运行压缩包内的15个Kettle程序,你可以深入理解Kettle的工作流程,学习如何根据业务需求定制数据处理方案。此外,实践中遇到的问题和解决过程也是学习的重要部分,这将有助于提升你的问题解决能力和实际...

    打印调试日志

    9. **分布式系统中的日志**:在分布式系统中,日志一致性是一个挑战。采用诸如ELK、Graylog或Prometheus+Grafana等解决方案,可以实现跨节点的日志聚合和分析。 10. **实时日志流处理**:Apache Kafka、Flume等工具...

    论文研究-城市轨道交通信号控制日志采集系统的设计 .pdf

    为此,文中提出了一种基于Flume的日志采集系统的设计方案。 Flume是Cloudera公司开发的开源日志收集系统,它具有简单、灵活、可靠的特点,适用于收集大量的数据日志。采用Flume,可以利用其简单易扩展的数据流模型...

    oracle dg监控程序、归档日志监控程序

    3. 监控挑战:RAC环境下的DG监控需要额外考虑节点间的通信问题、资源争抢等,监控程序需要设计得更为复杂。 五、WEEK_MONITOR 文件 根据提供的压缩包文件名"WEEK_MONITOR"推测,这可能是周期性运行的监控程序,可能...

    解决VMware尝试访问日志文件时出错

    在使用VMware虚拟化软件与Visual Studio集成开发环境(IDE)进行开发工作时,有时可能会遇到这样一个问题:当你尝试打开Visual Studio项目时,系统会弹出一个错误提示,表明“尝试访问日志文件时出错”,这会影响...

    日志管理和分析系统的设计与实现

    2. **日志数据的解析与标准化**:由于不同来源的日志格式各异,因此需要对收集到的日志进行解析,并将其转换成一种统一的标准格式,以便后续处理。 3. **日志数据的分析**: - **筛选分析法**:根据预定义的规则或...

    log4j自定义日志文件名及日志输出格式

    在Java开发中,日志记录是一项至关重要的任务,它帮助我们追踪程序运行状态,定位问题,以及进行性能分析。Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当...

    Python-通过SQS自动化无服务器日志记录到S3

    在云环境中,尤其是在采用无服务器架构(如AWS Lambda)时,这种解决方案尤其有用,因为它可以高效、可靠地处理大量的日志数据。 **SQS(Simple Queue Service)**是亚马逊Web服务提供的一种完全托管的消息队列服务...

Global site tag (gtag.js) - Google Analytics