云栖大会Serverless场分享:日志处理挑战与展望

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: Serverless由于本身的优势,其使用越来越广,在Serverless场景下的日志分析和处理也有其自身的特点。本文通过介绍Serverless场景下日志处理的挑战,结合阿里云日志服务,举例说明日志在Devops、运营等多个场景下的使用,来展示如何从容应对Serverless下日志处理的挑战。

本文PPT来自于2017年云栖大会TI Serverless专场阿里云龙悟分享的《Serverless下日志处理的挑战和展望》整理而成。

image

由于Serverless的诸多优点,现在越来越多的应用采用Serverless的架构,如上图所示,一个典型的Serverless架构 :

  • Api网关作为用户访问的入口,是各类web、手机等客户端的访问入口
  • 应用的静态资源如图片、视频等可放在对象存储OSS上
  • 表格存储保存各类meta信息
  • 函数服务FC承载应用的核心处理逻辑

在应用采用Serverless架构的情况下,已经没有应用服务器,应用逻辑以事件为驱动进行触发,这样的改动对于应用的开发、运维、运营、客服都提出了更高的要求和不小的挑战。通常来说,日志数据对于一个应用来说至关重要,关系到应用的稳定,以及能否持续、健康发展。那么在Serverless场景下,日志数据处理又有哪些挑战呢?

image
我们先看看搭建一个日志处理平台有哪些挑战:

  • 采集多源:是否能够足够高效地从各类数据源(web、手机客户端,api网关、函数服务等)快速、方便、实时进行数据采集;
  • 运营管理成本:维护这样一个日志平台需要投入多少人力、时间、机器资源;
  • 响应速度: 对于开发、运维、运营、客服等人员,是否都可以方便、便捷地使用这个日志平台来满足各自多样的需求

通常,构建一个完整的日志平台,需要使用多种开源系统,其中典型的代表有kafka,elk,hadoop,spark,storm等,以及用于数据采集的各类agent(logstash,fluentd,beats等),这些软件和系统用于解决特定的问题,只有有机地把这些系统组合才来才能最终达到业务目标,但要能够稳定运行好这些系统,可不是一件容易的事情。

image

阿里云的日志服务提供了另外一种解决思路,以云服务的形式,提供一站式日志解决方案,集合日志多源采集、存储、实时分析和dashboard展示、数仓对接等丰富功能,来满足多种人员的各类需求。这样在即满足需求的情况下,又免去了维护多个复杂系统的代价,大大降低了日志分析的时间成本。

image
通过简单的配置,一个日志服务平台可以非常便捷地进行创建,按照我们的经验,一个人1小时足够了。
首先,我们看一下serverless应用下日志如何进行采集:

  • 通过嵌入web tracking js代码,可方便地采集客户端的行为日志;
  • 通过SDK,API网关的日志、应用APP中的日志实时将日志写入logstore中;
  • 产生在函数服务的日志,通过一行配置,FC会自动将stdout的日志采集至日志服务中;

当日志写入用户project的logstore之后,可以根据数据流量,进行秒级动态扩容、缩容。配置索引之后,各类人员可以直接使用。

接下来,我们以日志处理中几个通用场景为例,来说明如何方便地使用日志服务解决实际问题。
image
在DevOps场景下,基于阿里巴巴内部的使用经验,我们将ops的时间进行划分,其中最耗时的部分是问题调查,而问题调查往往需要从多个维度进行综合的分析,才能准确定位问题的根源:

  • Metric : 各类系统、应用指标,常见的如cpu、mem指标,应用访问延时等
  • AdHoc Query :各类条件组合进行的查询,如查询来之某个用户的访问正确率,某个页面的延时等
  • Tracing :对于单次访问的一个完整调用路径,通常可通过访问request id在各个系统中进行关联
  • Log、上下文 :详细的日志数据,以及和关键日志有关联的上下文日志

以下,我们以DevOps下的AdHoc query和tracing、上下文为例来演示如何使用日志服务:
image

