JDBC входной плагин logstash извлекает данные из MySQL несколько раз - PullRequest
0 голосов
/ 04 июля 2019

Плагин Logstash jdbc многократно извлекает данные из mysql и продолжает создавать документы вasticsearch

Для 600 строк в mysql он создает 8581812 документов вasticsearch

Я создал несколько файлов конфигурации дляизвлекать данные из каждой таблицы в mysql и помещать в папку /etc/logstash/conf.d. Запустить службу logstash как sudo systemctl. Запустить logstash. Выполнить следующую команду, чтобы выполнить файлы / usr / share / logstash / bin / logstash -f / etc / logstash /conf.d / spt_audit_event.conf Данные успешно получены

input{
jdbc {
jdbc_driver_library => "/usr/share/jdbc_driver/mysql-connector-java-5.1.47.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://:3306/"
jdbc_user => ""
jdbc_password => ""
statement => "select * from spt_identity"
}
}

output {
elasticsearch {
"hosts" => "localhost:9200"
"index" => ""
}
stdout {}
}

Фактические результаты

Количество документов вasticsearch продолжает увеличиваться и достигло 8581812, но в таблице mysql всего 600 строк.ошибка в плагине или я что-то не так делаю?

1 Ответ

0 голосов
/ 04 июля 2019

Вы должны указать уникальный номер для упругого поиска

Во избежание проблем с дублированием на elasticsearch может потребоваться добавить уникальный идентификатор для документов на elasticsearch.

Измените logstash.conf, добавив "document_id" => "%{studentid}" в вывод, как показано ниже.

output {
  stdout { codec => json_lines }
  elasticsearch {
  "hosts" => "localhost:9200"
  "index" => "test-migrate"
  "document_id" => "%{studentid}"
  }

В вашем случае это будет не студенчество, а что-то еще. Найдите то же самое и добавьте его в свою конфигурацию.

...