Лучший способ периодически вручную импортировать файлы журналов в Graylog с помощью logstash

В настоящее время я использую logstash для импорта десятков файлов журналов из разных веб-приложений в Graylog. Он отлично работает, файлы помечены, поэтому я знаю, из какого веб-приложения они происходят.

Я не могу изменить веб-приложение, поэтому я не могу добавить приложение GELF в конфигурацию log4j веб-приложения. Идея состоит в том, чтобы периодически извлекать файлы журналов, анализировать их и импортировать с помощью logstash в Graylog.

Моя проблема заключается в том, как мне убедиться, что я не импортирую событие журнала, которое я уже импортировал. Например, у меня есть файл журнала с увеличивающимся шаблоном журнала: log.1, log.2 и т. д. Таким образом, у меня будут события журнала, которые могут быть в log.1 в первый раз и через 2 недели, когда я повторно импортирую они, возможно, будут в журнале.3. Боюсь, я не могу справиться с этим с вводом файла logstash «sincedb_path» и «start_position».

Итак, вот несколько вариантов, которые я собрал, и мне бы хотелось, чтобы вы рассказали о них, если кто-то столкнулся с той же проблемой:

  • Используйте фильтр logstash, отбрасывающий все события до определенной даты, требующий хранения индекса каждой последней даты журнала каждого импортированного файла (потенциально 50+) и много записи конфигурации
  • Использование правила drool в GrayLog для отклонения журналов с отметками времени до последнего журнала, полученного для данного типа.
  • Попросите изменить шаблон журнала, чтобы он был чем-то вроде log.date вместо шаблона журнала, который переименовывает файлы (но я бы предпочел избежать этого)
  • Любая другая идея?

person IppX    schedule 07.04.2015    source источник
comment
Меняет ли ваша ротация журналов индексный дескриптор файла? В противном случае Logstash может игнорировать его, так как база данных отслеживает файлы по inode, а не по имени.   -  person rutter    schedule 07.04.2015
comment
Я не знал об этом, но да, он изменяет индекс файла, когда создается новый файл журнала и .log перемещается в .log.1, .log.1 сохраняет свой индекс индекса, а новый .log имеет новый один. Итак, если logstash использует номер инода для отслеживания файлов, он должен правильно обнаруживать изменения?!   -  person IppX    schedule 08.04.2015
comment
Я бы проверил его на безопасность, но поскольку Logstash отслеживает файлы по inode, похоже, с вами все будет в порядке.   -  person rutter    schedule 09.04.2015
comment
@lppX- пожалуйста, ответьте на мой вопрос stackoverflow.com/questions/31003208/   -  person Alok Singh Mahor    schedule 23.06.2015