一尘不染

如何保持Logstash运行,以便将数据从RDBMS同步到ES?

elasticsearch

我是ELK堆栈的新手,所以请原谅我的无知。我已经能够让Logstash将数据从我的数据库发送到Elasticsearch,但是一旦完成传输,它就会退出。我如何保持其运行,从而使其保持同步?谢谢


阅读 238

收藏
2020-06-22

共1个答案

一尘不染

您需要在输入中指定时间表jdbc

schedule下面的(* * * * *)将运行从数据库的每一分钟,并选择记录,并只选择那些上一次查询运行后,被更新的记录。您的updated时间戳字段名称可能有所不同,可以根据情况进行调整。

input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
    jdbc_user => "mysql"
    parameters => { "some_field" => "value" }
    schedule => "* * * * *"
    statement => "SELECT * from songs WHERE some_field = :some_field AND updated > :sql_last_value"
  }
}
2020-06-22