云原生架构下日志服务数据预处理

本文涉及的产品
对象存储 OSS,20GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 本篇实践将以某家国际教育机构为例,为大家详细介绍云原生架构下日志服务数据预处理以及对应的解决方案和最佳实践操作手册,方便用户快速对号入座,解决云原生架构下的常见日志难题。
直达最佳实践:【 https://bp.aliyun.com/detail/207
观看视频:【 https://yqh.aliyun.com/live/detail/23950
阿里云最佳实践目前已覆盖23类常用场景,有200多篇最佳实践,这其中涉及110款以上阿里云产品的最佳使用场景。目前,最佳实践已成功帮助大量客户实现自助上云。

分享人

  • 解决方案架构师-七凌
  • 日志服务产品经理-谷奈

本篇实践将从3个部分为大家介绍云原生架构下日志服务数据预处理,希望可以让大家对其有更深入的了解,并可以将其应用到项目中,达到降本提效的目的。本文主要内容分为以下三个方面:

  • 最佳实践方案讲解
  • 核心产品能力介绍
  • 基于场景的demo演示

一、最佳实践方案讲解

1. 云原生下的数据加工

云原生的定义各种各样,有来自CNCF社区的“微服务+容器+持续交付+DevOps”,也有来自不同云厂商的说法“生于云,长于云”。比如我们常常听到的云原生数据库、云原生大数据、云原生容器、云原生中间件、云原生安全等等概念,这都是在云上可以获取到的服务化云原生产品,是传统线下没有的服务,能够在线上获取极致的弹性。这里,我们提到的数据加工,它是阿里云提供的云原生日志服务SLS所具备的能力之一。我相信大家都非常熟悉日志服务的数据存储、数据查询能力,而对于它提供的数据加工和告警通知,可能不太了解。SLS内置的数据加工能力,能够将各类日志处理为结构化数据,具备全托管、实时、高吞吐的特点。它面向日志分析领域,提供非常丰富的算子、支持开箱即用的场景化UDF(比如Syslog、非标准json、accessLog解析等等)。同时与阿里云的大数据产品(OSS、MC、EMR、ADB等)以及开源生态(Flink、Spark)进行了深度集成,降低了数据分析的门槛。
image.png

2. 云原生数据加工的典型能力

下图所示为数据加工服务的几个典型能力,包括数据复制、过滤、转换,富化、补漏、分裂等。整体优势简单来说可以归纳为以下四点:

  • 开箱即用,免运维
  • 开放灵活,支持200+DSL
  • 稳定可靠
  • 能做到秒级延迟

image.png

3. 云原生数据加工的典型应用场景

以向全球提供分布式在线教育的某家国际教育机构为例,为大家介绍几个典型应用场景,供大家参考和借鉴。

  • 典型场景一:跨地域、跨账号的数据汇集
    假设该在线教育的主要用户集中在美国硅谷和中国上海两地,为了更好的为用户提供个性化服务,系统会通过多端(Android/IOS/Web)进行收集用户行为日志和设备元数据(端设备的信息、软件版本)。出于网络就近原则和稳定性考虑,美国硅谷的客户端日志都上传到美国硅谷region,中国上海的客户端日志都都上传到中国上海region,为了方面客服中心或者运维团队进行集中查询和管理,会将两地的数据通过数据加工汇聚到一起。正如下图上层所示,将跨账号跨区域的服务日志和操作日志通过数据加工汇聚到了一起。值得注意的是,跨地域数据汇集,默认会走公网,稳定性无法保证,所以推荐采用DCDN的方式进行全球加速。
    image.png
  • 典型场景二:数据统一的采集,按业务分发,进行数据的归类
    该客户的业务系统部署在阿里云容器服务ACK上,系统日志通过DaemonSet方式采集到Logstore。便于后续业务分析的目的,需要通过日志服务SLS将不同Service的日志分发到不同的Logstore,然后各个团队再进行进一步分析。比如,运维团队更关心5XX服务端报错;业务团队更在乎2XX正常的业务日志。正如下图下层所示:

    image.png

  • 典型场景三:数据内容富化(join维表)
    日常工作中,客服中心的工作人员尝尝需要通过检索账号ID的方式,快速获取该用户相关的移动端操作记录,但是移动端的数据和用户账号信息分别采集与存放的,无法直接进行关联。所以系统层面上,需要将多端日志与维表(例如用户信息Mysql表)进行字段join,为原日志信息添加更多维度信息供分析或者问题解答。

    image.png

  • 典型场景四:数据投递/归档、入湖分析以及监控告警
    运营部门希望对于用户行为数据进行进一步的离线分析,需要将数据归档到OSS便于后续使用,比如通过DLA进行进一步的数据挖掘。但是由于不同客户端日志格式不统一,需要使用日志服务进行数据规整后再做投递,便于后续分析。比如,将移动端上报的json格式进行展开,做格式化的规整,然后将规整后的数据投递到OSS后,再使用DLA进行分析。并且在这个过程中,我们可以对加工任务的延迟情况进行监控,当加工任务延迟时间超过所设置的阈值后,触发告警,执行相关行动策略。比如根据延迟时间的长短,设置不同的告警严重程度,并设置对应的告警形式: 严重为短信告警,中等为邮箱告警。通知到相应的运维人员,并且通过设置降噪策略,可以对类似告警进行归并,避免告警风暴的影响。其实下面这幅架构图也是这篇最佳实践的架构示意图,里面包括了方案涉及到的核心组件,后续将通过云速搭CADT进行一键部署,完成基础资源的创建。
    image.png

