【问题标题】:How to include regular expression in logstash file input path如何在logstash文件输入路径中包含正则表达式
【发布时间】:2016-03-24 10:11:34
【问题描述】:

我正在使用logstash将tomcat访问日志转换成json格式。访问日志名称采用以下格式

abcd_access_log.2016-03-15.log
efgh_access_log.2016-02-16.log

输入过滤器是:

input { 
    file {
        path => "C:\tools\apache-tomcat-8.0.32\logs\*_access_log.*.log"
        start_position => beginning
    } 
}

它没有显示使用正则表达式的日志。我应该在这里使用什么正则表达式来仅选择这些文件?

【问题讨论】:

  • 在 logstash 2.3 中,我发现 Windows 路径必须使用正斜杠,就像在 Linux 中一样。也许这会对某人有所帮助。

标签: regex logstash-configuration logstash-file


【解决方案1】:

简单快捷的方式

如果您的log 文件总是在logs\ 之后,您可以使用以下正则表达式:

logs\\(.*?\.log)

捕获.*? 后跟logs\ 的所有内容(请注意正则表达式中的双重\\)。此外,您的文件以.log 结尾,所以不要忘记用\.log 转义点。

详细说明在Regex101


防弹且速度较慢的方式

如果缺少关键字符 logs\,您可以使用以下正则表达式,它捕获路径的最后一部分,使用否定 lookahead

\\((?:.(?!\\))+\.log)

这里再次详细说明:Regex101

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2021-03-23
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    相关资源
    最近更新 更多