Итак, я написал несколько шаблонов для журналов, которые работают. Дело в том, что у меня есть несколько журналов с несколькими шаблонами в одном файле. Как logstash знает, какой шаблон он должен использовать, для какой строки в журнале? (Я использую grok для моей фильтрации). И если вы, ребята, были бы добрыми, не могли бы вы дать мне ссылку на документы, потому что я ничего не смог найти по этому поводу:/Несколько шаблонов в одном журнале
0
A
ответ
5
Вы можете использовать несколько шаблонов для ГРОК фильтра,
grok {
match => ["fieldname", "pattern1", "pattern2", ..., "patternN"]
}
и они будут применяться в порядке, но а) это не самый лучший вариант точки зрения производительности и б) вы, вероятно, хотите по-разному в любом случае, чтобы рассматривать различные типы журналов, поэтому я предлагаю вам использовать условные обозначения на основе типа или тегов сообщения:
if [type] == "syslog" {
grok {
match => ["message", "your syslog pattern"]
}
}
Установите тип во входном плагине.
Документация к выпущенной в настоящее время версии Logstash находится на http://logstash.net/docs/1.4.2/. Вероятно, это не относится конкретно к вашему вопросу, но это можно сделать.
0
Написать наиболее специфический ГРОК первый и использовать этот синтаксис:
grok {
match => {
"message" => [
#Most specific grok:
"%{TIMESTAMP_ISO8601:temp_date}%{SPACE}%{LOGLEVEL:log_level}%{UUID:user_id}",
#Less specific:
"%{TIMESTAMP_ISO8601:temp_date}%{SPACE}%{GREEDYDATA:log_message}"
]
}
}