Это кажется довольно простой проблемой, но на данный момент я думаю, что мне просто нужна вторая пара глаз. У меня есть сообщения журнала filebeat, поступающие в конвейер logsta sh. Эти сообщения будут иметь несколько строк, если вы включите трассировку стека исключений. Ниже приведены несколько примеров.
code
BL: | LL: ERROR | TS: random value | MSG: Payment Type 2 | :EL
BL: | LL: ERROR | TS: 2020-05-03 09:06:29,932 | AR: 38.0.0.51 | LOC: 00742 | USER:
DASHBOARD_REFRESH | HOST: 0.0.0.0 | DC: null | MSGID: 1231456478912314869156: |SC:
some.java.class | MSG: SOME useful ERROR Message |
Exception in thread "main" java.lang.NullPointerException: Fictitious NullPointerException
at StackTraceExample.method111(StackTraceExample.java:15)
at StackTraceExample.method11(StackTraceExample.java:11)
at StackTraceExample.method1(StackTraceExample.java:7)
at StackTraceExample.main(StackTraceExample.java:3)
:EL
code
Я хочу сопоставить первое сообщение, указав, что у него нет ровно 11 каналов для добавления тега «Ошибка разделителя» и позволить второму сообщению продолжить работу в моем конвейере. Выражение в его нынешнем виде фактически превращает logsta sh в процесс cra sh.
code
filter {
if [message] =~ /^(\|{0,10}|\|{12,})$/{
mutate {
add_tag => [ "Delimiter Error" ]
}
}
}
code