带有多个表的Logstash jdbc输入插件

带有多个表的Logstash jdbc输入插件,logstash,logstash-configuration,Logstash,Logstash Configuration,我们使用Logstash将数据从RDBMS中获取到弹性搜索中。目前,我有多个配置文件,每个配置文件都有一个针对我们要索引的每个表的查询。虽然这看起来效果不错,但有没有更好的方法呢 注意:我们不能使用存储过程。您可以在一个配置中使用多个输入插件(相同类型) input { jdbc { jdbc_driver_library => "mysql-connector-java-5.1.15.jar" ... remaining config ... statement =&g

我们使用Logstash将数据从RDBMS中获取到弹性搜索中。目前,我有多个配置文件,每个配置文件都有一个针对我们要索引的每个表的查询。虽然这看起来效果不错,但有没有更好的方法呢


注意:我们不能使用存储过程。

您可以在一个配置中使用多个输入插件(相同类型)

input {
  jdbc {
  jdbc_driver_library => "mysql-connector-java-5.1.15.jar"
  ... remaining config ... 
  statement => "SELECT * FROM t1;"
  type => "score-history"
  }
}

jdbc {
  jdbc_driver_library => "mysql-connector-java-5.1.15.jar"
  ... remaining config ... 
  statement => "SELECT * from table2"
  type => "score"
  }
}
恐怕没有办法在两个插件之间共享连接字符串和其他配置选项。根据输入插件中设置的类型,处理的其余部分可能会有所不同,例如

filter{
  if [type] == "score-history" {
  date {
    match => [ "sctimestamp", "UNIX" ]
    }
  }
}

我还没有尝试过,但我认为像GNU m4这样的预处理器可能是解决类似问题的好方法。