对多个文件使用 sql_last_value:Logstash

Use sql_last_value for more than one file: Logstah

我有一个来自 logstash

的 jdbc 配置文件
statement => "SELECT * from TEST where id > :sql_last_value"

其中包括上述查询。

假设我有 2 个或更多 conf 文件,如何区分我的 sql_last_value?

我可以给一个别名来区分它们吗?怎么样?

想法是在每个配置文件中配置不同的last_run_metadata_path值。例如:

配置文件1:

input {
  jdbc {
    ...
    last_run_metadata_path => "/Users/me/.logstash_jdbc_last_run1"
    ...
  }
}

配置文件2:

input {
  jdbc {
    ...
    last_run_metadata_path => "/Users/me/.logstash_jdbc_last_run2"
    ...
  }
}

@Val 的回答是实现各种 .logstash_jdbc_last_run 文件的正确方法。

除此之外,我想给你一些关于在同一管道中实现多个 jdbc 输入插件的提示:

您需要记住,当一个输入插件抛出一些错误(例如查询不正确,数据库用户没有授权等)时,整个管道将停止——不仅是相应的输入插件。这意味着您可以阻止您的其他输入插件(它可能运行良好)。

因此,避免这种情况的一种常见方法是仅使用一个 jdbc 输入插件指定多个管道。然后您可以决定是否要复制其余插件(过滤器和输出)或使用管道输出插件将传入请求发送到中央处理管道。