我是ELK堆栈的全新手,所以请原谅我的无知。我已经能够让Logstash将数据从我的数据库发送到Elasticsearch,但是一旦完成传输它就会退出。如何让它保持运行以使它们保持同步?感谢
答案 0 :(得分:2)
您需要在jdbc
输入中指定schedule:
下面的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"
}
}