Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Logstash não está lendo novas entradas do MySQL


Por padrão, o plug-in logstash-input-jdbc executará sua instrução SELECT uma vez e sairá. Você pode alterar esse comportamento adicionando um schedule parâmetro com uma expressão cron para sua configuração, assim:
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"
 }
}

O resultado é que a instrução SELECT agora será executada a cada minuto.

Se você tivesse um campo de data em sua tabela MySQL (mas não parece ser o caso), você também pode usar o sql_last_start predefinido parâmetro para não reindexar todos os registros em cada execução. Esse parâmetro pode ser usado em sua consulta assim:
   statement => "SELECT * FROM transport.audit WHERE your_date_field >= :sql_last_start"