Я пытаюсь развернуть ELK на kubernetes, но я застрял на logback configure.Logback должен отправлять журналы в logstash, но он игнорирует logback.xml
Содержимое этого файла:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread, %X{X-B3-TraceId:-},%X{X-B3-SpanId:-}] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="STASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>logstash:5000</destination>
<encoder
class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<mdc/>
<context/>
<version/>
<logLevel/>
<loggerName/>
<pattern>
<pattern>
{
"serviceName": "account-service"
}
</pattern>
</pattern>
<threadName/>
<message/>
<logstashMarkers/>
<stackTrace/>
</providers>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="STASH"/>
</root>
</configuration>
Локально это работает, также работает докер.Но если я разверну его в kubernetes, Spring игнорирует этот файл.
Для развертывания я использую этот файл dockerfile:
FROM openjdk:11-jre
ADD build/libs/account-service-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Dspring.profiles.active=prod",-jar","/app.jar"]
Свойства получаются через конфигурацию облака.Я даже пытаюсь добавить это в account-service-prod.yml:
logging:
path: classpath:logback.xml