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

Logstash,为项目中的每个包添加索引,logstash,logstash-grok,logstash-configuration,Logstash,Logstash Grok,Logstash Configuration,我有来自不同软件包的日志 比如说, com.example.package1.subpackage1.MyClass com.example.package1.subpackage2.MyClass com.example.package2.subpackage1.MyClass com.example.package2.subpackage2.MyClass 我想为package1和package2创建索引 目前logstash配置如下: filter { if "package

我有来自不同软件包的日志

比如说,

com.example.package1.subpackage1.MyClass
com.example.package1.subpackage2.MyClass
com.example.package2.subpackage1.MyClass  
com.example.package2.subpackage2.MyClass
我想为
package1
package2
创建索引

目前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{}过滤器将名称提取到日志存储字段中,然后您可以在输出{}节中引用该字段。

如何通过grok从
com.example.package1.subpackage1.MyClass
中提取
package1
?浏览grok手册页,在grok调试器中测试内容,然后在此处或IRC上询问问题(如果不起作用)。