Как использовать Logstash для передачи данных MongoDB в Elasticsearch?

#database #mongodb #elasticsearch #logstash #logstash-configuration

Вопрос:

Я создал лог-таблицу для фильтрации данных MongoDB в коллекции базы данных, а затем перенес ее в Elasticsearch. Вот мои конфигурации журналов:

 input{  mongodb{  uri =gt; 'mongodb://user:pass@ip:27017'   placeholder_db_dir =gt; '/opt/logstash-mongodb/'  placeholder_db_name =gt; 'db_name'  collection =gt; "collection_name"  batch_size =gt; 500  }  }   filter {  grok { match =gt; [ "creationDate", "2021-10-26T05:17:00.050 00:00" ] } }   output{  elasticsearch{  action =gt; "index"  hosts =gt; ["localhost:9200"]  index =gt; "index_name"  doc_as_upsert =gt; true  document_id =gt; "%{[document][_id]}"  }  stdout{ codec =gt; json }  }  

Проблема в том , что, когда я запускаю Logstash с помощью bin/logstash -f /etc/logstash/conf.d/mongodata.conf , он остается в режиме «конвейер запущен» в течение длительного времени (более 1 недели!) и в Kibana не отображается вывод.

Вот изображение оболочки во время ее выполнения.(Logstash)

Надеюсь, у кого-нибудь есть идея о том, что мне следует делать.

Комментарии:

1. при запуске этого файла conf вы должны получить вывод для всех обработанных записей из модуля вывода stdout. Если их нет, это означает, что из монгодба ничего не извлекают.

2. Для кибаны одной из существующих ловушек является выбор диапазона дат: кибана будет отображать данные только внутри этого диапазона, поэтому, если временная метка данных выходит за его пределы, это нормально, что она не отображается.

3. Спасибо за ваш вклад. Индекс Elasticsearch не был создан. Я приложил фотографию расстрелянного снаряда. Похоже, что соединение с базой данных MongoDB существует, но данные в Elasticseasrch не передаются.