В документации logstash указано, что вы можете свернуть несколько строк с отступом в записи журнала Java stacktrace в одно событие, используя многострочный кодек:
https://www.elastic.co/guide/en/logstash/current/plugins-codecs-multiline.html
input {
syslog {
type => syslog
port => 8514
codec => multiline {
pattern => "^\s"
what => "previous"
}
}
}
Это основано на том, что logstash находит отступ в начале строки и объединяет его с предыдущей строкой.
Однако документация logstash - единственное место, где я могу найти ссылку на это. Общее сообщество пользователей, похоже, использует сложные фильтры Grok для достижения того же эффекта.
Я пробовал базовый шаблон отступа, предоставляемый logstash, но он не работает. Кому-нибудь еще удалось заставить это работать, сопоставив шаблон отступа?
Да, но не с syslog {}
ввод. Я сделал это с file {}
ввод и журналы Tomcat. Если трассировки стека попадают в системный журнал с новым событием в каждой строке и все еще имеют обычный префикс системного журнала в виде отметки даты и т. Д., Повторная сборка их в единый дамп стека становится намного сложнее. Это все еще можно сделать, но для этого требуются гораздо более обширные фильтры.
multiline {}
фильтр в поле SYSLOGMESSAGE, чтобы заново собрать дамп стека.-w
flag), это единственный способ убедиться, что вся трассировка стека собрана.По возможности лучше использовать file {}
codec в файле, в который отправляются трассировки стека, и используйте метод отступа, который вы уже нашли.