占用磁盘100%?Apache DolphinScheduler 日志如何定时清理!
当 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 日志框架,用于配置日志记录器。
这段配置定义了一个名为 APILOGFILE
的 RollingFileAppender
,它将日志信息追加到一个滚动的文件中。
以下是配置的详细解释:
-
<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。
-
要修改配置以调整日志文件的滚动策略或清理日志,你可以调整以下参数:
-
修改日志保留时间:如果你想要保留更长时间的日志,可以增加
<maxHistory>
的值。例如,要保留 30 天的日志,可以将其设置为 30。 -
修改日志文件大小:如果你想要日志文件在达到特定大小时滚动,可以修改
<maxFileSize>
的值。例如,要将每个日志文件的大小限制为 128MB,可以将其设置为128MB
。 -
修改日志格式:如果你想要改变日志的格式,可以修改
<pattern>
中的内容。 -
定时清理日志:Logback 配置本身不负责日志的定时清理。你需要使用操作系统的定时任务(如 Linux 的
cron
作业)来定期删除旧的日志文件。例如,你可以编写一个脚本,使用find
命令查找并删除超出保留期限的日志文件,并将其设置为定时运行。
请注意,修改配置文件后,需要重启 Apache DolphinScheduler 的对应服务以使更改生效,本文完!
本文由 白鲸开源 提供发布支持!