首先,这个查询样例是, 某个用户对某个特定页面进行访问,出现错误或者延时超过1秒的请求情况。我们可以看到,这样的查询方式非常的灵活,可以对各种条件进行自由组合,通常会使用关键词查询、数值比较、模糊查询来进行组合。使用阿里云日志服务,日志写入1秒和即可查询,每次查询,在1秒内,可处理数亿的日志,从容应对海量日志。

接下来,如果当有用户反馈有访问异常的情况下,就可以通过Tracing + 上下午的方式,快速进行定位。
image

演示视频:

在这个视频中,首先通过用户的id找到错误的访问请求(1);再根据这个request id快速在应用日志中找到核心日志(2),发现错误根本原因是后端缓存队列已经满了,不能请求进行更多的请求;通过核心日志的上下文查询功能,快浏览在出核心错误日志上下文日志(3),用于快速定位问题。

image
在介绍DevOps场景之后,我们再看一下运营分析的场景。在这个场景下,我们希望运营同学也能很方便地直接使用日志平台进行问题的分析。比如,在进行一个推广活动的时候,该主推哪些产品、主要面向的用户群体又是哪些等的这类问题,都需要从用户浏览、购买等行为日志中进行分析。在日志服务平台上,通过简单的sql分析配合多种模式的视图展示,能非常直观将展示分析的结果。

image
演示视频:

在以上视频样例中,我们快速分析在一个网站上,售卖价格超过100元的商品中,访问次数最高的top 10的商品,分析的结果以饼图的形式来表示。日志服务的sql查询,支持了sql 92绝大部分语法功能,可在1秒内,对1亿条日志进行多个维度统计分析。

image
对于我们经常需要关注的核心指标,可将sql视图保存至dashboard做整体展示,下次打开的时候,直接看到结果。同时,在这个dashboard的上,也可以调整任意视图的时间段。

image
日志服务平台,除了以上所展示的日志实时query和sql分析功能外,也能直接和多个云产品和开源系统对接,比如将数据导入对象存储OSS或MaxCompute中进行归档和超大规模计算,通过Storm/Jstorm等流式系统可直接实时读取写入Logstore中的日志数据。这样可以更方便满足多种个性化的日志处理需求。

image
最后,我们对比一下,使用日志服务一站式平台和自建方案之间的差异。使用日志服务,可以极大降低硬件持有、系统运维、开发资源等多方面的成本,同时,使用日志服务的另一个好处是,在资源的弹性扩容、安全、权限管理上也有很大的优势。整体来说,可以使用更低的费用,享受更好的服务。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
2月前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
5月前
|
SQL Java Serverless
实时计算 Flink版操作报错合集之在写入SLS(Serverless Log Service)时出现报错,该如何排查
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
6月前
|
弹性计算 Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之集成sls时出现报错,是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
存储 监控 Serverless
函数计算发布功能问题之用户在使用主流函数计算产品的日志服务时可能会遇到使用成本的问题如何解决
函数计算发布功能问题之用户在使用主流函数计算产品的日志服务时可能会遇到使用成本的问题如何解决
|
4月前
|
JavaScript 前端开发 Serverless
函数计算产品使用问题之打印日志时间与实际时间相差8小时,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
监控 Serverless 开发者
函数计算发布功能问题之查看函数的调用日志的问题如何解决
函数计算发布功能问题之查看函数的调用日志的问题如何解决
|
4月前
|
JavaScript Serverless Linux
函数计算产品使用问题之遇到Node.js环境下的请求日志没有正常输出时,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
监控 Java Serverless
美团 Flink 大作业部署问题之想在Serverless平台上实时查看Spring Boot应用的日志要怎么操作
美团 Flink 大作业部署问题之想在Serverless平台上实时查看Spring Boot应用的日志要怎么操作
|
5月前
|
Java Serverless 应用服务中间件
函数计算操作报错合集之JVM启动时找不到指定的日志目录,该如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
7月前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
56602 7
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用

热门文章

最新文章

相关产品

  • 函数计算