Logstash:没有扩展名的正则表达式匹配文件



我想在 Logstash 配置文件中排除没有扩展名的文件

我需要用正则表达式来做到这一点,但无法实现。我遵循的路径是排除名称中不包含点的任何文件。

我已经阅读了很多并尝试过,但 Logstash 一直在吃我需要排除的文件,以免转发到 ElasticSearch。

我最后一次尝试和错误:

input {
    file {
            type => "exe-data"
            path => "/elastic-data/**/*"
            start_position => "beginning"
            sincedb_path => "/dev/null"
            codec => plain { charset => "ISO-8859-1" }
            exclude => "*.gz"
            exclude => "*.zip"
            exclude => "^([^.]+)$"

虽然文件输入上的exclude可能不支持正则表达式,但您可以在过滤阶段处理此问题。

filter {
  if [path] =~ "^/elastic-data/[^.]+$" {
    drop {}
  }
  otherfilter {
  }
}

通过将drop {}作为筛选管道中的第一阶段,引入无点文件的影响最小。

最新更新