首页 > 其他分享 >3.2.0 版本预告!远程日志解决 Worker 故障获取不到日志的问题

3.2.0 版本预告!远程日志解决 Worker 故障获取不到日志的问题

时间:2023-08-17 17:57:07浏览次数:42  
标签:Remote Worker 3.2 本地 日志 我们

file

Apache DolphinScheduler 3.2.0 版本已经呼之欲出,8 月 中下旬,这个大版本就要和用户见面了。为了让大家提前了解到此版本更新的主要内容,我们已经制作了几期视频和内容做了大致介绍,包括《重磅预告!Apache DolphinScheduler 3.2.0 新功能“剧透”》《3.2.0 版本预告!Apache DolphinScheduler API 增强相关功能》

今天,我们来介绍另一个用户比较关心的新功能——Remote logging(远程日志),看看是否能帮助你的工作变得更简单吧!

https://www.bilibili.com/video/BV1U14y1q74N/?spm_id_from=333.999.0.0

今天由为大家介绍 Apache DolphinScheduler 3.2.0 的一个新特性,叫做 Remote logging。我们会从三个部分来说明这个功能,第一,它是什么,解决什么问题;第二,它如何配置;第三,我们怎么去使用它?

远程日志是什么?解决什么问题?

在没有这个功能之前,我们的任务日志流向是这样子的,任务运行完的时候,Worker 会将日志写到 Worker 本地,当用户需要去查看任务日志的时候,我们会发送请求这个 Worker 的日志,然后展示给用户。当一些意外情况出现,导致这个 Worker 的日志不存在,或者是这个 Worker 不存在的时候,用户在页面上就看不了日志了。

但是有了 Remote Logging,这个问题就能得到比较好的解决。它整体的流程如下所示:

file

我们只是增加了这条线的部分以及下面 Remote Logging 的部分,当我们的 Worker 将日志写到本地的时候,会有个异步线程将写到本地的 log 同步到 Remote Logging。当一些意外情况发生导致日志丢失,但用户想要看日志详细信息的时候,我们会有个请求将日志从远端拉到本地,然后本地返回。

为什么我们要设置这样一个动作呢?这样做首先能保证接口的一致性,就是日志全部都是从 Worker 发送给 API Server,然后去读取的。其次是尽量减少我们远端的带宽,只有当本地日志缺失的时候,我们才会去下载远端的日志。

如何配置?

接下来我们快速说明一下如何配置 Remote Logging。在我们的发版文件里会有关于如何启动和配置的简单介绍。

首先,我们要修改 Common Properties 文件,将这个 remote.logging.enable 设置存储并且设置为你想要存储的远端存储介质。目前我们支持了 OSS、S3 和 GCS。

其次就是一些第三方远端存储的配置,比如 AccessKey、Secret 以及对应的 bucket 和 region 等。

如何使用?

我们回到页面,体验一下 Remote Logging 是如何使用,以及我们是如何判断它是生效的。

我们这里有一个简单的工作流,它只有两个任务,分别打印了 1 和 2 这两个信息。手动触发这个工作流并观察日志,看看它是否正常地被写到远端。

当我们触发了工作流运行,并且工作流是运行成功的,我们将日志写到远端。当任务被运行成功的时候,我们就开始写日志了。

这一行就能很明显地看到,日志被写成功之后,会同时有一个异步线程将日志同步到远端的存储。

因为我们这里使用的是 S3,它将本地的路径的日志同步了一份到远端。回到 S3 的页面,可以看到 log 已经存在了。

接着我们模拟一下当本地 Worker 的日志缺失的时候,我们如何去读日志。 我们手动将这个日志文件删除,可以看到这个文件夹下面有两个日志文件,分别是 3 和 4。将这两个文件都删除,可以看到这里已经没有对应的日志文件了。

此时,如果是之前的版本,我们已经不能查看最新的 instance 的日志文件了,但是有了 Remote Logging,就会发现本地不存在这个日志,将日志从远端下载到本地给用户查看。

模拟一下,这里我们点击查看任务日志,会发现任务日志已经被显示出来了。再去查看一下本地文件,会发现刚刚不存在的日志已经下载下来了,并且只下载了我们需要的那一个。