4. 使用云原生数据加工方案的优势

通过这篇最佳实践,我们可以知道如何进行数据规整、如何进行数据富化、数据分发/汇聚、如何做监控告警的配置。

image.png

二、核心产品能力介绍

什么是SLS?

SLS这个产品用一句话描述即SLS是云原生观测分析平台,为LOG/METRIC/TRACE等数据提供大规模、低成本、实时平台化服务。能够一站式提供数据采集、加工、分析、告警可视化与投递功能,能够全面提升研发、运维、运营和安全等场景的数字化分析能力。通俗一点说的话,相关日志数据包括log日志、trace日志、metric日志都可以通过SLS采集之后,在SLS里面经过加工分析等处理,最终应用到客户的业务场景里,主要场景包括:业务监控、异常诊断、网络分析、应用监控、增长黑客等。
image.png
SLS是从阿里云飞天监控系统中孵化的产品,是一款阿里自研,在阿里内外部得到广泛使用的《日志+监控数据平台》,同时经历了集团多年双十一和外部客户新春红包的考验,是国内公有云TOP1的日志分析产品。
image.png

SLS的应用场景

SLS作为一款日志产品,有着开放的产品理念和丰富的生态交叉。对目前用户数据比较大的云产品业务日志,以及审计日志,均可接入到SLS。同时SLS与大数据产品的投递和消费的功能,有很强的的解决方案组合能力。那么接下来我们就细看下SLS主要的应用场景,作为日志平台、业务监控、数据管道是目前使用最多的三个场景。
image.png

  • 日志平台

    日志平台比较好理解,只要是有一定规模的用户,就肯定会有业务运维和系统运维的需求,也就衍生了日志平台的需求。在SLS产品化之前,大部分用户都是使用开源的服务进行组合,比较主流的比如ELK的使用,而日志服务相比于这些自建的平台,在免运维、低成本、功能丰富等方面的优势是自建系统所无法比拟的。

  • 业务监控
    业务监控和智能运维其实也是运维领域通用场景的需求,SLS拥有秒级处理十亿级数据的分析能力,同时可以满足各种异构数据提取、聚合、可视化需求。同时另外结合我们的告警以及AI异常检测能力,可以帮助客户快速搭建起来一套完善的监控告警系统,最后结合日志服务提供的异常巡检、时序预测、根因分析等能力,能够帮助用户提高问题发现以及分析定位效率。
  • 数据管道
    由于SLS具有极强的统一数据采集的能力,目前已经支持40+种数据源的接入,同时数据加工能力通过灵活的ETL能够对数据进行清洗富化,最终通过投递消费的功能,与主流流式及离线平台大数据分析平台对接。因此作为数据管道在大数据等解决方案中使用也是主要的场景之一。

SLS的主要功能

功能包括数据采集、数据加工、查询分析、业务监控、日志审计、投递与消费。

image.png

  • 日志采集

    日志采集是SLS的一个核心功能,是帮助客户进行日志存储分析等的前提,在日志采集这一方面,SLS基本上是往极致的思路上在做。无论是LOG/TRACE/METRIC的日志,用户的服务器与应用日志,移动端的数据日志,IoT设备的日志,阿里云的各个云产品日志,还是其他场景,只要是满足标准协议的传输的日志,都可以通过SLS的采集平台进行统一采集。

    image.png

  • 数据加工

    完成了数据采集的工作之后,多样化的数据在投入使用之前,往往需要进行格式规整的工作,这时候就需要使用到数据加工的功能。SLS提供的数据加工是一款开箱即用的功能,支持数据过滤、转化、富化、分裂等处理。为了实现这样的能力,数据加工提供了200+的内置函数,400+的Grok,丰富的文本处理,搜索算子,可以通过简单的代码自由编排组合操作,实现所需要的的数据加工能力。

    image.png
    同时数据加工具备的秒级处理性能,大吞吐性能和水平拓展能力可以保障客户任务的可靠执行。

  • 查询分析

    通过数据加工,客户可以将原始的日志加工成结构化的数据,接下去就可以做查询和分析。SLS的查询分析提供了关键词、标准的SQL92\ALOPS函数等多种多样的查询方式,支持面向文本+结构化数据实时查询分析,异常巡检与智能分析,同时SLS拥有极致的查询性能,十亿数据能够在秒级进行返回。
    image.png

  • 业务监控

    通过这些分析后得到的查询的数据,就可以使用SLS的可视化能力,形成报表方便二次查询。一次SQL长期使用,所见即所得。同时SLS支持下钻分析和上卷分析,客户可以根据实际的业务需求设置对应的报表组合。另外SLS支持灵活的告警策略,支持多数据源的联合告警监控,也支持通过归并、抑制、静默等智能设置有效降低告警风暴,以便于能够将真正有效有价值的数据通知到用户,方便用户随时随地掌握业务动向。
    image.png

  • 日志审计

    日志审计主要应对客户的安全需求,能够帮助客户快速接入审计数据,以符合等保/网安法/GDPR协议,同时与第三方SOC完整对接,可以对数据进行二次使用。目前日志审计已覆盖所有日志相关产品日志自动化采集,可以实现跨多主账号、自动实时发现新资源并实时采集。我们在日志审计中内置了近百个CIS、最佳实践等场景监控规则,可以一键开启,及时发现不合规的行为。

    image.png

  • 投递功能
    投递功能是在当客户有数据归档或者复杂数据分析需求时,可以从日志服务投递(和消费对应的日志)到第三方服务。目前已经对接了主流流计算引擎和数据仓库存储。消费功能是指用户的ECS\容器、移动端、开源软件、JS等数据,通过采集接入到SLS后,可以通过SDK/API来自定义消费组,从SLS实时消费数据。

    image.png

