海量结构化日志分析系统

背景

日志,角色不同,出发点和认识的角度也不同

RD使用日志,首先是为了调试程序,当程序上线后,日志是为了记录err和trace。

PM可以通过日志分析,可以得出业务指标相关的统计情况。

日志的作用大致有三:异常、trace、统计。

日志使用的痛点

使用日志时大部分的场景或特点如下:

1.日志为纯文本,即可读。

2.日志分散在各个机器上,或者同步到某一台机器。

3.某某发现一个问题,让某某去查log。

这里有几个问题,或者说提高点

1.文本冗余度太大,浪费资源,如果转换为二进制,预估有5倍的收益。

2.日志分散,查找效率低,即使集中,在没有具体时间点情况下,扫描日志会很慢。

3.日志分析难度大,谁写的日志谁来查,查到和肉眼找到还差一步...

目标

所以,我们可以设计这样一个日志系统

1.支持海量数据的日志存储(TB二进制)

2.日志二进制、结构化

3.查询速度快,难度低

设计

读写日志

日志查询过程经分解和总结共性后,几乎是下边三种情况

1.K-V查询,比如基于某个消息ID,查询一条记录。

2.集合查询,比如查询某个用户的消息记录。

3.集合range查询,比如查询某个用户0点到1点消息记录。

那么,ssdb是非常适合这三个需求的。

日志系统具有写多读少的特定,再基于磁盘存储的业界主流方案,LSM是适合的,

而SSDB的存储依赖的leveldb正好属于LSM系。

日志二进制

一个大的日志是没办法人用肉眼扫描的,所以不如使用二进制代替以节约空间,但是日志

会随着需求的变化,格式也可能会变化,所以必须考虑二进制向文本反序列化时的

兼容性问题,那么protobuf是非常适合这个需求的。

海量日志

Sharding

业务的sharding,一个业务对应N个存储服务,N个业务对应N*N个存储服务,单一存储服务内只

承载一个业务。

磁盘的sharding,一块盘对应N个存储服务,N块磁盘对应N*N个存储服务。

        0    1      2     3     4

  db    |_____|_____|_____|_____|

        0      1t              4t

disk    |_______|_______________|

Resharding

扩容时增加存储服务即可。

缩绒时删除存储服务即可。

Failover

存储服务挂了后重启就可以。

由于存储的是日志,在机器发生故障后是允许丢的,所以数据不做迁移,只需将相应的服务等比例

迁走即可。

时间: 2024-10-21 15:17:01

海量结构化日志分析系统的相关文章

实时海量日志分析系统的架构设计、实现以及思考

1 序 对ETL系统中数据转换和存储操作的相关日志进行记录以及实时分析有助于我们更好的观察和监控ETL系统的相关指标(如单位时间某些操作的处理时间),发现系统中出现的缺陷和性能瓶颈. 由于需要对日志进行实时分析,所以Storm是我们想到的首个框架.Storm是一个分布式实时计算系统,它可以很好的处理流式数据.利用storm我们几乎可以直接实现一个日志分析系统,但是将日志分析系统进行模块化设计可以收到更好的效果.模块化的设计至少有两方面的优点: 模块化设计可以使功能更加清晰.整个日志分析系统可以分

.NET Core开发日志——结构化日志

在.NET生态圈中,最早被广泛使用的日志库可能是派生自Java世界里的Apache log4net.而其后来者,莫过于NLog.Nlog与log4net相比,有一项较显著的优势,它支持结构化日志. 结构化日志,也被称为语义化日志.其作用有二,利于查询与方便分析. 当系统上线被广泛使用或者时间久远之后,日志的大量出现不可避免.且日志本身作为一种数据,也有其重要的价值.因此,如何有效地对其进行查询以及最大价值化地分析处理便成了一个重要的问题. 非结构化日志 对于日志的处理,需要权衡对开发者的友好性与

ELK日志分析系统 介绍 安装配置

ELK日志分析系统 一.ELK介绍 ELK顾名思义:是由Elasticsearch,Logstash 和 Kibana三部分组成的. 其中Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析.它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写.目前,最新的版本是 5.4. 主要特点 实时分析 分布式实时文件存储,并将每一个字段都编入索引 文档导向,所有的对象全部是文档 高可用性,易扩展,支持集群(Cl

ELKR分布式搭建nginx日志分析系统

ELKR分布式搭建nginx日志分析系统 一.名词介绍 1.什么是elk ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana.这三款软件都是开源软件,通常是配合使用. 2.Elasticsearch 2.1.Elasticsearch介绍 Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析.它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引

开源日志分析系统ELK平台搭建部署

开源日志分析系统ELK平台搭建部署 一.前言 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理

在CentOS7中部署ELK日志分析系统

在CentOS7中部署ELK日志分析系统 ELK原理介绍 什么是ELK ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具. Elasticsearch是实时全文搜索和分析引擎,提供搜集.分析.存储数据三大功能:是一套开放REST和JAVA API等

千亿级数量下日志分析系统的技术架构选型

?? 随着数据已经逐步成为一个公司宝贵的财富,大数据团队在公司往往会承担更加重要的角色.大数据团队往往要承担数据平台维护.数据产品开发.从数据产品中挖掘业务价值等重要的职责.所以对于很多大数据工程师,如何根据业务需求去选择合适的大数据组件,做合适的大数据架构工作就是日常工作中最常遇到的问题.在这里根据七牛云在日增千亿级的日志分析工作,和大家分享一下大数据技术架构选型的一些经验.? 大数据架构师在关注什么 ?在一个大数据团队中,大数据架构师主要关注的核心问题就是技术架构选型问题.架构选型问题一般会

ELK日志分析系统(实例!!!)

ELK日志分析系统概述 ELK是Elasticsearch.Logstash.Kibana的简称 Elasticsearch是实时全文搜索和分析引擎 Logstash是一个用来搜集.分析.过滤日志的工具 Kibana是一个基于Web的图形界面,用于搜索.分析和可视化存储在 Elasticsearch指标中的日志数据 日志服务器 提高安全性 集中存放日志 缺陷:对日志的分析困难 ELK日志分析系统 收集数据:LogstashAgent 建立索引:ElasticSearchCluster 数据可视化

ELK日志分析系统(理论+部署)

ELK日志分析系统简介 日志服务器 提高安全性 集中存放日志 缺陷 对日志的分析困难 ELK日志分析系统 Elasticsearch Logstash Kibana 日志处理步骤 将日志进行集中化管理 将日志格式化( Logstash )并输出到Elasticsearch 对格式化后的数据进行索弓|和存储( Elasticsearch ) 前端数据的展示( Kibana ) Elasticsearch介绍 Elasticsearch的概述 提供了一个分布式多用户能力的全文搜索弓|擎 Elasti