接下来看看另一个任务的日志,同样发现是能被显示的,本地的两个日志文件也被下载下来了。查看服务日志,我们发现它已经检测到日志文件不在本地出现,会去远端获取这个日志文件。

这就是 Remote Logging 功能的大致介绍,如果它能解决你的问题,欢迎在 8 月中下旬发布 3.2.0 版本的时候,升级版本来体验一下!

本文由 白鲸开源 提供发布支持!

标签:Remote,Worker,3.2,本地,日志,我们
From: https://www.cnblogs.com/DolphinScheduler/p/17638359.html

相关文章

  • PowerShell Deep Drive 2-正则审查O365安装日志
    PowerShellDeepDrive2-正则审查O365安装日志前言最近遇到一个问题,在安装O365客户端的时候,遇到安装失败的情况,需要检查O365的安装日志,确定问题。在Office365(现在称为Microsoft365)的安装过程中,系统会生成安装日志以记录安装操作的详细信息。这些日志对于排查安装问题、分析错......
  • 搭载KaihongOS的工业平板、机器人、无人机等产品通过3.2版本兼容性测评,持续繁荣OpenHa
    近日,搭载深圳开鸿数字产业发展有限公司(简称“深开鸿”)KaihongOS软件发行版的工业平板、机器人、无人机等商用产品均通过OpenAtom OpenHarmony(以下简称“OpenHarmony”)3.2 Release版本兼容性测评,获颁OpenHarmony生态产品兼容性证书。这标志着OpenHarmony生态在新兴行业的......
  • ELK EFLK日志平台基于ElastAlert的监控告警
    一、前言1.1、产生背景ElastAlert最初由Yelp开发并开源,旨在解决实时监控和告警的需求。由于Elasticsearch的日志处理能力强大,许多组织和企业使用它来存储和分析大量的日志数据。然而,仅仅存储和分析数据可能无法满足实时监控和快速响应的需求(XPACK收费),因此ElastAlert应运而生。1.2、......
  • 日志服务 SLS
    日志服务SLS是云原生观测分析平台,为Log/Metric/Trace等数据提供大规模、低成本、实时平台化服务。一站式提供数据采集、加工、分析、告警可视化与投递功能,全面提升研发、运维、运营和安全等场景数字化能力。......
  • 卸载页面时上报日志
    当刷新页面或关闭页面时,上报日志functionreport(){ letmyHeaders=newHeaders(); myHeaders.append("Accept","application/json"); myHeaders.append("Authorization","BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMT......
  • Eclipse控制台显示全部日志的方法
    window——preferences——run/debug——console,详细见下图  翻译搜索复制......
  • SqlServer开启了Always On可用性组后如何清理数据库日志
    1、首先,确保你已经备份了数据库,并且备份是完整的和成功的。备份是非常重要的,因为在清理日志文件之前,你需要确保数据库的完整备份已经完成。2、使用以下命令手动截断和清理日志文件:BACKUPLOG[数据库名称]TODISK='备份路径'WITHNOFORMAT,NOINIT,SKIP,NOREWIND,NOUNLOA......
  • 20230816python学习日志
    在初始化属性中的类#person_class.pyclassPerson:population=0#初始化属性,用于计数def__init__(self,myAge):self.age=myAgePerson.population+=1#计数器defget_population(self):returnPerson.population......
  • Java日志系列:Log4j使用和原理分析
    目录一、简介二、使用三、日志级别四、组件说明LoggersAppendersLayouts五、配置加载初始化配置配置文件加载查看日志记录器的详细信息六、Layout的格式七、Appender的输出FileAppenderRollingFileAppenderDailyRollingFileAppenderJDBCAppender八、日志记录器的层级关系一、简介......
  • 手写raft(二) 实现日志复制
    1.Raft日志复制介绍在上一篇博客中MyRaft实现了leader选举,为接下来实现日志复制功能打下了基础:手写raft(一)实现leader选举日志复制是raft最核心也是最复杂的功能,大体上来说一次正常的raft日志复制大致可以简化为以下几步完成:客户端向raft集群发送一次操作请求(比如kv数......