Logstash,为项目中的每个包添加索引

Logstash, add index for every package in project

我有来自不同包的日志,

例如,

com.example.package1.subpackage1.MyClass
com.example.package1.subpackage2.MyClass
com.example.package2.subpackage1.MyClass  
com.example.package2.subpackage2.MyClass

我想为 package1package2

创建索引

当前 logstash 配置如下:

filter {
    if "package1" in [logger_name] {
      mutate {
        add_tag => "package1"
      }
    }

    if "package2" in [logger_name] {
      mutate {
        add_tag => "package2"
      }
    }
}

output {
    if "package1" in [tags] {
      elasticsearch {
        index => "package1"
      }
    }

    if "package2" in [tags] {
      elasticsearch {
        index => "package2"
      }
    }
}

但是每次添加新包时,我都需要使用新配置重新启动 logstash,是否可以创建更通用的配置?

使用 grok{} 过滤器将名称提取到 logstash 字段中,然后您可以在输出{} 节中引用它。