Предположим, у вас есть 2 очень разных типа журналов, таких как технические и бизнес-журналы, и вы хотите:
- необработанные технические журналы должны быть направлены на сервер graylog2 с использованием
gelf
вывода, - Бизнес-журналы json хранятся в кластере elasticsearch с использованием выделенного
elasticsearch_http
вывода.
Я знаю, что, Syslog-NG
например, файл конфигурации позволяет определить несколько отдельных входных данных, которые затем могут обрабатываться отдельно перед отправкой; что Logstash
кажется неспособным сделать. Даже если один экземпляр может быть запущен с двумя конкретными файлами конфигурации, все журналы используют один и тот же канал и применяются одинаковые обработки ...
Должен ли я запускать столько экземпляров, сколько у меня разных типов журналов?
Ответы:
Нет! Вы можете запустить только один экземпляр для обработки разных типов журналов.
В файле конфигурации logstash вы можете указать каждому входу свой тип . Затем в фильтре вы можете использовать if для разделения различных обработок, а также на выходе вы можете использовать вывод «if» в другое место назначения.
Надеюсь, это поможет вам :)
источник
type
атрибут (с тем жеtype => "value"
синтаксисом) в определениях фильтра и вывода, что должно немного сократить дополнительное форматирование в файле конфигурации. Пример: gist.github.com/fairchild/3030472 В документации: добавьте поле «тип» ко всем событиям, обрабатываемым этим входом. Типы используются в основном для активации фильтров. Тип сохраняется как часть самого события, поэтому вы также можете использовать этот тип для его поиска в веб-интерфейсе.type => "value"
в выводе, у меня появилось следующее сообщение: «Вы используете устаревший параметр конфигурации» type, установленный в stdout. Устаревшие настройки будут продолжать работать, но их планируется удалить из logstash в будущем. Вы можете добиться такое же поведение с новыми условными выражениями, например:.if [type] == "sometype" { stdout { ... } }
" Я отказываюсь от своего предыдущего комментария. :)type
атрибут не будет применяться, если уже есть поле типа из ввода. Это специальный атрибут, который не отменяет, и он задокументирован. Я открыл тикет в Elastic, и мне порекомендовали использоватьtags
илиadd_field
вместоtype
Я использовал теги для ввода нескольких файлов:
источник
Я думаю, что logstash не может читать более 2 файлов в разделе ввода. попробуйте ниже
источник