Я использую logstash-1.4.0 с elasticsearch 1.3.4 и kibana 3.1.1 (я знаю, что устарел, это лучшее, что я могу сделать прямо сейчас).
Пример журнала:
2016-05-31 16:05:33 RequestManager [INFO] Ручной флаг LOLROFLin TRALALA 123456 был изменен на true
Мой фильтр grok:
filter {
grok {
match => { "message" => "%{DATESTAMP:timestamp} %{WORD:clazz} %{NOTSPACE:level} %{GREEDYDATA:content}"}
}
if (!([stack_trace])) and (!([clazz] == "RequestAsset")) {
drop {}
}
}
Мои вопросы:
Почему я не вижу полей гроков в кибане? Я вижу только поля по умолчанию, но не свои. Grok Debugger показывает успех, но кибана не работает.
Моя цель - удалить любое сообщение журнала, которое не имеет трассировки стека ИЛИ не из класса (называемого clazz в моем фильтре Grok) "RequestAsset". Должно ли это сработать? Могу ли я использовать поля, созданные фильтром Grok, в отдельном фильтре if?
РЕДАКТИРОВАТЬ: Я понял, что пошло не так, я использовал плагин log4j, который уже разделяет журнал на его содержимое, а сообщение поля уже было просто самим сообщением.