高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

UAVStack 之文件数据归集

  • 2020-02-09
  • 本文字数:1894 字

    阅读完需:约 6 分钟

UAVStack之文件数据归集

本文重点介绍 UAVStack 中的文件数据归集功能。该功能可以有效解决日志查找费时和日志文件丢失等问题,帮助快速定位解决问题,规避日志访问权限可能带来的安全风险。

一、前言

在分布式微服务架构下,单个应用中往往包含很多实例。日常工作中,我们常常需要查看应用运行过程中产生的日志。但登陆服务器从大量实例中查找目标日志耗时耗力;有时日志文件还会在应用重启过程中丢失。


UAVStack 的文件数据归集功能不仅能够集中所有业务的日志,方便工程师更加轻松地查找相关日志,进而快速定位、解决问题;还能省去服务器权限授予环节,有效规避日志访问权限可能带来的安全风险。


二、架构

归集的文件数据包含应用日志、调用链跟踪、浏览器跟踪和线程分析的数据;也可以在启动参数中配置任意文件路径,配置其它任意文件;还支持 UAVStack 自身日志文件的归集控制。整体架构如下:


1564378205408015224.png


  • Source:落盘后的数据文件,包括应用日志文件、调用链数据文件、浏览器数据文件和线程分析数据文件。

  • 日志采集器:文件数据采集端,负责数据读取、过滤以及上送。

  • Channel:数据消费队列,UAVStack 使用的消息队列是 RocketMQ。

  • Sink:从 Channel 中拉取文件数据,分发到别处。UAVStack 默认分发到数据库 ElasticSearch,用于存储归集上送的文件数据。


三、采集模块

UAVStack 的文件数据归集是 MonitorAgent 的 Feature。MonitorAgent 以守护进程的形式部署,如若死掉将会立即重启,重启后可继续归集文件数据。主要模块如下:


1564378222273058400.png


  • 归集任务控制器:控制下发归集的任务,包括正在运行的任务和已存在的任务;定时轮询归集任务,构建可执行的归集任务。

  • 归集任务调度器:定时调度归集任务。

  • 任务:执行文件数据归集任务。

  • 数据读取器:读取、过滤文件数据。

  • 数据发布器:发布已读取上来的文件数据。


四、归集过程

1564378228973025573.jpeg


  • 开启归集:文件数据归集模块自动发现应用日志的画像信息,并进行处理,判断应用日志画像信息是否更新;用户可控制应用日志、调用链跟踪、浏览器跟踪和线程分析的归集功能。AppHub 支持启停文件数据归集功能,可动态选择需要读取的文件。

  • 归集任务下发:当用户触发归集后,AppHub 端会开启文件数据归集任务并自动下发,生成数据归集任务,写到任务列表中,并持久化到本地文件 task.cache 中。

  • 归集任务控制:定时任务轮询管理任务列表,分别构建可执行的归集任务,并通过 ForkJoin 提交。

  • 文件数据读取:读取 ForkJoin 提交的每个任务。其中需要处理的日志文件都是通过具体的类进行操作处理。这些类包括 RandomAccessFile 类,其中 seek()方法随机访问文件,read()方法读取文件数据。另外,数据位置定时更新任务能够将读取到的数据的位置更新到本地文件 position.cache,供下一次文件读取使用。

  • 文件数据过滤:根据配置的日志策略,对读取的日志进行正则表达式的匹配过滤,完成日志数据取舍。

  • 文件数据发布:归集上来的日志数据,可按照不同的发布类型走不同的发布实现逻辑,发布到指定的目的地。UAVStack 默认发布到 RocketMQ 中,并支持自定义发布。


另外,HM 服务拉取 RocketMQ 中指定 topic 的日志数据,处理成相应的格式后存储到 ElasticSearch 数据库中。


五、文件数据展示

通过 AppHub 可以查看归集上来的应用日志、调用链跟踪、浏览器跟踪和线程分析的文件数据。由 AppHub 调用后台服务的 http 查询接口,通过 HM 日志数据服务读取数据库,进行文件数据的查询和展示,如下图所示:


1564378237614012356.jpeg


文件数据的展示效果如下:


1564378248874062382.jpeg


  • 支持查看不同应用集群、应用实例和日志文件的归集数据。

  • 支持按日、小时或分钟查看不同时间的文件数据。

  • 支持按升序或降序查看文件数据。

  • 支持关键字搜索,多个关键字用空格分开,表示“或”连接,即任意一个关键字匹配即可;多个关键字用“+”分开,表示“与”连接,即所有关键字都匹配的日志信息;如果同时使用空格和“+”,则“或”连接优先;如果关键字首尾都加“*”,则表示模糊匹配,展示所有匹配结果。

  • 点击单行日志,支持向前、向后滚动查看日志信息,如下图:


1564378260533001956.jpeg


六、文件数据关联

对于归集上来的应用日志、调用链跟踪和浏览器跟踪数据,可进行相互关联;浏览器跟踪数据可关联调用链跟踪数据,调用链跟踪数据可关联应用日志数据,如下图所示:


1564378271604040337.jpeg


七、文件数据预警

归集后的文件数据支持预警,可针对文件数据中是否出现关键字或者关键字出现的次数配置预警策略。预警策略触发后可通过邮件、短信、微信等方式通知用户,也可通过 Http 形式通知第三方应用系统。


八、总结

UAVStack 的文件数据收集功能已被广泛使用,是具备较高可用性和可靠性的分布式服务。如果需要归集的日志量较大,仅需增加 UAVStack 自身的 HM 服务,可扩展性较强。


本文转载自宜信技术学院。


原文链接:http://college.creditease.cn/detail/279


2020-02-09 15:05472

评论

发布
暂无评论
发现更多内容

TDSQL核心特性:极具挑战的“四高”服务与安全可运维

腾讯云数据库

数据库 tdsql

如何让项目准时上线 - 续篇

石云升

项目管理 管理 引航计划 内容合集 9月日更

TDSQL数据同步和备份

腾讯云数据库

数据库 tdsql

代理服务器转发消息时的相关头部(qbit)

qbit

正向代理与反向代理 Proxy

张宏江出席HICOOL 2021全球创业者峰会,阐述AI研究与创业新机遇

硬科技星球

人工智能 大模型时代 悟道2.0

爬虫初探: 一次爬虫的编写尝试

程序员架构进阶

实战问题 个人思考 9月日更 spider 搜索结果

IT大厂八股文更新上线的操作系统,刚上线点击量破百万!赶紧收藏

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

要不要换种方式开发软件?

鲸品堂

软件开发

TDSQL是什么:腾讯如何打造一款金融级分布式数据库

腾讯云数据库

数据库 tdsql

TDSQL金融级特性之:数据强一致性保障

腾讯云数据库

数据库 tdsql

分布式TDSQL的实践

腾讯云数据库

数据库 tdsql

淘宝网 Java 千亿级并发系统架构设计笔记(全彩版小册开源)

Java 架构 面试 后端 高并发

为抢人才,字节架构师竟将42W字「2021大厂真题集」,上传GitHub

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

NoSQL数据库——Cassandra

hanaper

吊打面试官必备-阿里内部性能优化实战手册

Java架构师迁哥

Alibaba内部713页Java程序性能优化实战手册首次开放!大受好评

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

史诗级放水…字节3-2大牛分享350道Java岗真题,刷完获阿里offer

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

智慧物流可视化,能否解决购物节后的爆仓危机?

森友小锘

大前端 物联网 可视化 智慧物流 数字孪生

自定义View笔记

Changing Lin

9月日更

马某兵VIP资料惨遭泄露,Java大厂面试手册,21年高频题版

Java架构师迁哥

Alibaba最新发布:2021最符合Java程序员的“学习路线”

Java架构师迁哥

分布式事务内存数据库--MemDB

hanaper

非科班杀进字节跳动,全靠GitHub公认最强的数据结构与算法笔记

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

TDSQL核心架构

腾讯云数据库

数据库 tdsql

什么?分布式事务现在不是都在用么?你还不会?

Java 架构 分布式 后端 计算机

突击 22 天面进腾讯,给到 32K*14 薪!全靠这份阿里面试参考指南了

Java 程序员 架构 面试 计算机

一年数十万次实验背后的架构与数据科学

百度开发者中心

人工智能 架构 最佳实践 方法论 数据科学

SpringBoot 如何进行对象复制,老鸟们都这么玩的

Java 架构 后端 计算机 框架

阿里IM技术分享(三):闲鱼亿级IM消息系统的架构演进之路

JackJiang

架构 即时通讯 IM

字节内部进阶用的Java中高级岗技术图谱到底泄露了,和开源没区别

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

UAVStack之文件数据归集_文化 & 方法_段德华_InfoQ精选文章