Mysql
 sql >> Base de données >  >> RDS >> Mysql

Logstash ne lit pas les nouvelles entrées de MySQL

Par défaut, le plug-in logstash-input-jdbc exécutera votre instruction SELECT une fois, puis quittera. Vous pouvez modifier ce comportement en ajoutant un schedule paramètre avec une expression cron à votre configuration, comme ceci :

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"
 }
}

Le résultat est que l'instruction SELECT s'exécutera désormais toutes les minutes.

Si vous aviez un champ de date dans votre table MySQL (mais cela ne semble pas le cas), vous pouvez également utiliser le sql_last_start prédéfini paramètre afin de ne pas réindexer tous les enregistrements à chaque exécution. Ce paramètre peut être utilisé dans votre requête comme ceci :

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