日志服务
本文中整理与阿里云日志服务相关的知识点,主要是包含:
-
日志相关
-
日志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)功能,大规模低成本接入各种实时日志数据
image- 数据清洗与流计算
日志中枢LogHub
支持和各种实时计算及服务进行对接,并且提供完整的进度监控、报警灯功能
- 数据仓库对接Data WareHouse
日志投递LogShipper功能可以将日志中枢LogHub中数据投递至存储类服务,过程支持压缩、自定义Partition、行列、TextFile等多种存储格式。
image- 日志实时查询与分析
实时查询分析LogAnalytics
可以实时索引LogHub中
的数据,提供关键词、模糊、上下文、范围、SQL聚合等查询手段