采集采集系统(常见日志分析应用场景(redis)-苏州安嘉)
优采云 发布时间: 2021-10-04 18:16采集采集系统(常见日志分析应用场景(redis)-苏州安嘉)
日志对于大型应用系统或平台尤为重要。系统日志采集和分析是系统运维、用户分析的基础。Redis
1、系统日志分类数据库
通常系统日志可以分为三类: 设计模式
一、用户行为日志:采集系统用户使用系统后,一系列操作日志。安全
二、业务变更日志:特定业务场景需要,采集用户在某个时间使用某个功能,对某个业务(对象、数据)进行某种操作,从A到B。服务器
三、系统运行日志:定期采集系统运行服务器资源、网络和基本中间件状态的日志分析。微信
2、常用日志分析应用场景restful
日志采集分析是需求驱动的。根据某个场景的需要,有针对性地对采集、采集日志进行分析。日志分析结果的常见应用场景有:网络
一、分析系统或平台的哪些功能最受欢迎:什么时候用户使用最多,某些领域和类型的用户使用最多。有利于功能的提升;有利于提升服务器资源,提升用户体验。建筑学
二、内容推荐:根据用户日常阅读内容,采集相关日志,经过分析,系统自动向用户推荐用户感兴趣的内容,从而提高粘性用户站点的。同时
三、系统审计:对于应用系统,采集操作日志和业务变更日志有利于审查,提供相关的安全审计功能。
四、自动化运维:场景微服务架构的系统或平台,对运维投入要求较高。自动化部署和运维可以减少运维的工作量和压力。系统运行环境日志采集,分析,可实现预警,动态分配服务器资源,有利于快速故障定位和排查。
不同的系统对采集分析日志有不同的运行环境、功能应用场景和要求。日志内容多样,采集方法多,日志数据量大。因此,有必要设计一个日志采集系统来满足日志采集的要求,并支持在应用功能中方便的抓取分析结果。
3、日志采集 整体系统设计
基于以上日志采集的初步分析,尤其是在微服务架构中,微服务治理能力和服务负载需要依赖对服务日志的采集分析,所以log采集子系统是微服务架构的基本支撑功能。日志采集的整体系统设计如下:
图1-日志采集系统整体框架*敏*感*词*
如上图所示,按照整个日志流程,系统由日志采集、日志存储与分析、结果应用三部分组成。日志采集主要负责提供多种方式登录采集;日志存储与分析主要实现统一存储和自定义场景分析日志;结果应用实现日志分析结果提供服务接口或默认管理功能,应用功能使用。
日志采集的整体流程:日志采集之后,在线或离线传输到消息队列,由日志消费应用拉取存储。根据分析需要,定制自动化作业任务,实现日志数据的抽取、转换、统计,然后将结果数据写入关系数据库。提供服务接口或日志查询默认管理功能供使用。
一、日志采集
登录采集 实现三种登录采集的方式:
(1)WebAPI方式:基于http协议restful方式实现日志数据采集,并发送到消息队列中。主要用于提供移动端、微信公众号和少量日志采集 使用,在.NET分布式系统上可以与“API网关”配合使用。
(2)Service Proxy方式:基于优秀的日志组件和消息队列客户端驱动,封装成日志记录服务代理,提供方便统一的使用接口。支持本地和在线日志到应用程序实时发送到消息队列并记录到应用程序本地,应用程序功能日志采集的功能可以结合第三种方法。
(3)LCClient方法:实现客户端对日志数据的批量抓取并发送给LCServer。LCClient客户端基于TCP协议与LCServer服务器通信,基于NIO框架构建,支持高并发处理能力。 LCServer 随后会将 Log 数据写入消息队列。
日志采集提供了三种使用采集日志来满足不同业务应用场景的方式。
二、日志存储与分析
日志存储和分析由五部分组成:消息队列(MQ)、日志接收服务器(LCServer)、日志存储(Elasticsearch)、任务工作()和关系数据库(MySQL)。
(1)消息队列(MQ):日志通过消息队列实现消息的统一接收,作为缓冲区满足日志数据的并发接收能力。
(2)日志接收服务器(LCServer):批量接收LCClient客户端发送的日志数据,发送到消息队列。
(3)日志存储(Elasticsearch):日志存储选择ES,主要考虑ES是一个文档化分布式搜索服务,支持PB级数据存储,支持数百个节点的分布式集群能力,并提供丰富的API使用,并在数据查询方*敏*感*词*有优越的性能。
(4)Task work():定制开发工作任务实现ES日志数据的提取、转换、分析后,将结果存储在关系数据库中。中间件是业界公认的工作任务组件。
(5)关系型数据库(MySQL):实现日志应用查询的日志结果数据存储。MySQL具有优越的主从复制机制,可以解决单节点查询的性能瓶颈,同时提供传统的SQL脚本操作数据 提供开发效率的能力。
日志数据经过存储和分析后,最终目的是为其提供应用功能。
三、分析结果应用
分析结果应用主要提供服务接口和管理功能两种方式。
(1)服务接口方式:以restful方式提供基于http协议的接口,支持应用功能,调用方便。
(2)管理模块方法:默认提供了一套日志查询管理功能,方便应用直接集成使用。
4、总结
Log采集本身也是一个分布式系统,服务端各个节点都支持分布式集群部署,可以实现高并发高可用。这篇文章只是一个介绍,系统的每个组件都需要详细深入,还包括实现和部署。
作者:刘彩涛
来源:
作者简介:专攻微软平台的项目架构和管理。熟悉设计模式、领域驱动、架构设计、敏捷开发和项目管理。现在主要从事ASP.NET MVC、WCF/Web API、SOA、MSSQL、redis的项目开发、架构和管理。如果您有任何问题或建议,请一起研究讨论!
本文版权归作者和博客园所有。欢迎转载,但本声明未经作者同意必须保留,并在文章页面明显位置提供原文链接。
如果您有任何问题,您可以发送电子邮件:联系我,谢谢。