Я пытаюсь взять данные журнала из пользовательского приложения, которое имеет четко определенный формат. Я пытаюсь выделить определенные части данных, используя фильтр grok, но мне не повезло. Вот образец журнала:Как вытащить определенные данные из сообщения в LogStash
- System.Data.SqlClient.SqlException (0x80131904): Arithmetic overflow error converting IDENTITY to data type int.
Arithmetic overflow occurred.
То, что я хотел бы сделать, это извлечь вне SqlException из строки. Вот Grok, что я использую:
grok{
match =>
{
"message" =>
[
"(?m)%{DATE:TIMESTAMP_DATE}%{SPACE}%{TIME:TIMESTAMP_TIME}%{SPACE}%{WORD:LOG_LEVEL}%{SPACE}(?<THREAD>[^\s]+)%{SPACE}(?<HOST>[^\s]+)%{SPACE}%{GREEDYDATA:MESSAGE}",
"(?<EXCEPTION>[.*]+)"
]
}
}
Я попробовал несколько различных способов, но я предполагаю, что я не совсем понимая документацию. Я бы ожидал, что все поля, которые у меня есть в первом наборе, будут включать результат второго набора. Другими словами:
TIMESTAMP_DATE,TIMESTAMP_TIME,LOG_LEVEL,THREAD,HOST,MESSAGE,EXCEPTION
Я получаю другие поля отлично, это просто дополнительное совпадение, которое мне не хватает. Любая помощь будет оценена по достоинству. Спасибо
Пожалуйста, помечать более тщательно. [tag: elki]! = [tag: elk-stack]. –