Собственно вопрос, как можно отследить данные от попадания в поле input logstash до их индексации elasicsearch.
Есть подозрение, что теряются некоторые строки из sql-запросов.
Также большие объемы данных не сразу становятся доступны в elasticsearch. Разница по времени отображения в kibana может быть до 10 минут. При этом данные приходят все.
По tcpdump на сервере логсташ по исходящему порту, данные уходят вовремя. Ошибок в логах нет. Если они становятся в очередь для индексации в эластике, как это лучше оперативно мониторить?
От безысходности пробовал построить визуализацию timestamp от row_number добавив в запросы sql postgres (SELECT row_number() OVER(), * ... ).
Подскажите, пожалуйста, что еще можно проверить и как правильно сделать?
Elasticsearch буферизирует записи в памяти перед тем как их индексирует. Это делается для увеличения скорости индексации, так как каждый слив буфера (refresh) создает новый сегмент, который потом должен сливаться в больший сегмент и т.д. Другими словами, увеличение refresh_interval ускоряет процесс индексирования. Однако, это также означает, что новый данные могут не появляться в результатх поиска в течение этого самого refresh_interval то есть 555 секунд или, примерно, 10 минут.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.