占用磁盘100%?Apache DolphinScheduler 日志如何定时清理!

embedded/2024/11/28 3:43:34/

当 Apache DolphinScheduler 运行几个月后,大部分朋友会发现 Logs 下的运行日志越来越多,这时可以考虑清理下 Logs/ 目录下的日志文件,比如设置只保留最近 3 天的日志,怎么操作呢?

可以通过执行以下三个命令来实现:

find ./logs -type f -mtime +3 -name "dolphinscheduler-worker.*.log" -delete
find ./logs -type f -mtime +3 -name "dolphinscheduler-master.*.log" -delete
find ./logs -type f -mtime +3 -name "dolphinscheduler-api.*.log" -delete

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度系统,它适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。

在使用过程中,随着任务的不断执行,会产生大量的日志文件,这些文件可能会占用大量的磁盘空间。

因此,定期清理日志文件是非常必要的。

我们可以设置定时清理 Apache DolphinScheduler 的日志,以减少磁盘空间的占用:

找到 安装目录下 conf/ 目录下.

conf 目录下,有几个Logback 文件,编辑打开.

默认内容是如下:默认 日志保留168天,每个文件大小64M ,太大了,修改这两个参数,改成 1 ,10MB.

<!-- api server logback config start --><appender name="APILOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.base}/dolphinscheduler-api.log</file><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${log.base}/dolphinscheduler-api.%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern><maxHistory>168</maxHistory><maxFileSize>64MB</maxFileSize></rollingPolicy><encoder><pattern>[%level] %date{yyyy-MM-dd HH:mm:ss.SSS} %logger{96}:[%line] - %msg%n</pattern><charset>UTF-8</charset></encoder>

这段配置是 Apache DolphinScheduler 的 API 服务器日志的 Logback 配置。

Logback 是一个流行的 Java 日志框架,用于配置日志记录器。

这段配置定义了一个名为 APILOGFILERollingFileAppender,它将日志信息追加到一个滚动的文件中。

以下是配置的详细解释:

  • <file>:指定日志文件的存放路径和文件名。${log.base} 是一个变量,表示日志文件的基础目录,它的值通常在配置文件的其他部分定义。

  • <filter class="ch.qos.logback.classic.filter.ThresholdFilter">:设置一个过滤器,只记录 INFO 级别及以上的日志。

  • <rollingPolicy>:定义了滚动策略,即何时创建新的日志文件。这里使用的是 SizeAndTimeBasedRollingPolicy,它基于文件大小和时间来滚动日志。

    • <fileNamePattern>:定义了滚动日志文件的命名模式,%d{yyyy-MM-dd_HH} 表示文件名中包含日期和小时,%i 表示文件的索引号(根据文件大小)。

    • <maxHistory>:定义了要保留的日志文件的最大天数。这里设置为 168 天,超过这个时间的日志文件将被删除。

    • <maxFileSize>:定义了单个日志文件的最大大小,这里设置为 64MB。

  • <encoder>:定义了日志的格式和字符集。

    • <pattern>:定义了日志的格式,包括日志级别、日期、日志记录器的名称、行号和日志消息。

    • <charset>:设置日志文件的字符编码为 UTF-8。

要修改配置以调整日志文件的滚动策略或清理日志,你可以调整以下参数:

  1. 修改日志保留时间:如果你想要保留更长时间的日志,可以增加 <maxHistory> 的值。例如,要保留 30 天的日志,可以将其设置为 30。

  2. 修改日志文件大小:如果你想要日志文件在达到特定大小时滚动,可以修改 <maxFileSize> 的值。例如,要将每个日志文件的大小限制为 128MB,可以将其设置为 128MB

  3. 修改日志格式:如果你想要改变日志的格式,可以修改 <pattern> 中的内容。

  4. 定时清理日志:Logback 配置本身不负责日志的定时清理。你需要使用操作系统的定时任务(如 Linux 的 cron 作业)来定期删除旧的日志文件。例如,你可以编写一个脚本,使用 find 命令查找并删除超出保留期限的日志文件,并将其设置为定时运行。

请注意,修改配置文件后,需要重启 Apache DolphinScheduler 的对应服务以使更改生效,本文完!

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


http://www.ppmy.cn/embedded/141086.html

相关文章

docker查询是否运行

您可以通过运行以下命令来检查Docker是否正在运行&#xff1a; docker info 或者&#xff1a; docker ps 如果Docker正在运行&#xff0c;docker info将显示Docker的详细信息&#xff0c;而docker ps将列出当前运行的容器。如果Docker没有运行&#xff0c;这些命令将会返回错误…

width设置100vh但出现横向滚动条的问题

在去做flex左右固定,中间自适应宽度的布局时, 发现这样一个问题: 就是我明明是宽度占据整个视口, 但是却多出了横向的滚动条 效果是这样的 把width改成100%,就没有滚动条了 原因: body是有默认样式的, 会有一定的默认边距, 把默认边距清除就是正常的了 同时, 如果把高度设…

第76期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

UE5 Spawn Actor from Class 节点

在 UE5 中&#xff0c;Spawn Actor from Class 节点用于在蓝图中动态地创建一个新的 Actor 实例。你可以使用这个节点来在游戏中生成不同类型的对象&#xff08;如敌人、道具、场景物件等&#xff09;&#xff0c;并将其放置到指定的位置。 如何使用 Spawn Actor from Class 节…

java 老矣,尚能饭否?

随笔 从千万粉丝“何同学”抄袭开源项目说起&#xff0c;为何纯技术死路一条&#xff1f; 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 java 老矣&#xff0c;尚能饭否&#xff1f; 一骑红尘妃子笑&#xff0c;无人知是荔枝来! java 老吗&#xff1f; 去年看…

【Linux】基础IO-文件描述符

【Linux】基础IO C语言的文件接口文件的初步理解文件IO的系统接口打开文件writeread 文件描述符fd语言层的fd文件描述符的分配规则重定向和缓冲区的理解重定向缓冲区作用刷新策略C语言的缓冲区 模拟实现重定向检查是否是重定向执行命令 0、1、2的作用 C语言的文件接口 这里我们…

QT入门详解,创建QT应用

一、Qt概述 1.1 什么是Qt Qt是一个跨平台的C++应用程序开发框架。它由Qt Company(前身为为Nokia)开发,用于开发图形用户界面、嵌入式系统、以及其他应用程序,支持Windows、macOS、Linux、Android和iOS等多个操作系统。 Qt框架提供了丰富的功能和工具,包括图形用户界面设计Q、…

Vue 中父子组件间的参数传递与方法调用

1. 引言 Vue中&#xff0c;组件化设计是构建用户界面的核心理念。 Vue.js 作为一个流行的前端框架&#xff0c;采用了组件化的方式&#xff0c;使得开发者能够更好地管理和复用代码。 在 Vue 中&#xff0c;父子组件之间的参数传递和方法调用是实现组件间交互的重要手段。 本文…