我是ELK堆栈的新手,所以请原谅我的无知。我已经能够让Logstash将数据从我的数据库发送到Elasticsearch,但是一旦完成传输,它就会退出。我如何保持其运行,从而使其保持同步?谢谢
您需要在输入中指定时间表jdbc:
jdbc
在schedule下面的(* * * * *)将运行从数据库的每一分钟,并选择记录,并只选择那些上一次查询运行后,被更新的记录。您的updated时间戳字段名称可能有所不同,可以根据情况进行调整。
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" } }