Я использую logstash-logback-encoder для отправки журналов в Elasticsearch.
В частности я использую LoggingEventCompositeJsonEncoder
Журнал моего приложения выглядит примерно так:
07/05/18 12:35:01.325 [main] INFO o.s.c.a.AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@49e5f737: startup date [Mon May 07 12:35:01 CEST 2018]; root of context hierarchy
...
07/05/18 12:35:01.932 [main] INFO o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
07/05/18 12:35:01.950 [main] INFO it.test.elk.ELKTestApplication - Started ELKTestApplication in 0.956 seconds (JVM running for 1.645)
07/05/18 12:35:01.952 [Thread-6] INFO o.s.c.a.AnnotationConfigApplicationContext - Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@49e5f737: startup date [Mon May 07 12:35:01 CEST 2018]; root of context hierarchy
07/05/18 12:35:01.955 [Thread-6] INFO o.s.j.e.a.AnnotationMBeanExporter - Unregistering JMX-exposed beans on shutdown
Я хочу отправлять в elasticsearch только журналы, относящиеся к пакету it.test.elk..
Вы можете сделать это с помощью Grok? Или мне нужно специально настроить logback.log?
если [сообщение] = ~ /it.test.elk/? Это правильно ? "сообщение" - стандартное поле? Как я могу узнать, не увидев вывод на Кибане?
message должен быть стандартным полем при использовании logstash-logback-encoder, поэтому if [message] =~ /it.test.elk/ {} должен работать. Без использования кибаны вы можете использовать вывод stdout или файл logstash, чтобы проверить, что происходит.




Не нужно использовать Grok. Используйте условные с
=~ /it.test.elk/