本文中整理与阿里云日志服务相关的知识点,主要是包含:
- 日志相关
- 日志log
- 日志组LogGroup
- 日志主题Topic
- 项目Project
- 日志库LogStore
- 分区shard
- 产品
- 产品架构
- 产品功能
日志相关
日志Log
日志(Log)是系统在运行过程中变化的一种抽象,其内容为指定对象的某些操作和其操作结果按时间的有序集合。日志的不同载体
- 文件日志LogFile
- 事件Event
- 数据库日志BinLog
- 度量Metric数据
每个文件日志由一条或者多条日志组成,每条日志描述了一次单独的系统事件。
日志是日志服务中处理的最小数据单元
日志组LogGroup
日志组是一组日志的集合,写入与读取的基本单位
日志主题Topic
日志库内的日志可以通过日志主题来进行划分。用户在写入时指定日志主题,查询数据时候也可以指定日志主题
项目Project
项目是日志服务中的资源管理单元。用于资源隔离和控制。
它管理者用户的所有日志库LogStore,采集日志的机器配置等信息,同时也是用户访问日志服务资源的入口。
日志库LogStore
日志库是日志服务中日志数据的收集、存储和查询单元。每个日志库隶属于一个项目,每个项目可以创建多个日志库。
分区shard
每个日志库分为若干个分区shard,每个shard由MD5左闭右开的区间组成。每个区间范围不会被覆盖
日志服务
定义
日志服务Log Service,简称SLS,是针对日志类数据的一站式服务。主要功能是:
- 完成日志数据收集、消费、投递和查询分析等
- 提高运维、运营效率
- 建立DT时代海量日志文件处理能力
阿里产品
产品架构
Logtail
快速收集日志的Agent,特点:
- 基于日志文件,无侵入式的收集日志
- 安全、可靠
- 方便管理:web端操作、可视化配置
- 完善的自我保护:实时监控进程的CPU、内存消耗等
前端服务器
采用的是LVS Nginx构建的前端机器,特点如下:
- HTTP、REST协议
- 水平扩展:流量上涨时可以快速提高处理能力、支持增加前端机
- 高吞吐、低延时:纯异步处理,内部采用专门针对日志的LS4压缩
后端服务器
后端采用的是分布式进程,部署在多个机器上面,特点如下:
- 数据安全性高:每条日志数据保存3份;发生宕机、磁盘损坏等情况,数据自动修复
- 稳定服务:机器宕机时候,LogStore会自动迁移;自动负载均衡,无单机热点;用户之间的行为互不影响
- 水平扩展:以分区shard为单位进行水平扩展,用户可以根据动态需要增加分区来曾静吞吐量
产品功能
实时采集与消费LogHub
功能:
- 通过ECS、容器、移动端、开源软件等接入实时日志数据(Metric、Event、BinLog)
- 通过实时消费接口,与实时计算及服务对接
用途:
- 数据清洗ETL
- 流计算 Stream Compute
- 监控与报警
- 机器学习与迭代计算
查询与实时分析 Search/Analytics
功能:
- 查询:关键词、模糊、上下文、范围
- 统计:SQL聚合等丰富查询手段
- 可视化:Dashboard 报表功能
- 对接:Grafana JDBC/SQL92
用途:
- devops、线上运维
- 日志实时数据分析
- 安全诊断数据分析
- 运营与客服系统
投递数仓LogShipper
将日志中枢数据投递至存储类服务进行存储
- 支持压缩
- 自定义Partition
- 行列格式等类型
用途:
- 数据仓库 数据分析
- 审计
- 推荐系统 用户画像
产品应用场景
- 数据采集与消费
通过日志服务的 日志中枢(LogHub)功能,大规模低成本接入各种实时日志数据
- 数据清洗与流计算
日志中枢LogHub
支持和各种实时计算及服务进行对接,并且提供完整的进度监控、报警灯功能
- 数据仓库对接Data WareHouse
日志投递LogShipper功能可以将日志中枢LogHub中数据投递至存储类服务,过程支持压缩、自定义Partition、行列、TextFile等多种存储格式。
- 日志实时查询与分析
实时查询分析LogAnalytics
可以实时索引LogHub中
的数据,提供关键词、模糊、上下文、范围、SQL聚合等查询手段