三、基于场景的demo演示

本最佳实践采用云速搭CADT对需要使用的资源进行部署,它是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供大量预制的应用架构模板,同时也支持自助拖拽方式定义应用云上架构,支持大量阿里云服务的配置和管理,可以方便地对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。下面简单演示下架构部署环境的搭建过程。

  1. 登录云速搭CADT控制台。
  2. 单击新建 > 官方模板库新建

    image.png

  3. 在搜索框中搜索“云原生架构下日志服务数据预处理”,找到目标模板,单击基于方案新建

    image.png
    系统基于模板生成应用架构图:

    image.png

  4. 双击OSS,需要重命名,保证全局唯一,其他资源配置根据实际情况修改。
    image.png
  5. 完成配置后,单击右上角的保存,设置应用名称,并单击确认

    image.png

  6. 接着单击部署应用

    image.png

  7. 按界面提示,依次完成资源验证、订单确认和下单创建等过程。等待资源部署成功后,可以单击资源名称列下的各个资源查看。
    image.png

关于完整的搭建演示过程,大家可以通过下面这个链接或访问二维码来访问本篇最佳实践文档内容,里面包含最佳实践场景和完整的搭建过程。

直达最佳实践 》》https://bp.aliyun.com/detail/207

207.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
4天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
24 5
|
6天前
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理策略
随着云原生技术的不断成熟,微服务架构已成为现代应用开发的主流选择。本文探讨了在云原生环境下实施微服务治理的策略和方法,重点分析了服务发现、负载均衡、故障恢复和配置管理等关键技术点,以及如何利用Kubernetes等容器编排工具来优化微服务的部署和管理。文章旨在为开发者提供一套实用的微服务治理框架,帮助其在复杂的云环境中构建高效、可靠的分布式系统。
19 5
|
6天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
6天前
|
消息中间件 缓存 Cloud Native
云原生架构下的性能优化实践与挑战####
随着企业数字化转型的加速,云原生架构以其高度解耦、弹性伸缩和快速迭代的特性,成为现代软件开发的首选模式。本文深入探讨了云原生环境下性能优化的关键策略与面临的主要挑战,通过案例分析,揭示了如何有效利用容器化、微服务、动态调度等技术手段提升应用性能,同时指出了在复杂云环境中确保系统稳定性和高效性的难题,为开发者和架构师提供了实战指南。 ####
19 3
|
6天前
|
运维 Kubernetes Cloud Native
深入理解云原生架构:从理论到实践
【10月更文挑战第38天】本文将引导读者深入探索云原生技术的核心概念,以及如何将这些概念应用于实际的软件开发和运维中。我们将从云原生的基本定义出发,逐步展开其背后的设计哲学、关键技术组件,并以一个具体的代码示例来演示云原生应用的构建过程。无论你是云原生技术的初学者,还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和实操指南。
|
6天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用架构中的实践与思考
【10月更文挑战第38天】随着云计算的不断成熟和演进,云原生(Cloud-Native)已成为推动企业数字化转型的重要力量。本文从云原生的基本概念出发,深入探讨了其在现代应用架构中的实际应用,并结合代码示例,展示了云原生技术如何优化资源管理、提升系统弹性和加速开发流程。通过分析云原生的优势与面临的挑战,本文旨在为读者提供一份云原生转型的指南和启示。
19 3
|
6天前
|
运维 Kubernetes Cloud Native
云原生技术在现代应用架构中的实践与挑战####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在实际项目中的应用案例,分析了企业在向云原生转型过程中面临的主要挑战及应对策略。不同于传统摘要的概述性质,本摘要强调通过具体实例揭示云原生技术如何促进应用的灵活性、可扩展性和高效运维,同时指出实践中需注意的技术债务、安全合规等问题,为读者提供一幅云原生技术实践的全景视图。 ####
|
6天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
5天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
16 1
服务架构的演进:从单体到微服务的探索之旅