日志分析系统的架构设计
预处理分析是指分析第二部的日志解析的数据切分的结果,汇总没 一分钟之内,的各个接口的“指标值”(用户可以自己提供自己的算法类), 预处理的输出结果是按接口进行封装对象(没分钟的指标值)。 4:日志业务分析
业务分析是指对预处理结果进行分析,更新入库。
产品设计 产品的模块划分:
全局资 源分配 管理器 (基本 信息、 全局的 资源信 息)
日志分析系统的改造方案
产品的定位
目前的日志分析程序,采用数据分片、及分布式队列的方式进行技术的 实现,可以让用户通过配置化的修改进行配置分析的相关接口。
产品的最终目标是要实现通用的分析,用户可以自定义各个模块的的分 析实现,程序只是框架,还有一套默认的实现。
产品模块
产品分为 4 大模块。 1:日志准备
目前采用的是 ftp 脚本每天定时从 ftp 服务器下载日志,过滤出需要 的分析的日志。如果是通用化分析,以后由客户自定义日志的相关信息。 2:日志解析
解析是指对提供的日志进行逐行的验证和转换为一个标准的日志对 象(目前是统一一个标准的对象,用户可以继续改对象自己扩展自己的 熟悉),解析阶段对数据进行了切分,是按请求的时间为标准进行划分(每 一分钟的数据切分到一个集合) 3:日志预处理分析
需要分析的日志 获取解析规则
从全局资源信息管理器获取
解析日志生成对象
按ቤተ መጻሕፍቲ ባይዱ求时间进行时间切分(每分钟切为一个数据片)
第三模块:预分析阶段
预处理分析阶段是指对第二阶段输出的数据切分的数据片进行预处理的 分析(按照自定义的预处理规则)进行分析。
数据片 1 分钟
数据片 2 分钟
数据片 3 分钟
数据片 4 分钟
预处理分析管理器
线 程 一
。。。。。
N
线 程
获取预处理规则
从全局资源信息管理器获取
输出每一个接口一分钟的统计信 息
关键字
按 url 进行汇总相应的统计信息(监控信息和关键字)
第四阶段:业务分析阶段
据库
业务分析阶段是指对第三步预分析的输出进行分析,汇总、更新到数
预分析输出每一个接口一分钟的统计信息
根据规则生产表名称,入库,更新到相应的表中
日志准备 日志解析 预处理分析 业务分析分析
解析规则 预处理规则 业务规则
技术实现
主要采用 redis、mongodb、mysql、hbase、zookeeper 进行实现。
第一模块:日志准备阶段
目前:目前是采用 linux shell 脚本每天定时,进行连接 ftp 自动下载,过 滤,输出当天需要分析的日志(ftp 传输随时都可能出问题)。
第五阶段:关键字的入库
库。
关键字是一天更新一次,一直保存在内存中,等分别完成,最后分析入
怎么面向用户
未来:希望可以把这些日志在外网进行程序分析完毕,入库到 hbase,然后我 从 hbase 去获取结果。
。
目前:
日志 A
日志 B
日志 C
日志 D
Shell 脚本
日志目录
未来:
日志 A
日志 B
日志 C
日志 D
分析程序
Hbase
第二模块:日志解析
日志解析阶段,不用的用户解析的规则是不一样的,用户需要配置需 要分析的字段,然后提交进行分析