【问题标题】:TailFile Processor- Apache NifiTailFile 处理器 - Apache Nifi
【发布时间】:2021-03-26 20:29:26
【问题描述】:

我正在使用 Tailfile 处理器从计划每分钟运行一次的集群(3 个节点)中获取日志。日志文件名每小时更改一次 我对应该使用哪种拖尾模式感到困惑。如果我使用单个文件,它不会获取 1 小时后生成的新文件。如果我使用多文件,它会在文件名更改第 3 分钟后获取文件,这会增加文件的大小。我的文件的滚动文件名应该是什么,我应该使用哪种模式。 你能告诉我吗。谢谢

我的文件名: retrieve-11.log(在 11:00 生成)- 这已被删除,但单文件模式仍会检查此文件 1小时后retrieve-12.log(12:00生成)

我的处理器配置:

拖尾模式:多个文件

文件到尾部:retrieve-${now():format("HH")}.log

滚动文件名模式:${filename}.*.log

基本目录:/ext/logs

初始开始位置:文件开头

州位置:本地

递归查找:假

查找频率:10 分钟

最长年龄:24 小时

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    听起来您并没有真正进行正常的日志文件滚动。例如,你写信给logfile.log,然后在 1 天后,你将logfile.log 移动为logfile.log.1,然后将新日志写入一个新的空logfile.log

    相反,听起来您只是根据小时将日志写入不同的文件。我假设这意味着您每 24 小时覆盖一次每个文件?

    那么这样的事情可能有用吗?

    编辑:

    鉴于您正在执行以下操作:

    At 10:00, `retrieve-10.log` is created. Logs are written here.
    At 11:00, `retrieve-11.log` is created. Logs are now written here.
    At 11:10, `retrieve-10.log` is moved.
    
    TailFile is only run every 10 minutes.
    

    然后根据小时定位文件将不起作用。在 10:00,您的 tailFile only 显示为 retrieve-10.log。在 11:00,您的 tailFile only 显示为 retrieve-11.log。所以最坏的情况是,您会在 10:50 到 11:00 之间错过 10 分钟的日志。

    鉴于另一个进程正在清理旧文件,因此无需担心旧文件的积压。所以听起来没有必要专门设置小时。

    tailing mode: multiple files
    files to tail: /path/retrieve-*.log
    

    这样,在 10:00,tailFile 尾随 retrieve-9.logretrieve-10.log。在 10 点 10 分,retrieve-9.log 被删除,它尾随 retrieve-10.log。在 11:00,它尾随 retrieve-10.logretrieve-11.log。在 11:10,retrieve-10.log 被删除,它尾随 retrieve-11.log。等等。

    【讨论】:

    • 感谢您的回复。我没有覆盖文件。每小时将生成新的日志文件,并将以前的文件移动到另一个文件夹。例如,如果日志文件是在上午 10:00 生成的,则文件名将是 retrieve-10,在接下来的一个小时上午 11:10,retrieve-10 将被移动,并在 11:00 生成retrieve-11。跨度>
    • 另外,由于另一端的一些内存问题,我将 tailfile 处理器更改为每 10 分钟运行一次。所以一旦retrieve-10在10:50被拖尾,处理器现在直接在11:00选择retrieve-11文件并忽略retrieve-10文件。
    • 最安全的选择是使用适当的日志文件滚动技术。如果那不可能,那就去做吧; tailing mode: multiple filesfiles to tail: /path/retrieve-*.log - 如果另一个进程已经在清理旧文件,那么您不需要使用 now() 调用来定位特定的时间文件 - 这就是您无法拾取旧文件的原因在它被删除之前的最后一次运行中。
    猜你喜欢
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2019-03-16
    相关资源
    最近更新 更多