Удалить журналы после потребления: logstash

У меня logstash просматривает каталог на хосте. Каждый раз, когда он видит журнал, соответствующий пути, который я указал в конфигурации logstash, он начинает импортировать данные в мой кластер elasticsearch. Есть ли у logstash способ удалить журнал после того, как он закончил его использование?

Я хочу написать скрипт для удаления журналов, с которыми уже работал logstash, но как мне узнать, с какими журналами он работал?

может быть, вы, ребята, делали это раньше или у вас есть идея, как это реализовать?


person tomer    schedule 10.06.2015    source источник


Ответы (2)


В настоящее время Logstash не может удалять файлы. В центре внимания плагин ввода файлов для постоянного мониторинга файлов, но нет возможности узнать, когда файл будет готов, т.е. когда больше не будет производиться запись.

Если вы знаете, когда файлы «готовы», вы можете вызвать Logstash и передать файлы через плагин ввода стандартного ввода. Logstash прекратит работу после получения конца файла, и тогда ваш скрипт может удалить файл.

Вы также можете прочитать файлы с баз данных и сравнить текущее смещение файла Logstash с размером соответствующего файла. Подробнее о формате файлы с БД.

Или вы можете просто убедиться, что у вас достаточно места на диске, и использовать обычную ротацию журналов для удаления файлов на основе, например. возраст. Место на диске, вероятно, дешевле, чем ваше время.

person Magnus Bäck    schedule 11.06.2015

В новой версии logstash (V4.1.3) теперь есть такая возможность. Действие можно указать в плагине file_input_plugin в атрибуте «file_completed_action». Согласно их docs Какое действие должно быть выполнено в режиме чтения, когда файл завершен. Если указано удаление, файл будет удален.

person Umair Khalid    schedule 12.10.2018