Синхронизация данных из mongoDB вasticsearch с использованием Logstash - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь синхронизировать c базу данных mongoDB с эластичным поиском. Я использую плагины logsta sh -input-mongoDb и logsta sh -output -asticsearch .

Проблема в том, что плагин mongoDb не может извлечь всю информацию из вставленного документа в mongodb, поэтому я вижу только несколько полей, вставляемых вasticsearch. И я также получаю весь запрос в виде журнала в индексе эластичного поиска. Я попытался манипулировать фильтрами в файле конфигурации для logsta sh и изменить входные данные наasticsearch, но не смог заставить его работать.

Любая помощь или предложение было бы здорово.



Редактировать :
Пн go схема:

A:{
  B: 'sometext',
  C: {G: 'someText', H:'some text'}
},
D:[
 {E:'sometext',F:'sometext'},
 {E:'sometext',F:'sometext'},
 {E:'sometext',F:'sometext'}
]

плагин:

    input {
    mongodb {
        uri => 'mongodb://localhost:27017/testDB'
        placeholder_db_dir => '/opt/logstash-mongodb/'
        placeholder_db_name => 'logstash_sqlite.db'
        collection => 'testCOllection'
        batch_size => 1000
    }
}
output {
        stdout {
                codec => rubydebug
        }
        elasticsearch {
                action => "index"
                index => "testdb_testColl"
                hosts => ["localhost:9200"]
        }
}

вывод в elasti c:

{
    //some metadata
    A_B: 'sometext',
    A_C_G: 'someText',
    A_C_H: 'some text',
    log_entry: 'contains complete document inserted to mongoDB'
}

Мы не получаем свойство D из mon go коллекции в elasti c. Надеюсь, что это объясняет проблему более подробно.

1 Ответ

0 голосов
/ 27 марта 2020

, поскольку ваша конфигурация выглядела хорошо для меня, я проверил проблемы репозитория phutchins/logstash-input-mongodb и обнаружил следующее: " массив не сохранен вasticsearch ", который в значительной степени описал вашу проблему. Это все еще открытый вопрос, но вы можете попробовать обходной путь, предложенный ivancruzbht . Такой обходной путь использует фильтр ruby Logsta sh для анализа поля log_entry, которое, как вы также подтвердили, имеет все поля - включая D.

...