Mysql
 sql >> Database >  >> RDS >> Mysql

Logstash non legge le nuove voci da MySQL

Per impostazione predefinita, il plug-in logstash-input-jdbc eseguirà l'istruzione SELECT una volta e quindi si chiuderà. Puoi modificare questo comportamento aggiungendo un schedule parametro con un'espressione cron alla tua configurazione, in questo modo:

input {
 jdbc {
   jdbc_driver_library => "C:/logstash/lib/mysql-connector-java-5.1.37-bin.jar"
   jdbc_driver_class => "com.mysql.jdbc.Driver"
   jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test"
   jdbc_user => "root"
   jdbc_password => ""
   statement => "SELECT * FROM transport.audit"
   schedule => "* * * * *"               <----- add this line
   jdbc_paging_enabled => "true"
   jdbc_page_size => "50000"
 }
}

Il risultato è che l'istruzione SELECT verrà eseguita ogni minuto.

Se avessi un campo data nella tua tabella MySQL (ma non sembra il caso), potresti anche usare il predefinito sql_last_start parametro per non reindicizzare tutti i record a ogni esecuzione. Questo parametro può essere utilizzato nella tua query in questo modo:

   statement => "SELECT * FROM transport.audit WHERE your_date_field >= :sql_last_start"