sql >> Base de Datos >  >> RDS >> Mysql

Logstash no lee nuevas entradas de MySQL

De forma predeterminada, el complemento logstash-input-jdbc ejecutará su declaración SELECT una vez y luego se cerrará. Puede cambiar este comportamiento agregando un schedule parámetro con una expresión cron a su configuración, como esta:

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

El resultado es que la instrucción SELECT ahora se ejecutará cada minuto.

Si tenía un campo de fecha en su tabla MySQL (pero no parece ser el caso), también podría usar el sql_last_start predefinido parámetro para no volver a indexar todos los registros en cada ejecución. Ese parámetro se puede usar en su consulta de esta manera:

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