引言:
在传统的信息系统架构模式下,各个组织或各个部门根据各自的业务需求,在不同时期不同技术环境下建设出各自的信息系统。随着信息化建设的不断推进,业务活动呈现高频化、碎片化、场景化的特点。随之而来的是对系统的处理能力、容量、业务持续性、需求响应速度、运维响应速度的更高要求。
如何有效的管理数据、高效的提供数据服务的其中一个关键就是提供对数据服务的统一监控。
目录:
一、数据服务监控
二、数据采集
三、数据格式化
四、数据存储
五、数据展示
一、数据服务监控
为提供统一、标准、安全、高效的数据服务,我们需要做好一点那就是统一数据运行监控,那么统一数据服务运行监控需要做哪些事情呢?
首先获取数据服务的运行数据,需要我们对数据进行采集。有了数据我们就可以去对数据做初步的分析,通过分析对数据进行格式化,格式化后的数据又需要去做持久化保存,方便未来不定期的查询。单纯的数字可能并不能直观的反应数据问题,那就需要借助前端工具对数据做可视化的展示。
数据服务监控通过实时服务分析引擎(SSM)提供日志解析及监控能力,对事前预警、事中告警、事后统计分析等功能提供后台支撑。我们先来看一种可行的部署架构中,SSM的具体部署方式。
二、数据采集
实时服务分析引擎的部署
相信大家对此是非常熟悉的这也是一种很常见的微服务部署架构,Nginx通过负载均衡对业务请求进行分流,网关Gateway再将请求通过Eureka等注册中心转发到后台服务中。服务网关是成熟且健壮的业务系统中不可或缺的重要组件,它是所有服务的总入口,它是监控、认证的切入点。我们可以在网关处添加对数据服务的采集功能。
网关拦截器手动埋点
数据采集:做数据采集的前提一定是对监控需求的仔细揣摩,如果你是粗粒度的应用监控、系统监控,那么数据服务总入口就是数据采集的切入点,如果你是细粒度的应用监控,例如应对时下流行的分布式微服务架构你希望做到对调用链路的详细监控,那么每个微服务的入口就是数据采集的着手处。网络上有很多对于微服务架构的监控组件,例如Skywalking、Cat、Zipkin、Pinpoint等,这里就不一一赘述,我们今天的重点不是去研究每一次服务调用的具体详情,我们只从服务总体的健康状态出发。所以我们只需要极少的代价在数据服务总入口也就是网关进行数据埋点,收集数据详情即可。
异步落日志
异步落日志的具体流程如下:
网关监控数据持续产生,放入缓存队列(请求流转的过程中要避免IO操作,尽可能的减少对请求本身的影响)
缓存队列大小达到预先设定的大小,将缓存队列复制到临时缓存(一个临时对象),并清空缓存队列,然后执行写文件操作
当文件大小达到预先设定的大小时,将当前文件重命名,代表文件写操作完成。(重命名的原因是因为实时服务分析引擎会对产生的日志文件进行读,避免对同一个文件同时出现读写操作)
日志落地相关配置
当监控数据进行初步落地以后我们就可以通过实时服务解析引擎对日志进行提取分析,这个过程我愿意称之为数据格式化过程。
日志关键信息
三、数据格式化
提取数据的第一步是对网关落下来的文件日志进行收集然后处理。
日志文件读取流程
日志文件目录下可能会有多种类型的文件,我们需要通过名称正则匹配筛选需要的文件。