【问题标题】:How to configure Logstash to use one event for one file (for parsing mails)?如何将 Logstash 配置为对一个文件使用一个事件(用于解析邮件)?
【发布时间】:2017-05-30 18:51:30
【问题描述】:

目标:分析存储在文件中的大量电子邮件。 我使用 offlineimap 工具将电子邮件下载到本地文件。

我对 ELK 有点熟悉,但不确定如何正确配置 Logstash 以在每个文件中存储一个事件。

我还没有尝试过多行插件,因为我没有完整的文件开始/结束规则。我只想解析所有文件并为每个文件存储一个事件,无论它如何开始/结束。

注意:无法使用 Logstash imap 插件,因为它仅获取和存储新电子邮件,它不会从服务器加载所有邮件。

不同用例的类似问题:Logstash Multiline filter 不幸的是,两年多来没有任何答案。

【问题讨论】:

    标签: email parsing logstash imap elastic-stack


    【解决方案1】:

    Logstash Multiline filter 的 cmets 中提出了解决方案,并且成功了。基本上我必须在所有文件的末尾添加一些字符串,然后使用多行插件。

    创建的 shell 脚本用额外的行更新所有文件:

    for file in **/**/*; do
      echo 'ENDOFMAILFILE' >> "$file"
    done
    

    之后我在logstash中使用了多行插件

    input {
      file {
        type => "logmail"
        path => [ "/var/log/mail/**/*" ]
        start_position => "beginning"
        codec => multiline {
          pattern => "^ENDOFMAILFILE$"
          negate => "true"
          what => "previous"
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      相关资源
      最近更新 更多