【发布时间】:2017-06-11 06:56:28
【问题描述】:
我在 Spring Boot 应用程序中使用 Docker ELK 堆栈。所有三个组件均已启动并分别在 http://192.168.99.100:5601/、http://192.168.99.100:9200/ 和 192.168.99.100:5000 运行。
我的 logback-spring.xml 看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<keepAliveDuration>5 minutes</keepAliveDuration>
<reconnectionDelay>10 second</reconnectionDelay>
<waitStrategyType>sleeping</waitStrategyType>
<destination>192.168.99.100:5000</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<mdc/> <!-- MDC variables on the Thread will be written as JSON fields-->
<context/> <!--Outputs entries from logback's context -->
<logLevel/>
<loggerName/>
<pattern>
{
"timestamp": "%date{\"yyyy-MM-dd'T'HH:mm:ss,SSSXXX\", UTC}",
"level": "%level",
"logger": "%logger",
"message": "%message",
"logstashMarkers": "%marker"
}
</pattern>
<threadName/>
<message/>
<logstashMarkers/> <!-- Useful so we can add extra information for specific log lines as Markers-->
<arguments/> <!--or through StructuredArguments-->
<stackTrace>
<fieldName>stackTrace</fieldName>
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
<exclude>net\.sf\.cglib\..*</exclude>
<maxDepthPerThrowable>30</maxDepthPerThrowable>
<rootCauseFirst>true</rootCauseFirst>
</throwableConverter>
</stackTrace>
</providers>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="stash"/>
</root>
问题是我无法在 Kibana 中看到我的日志,我怀疑 LogstashTcpSocketAppender 没有将日志发送到 Logstash。有没有一种方法可以验证 LogstashTcpSocketAppender 是否正在向 Logstash 发送日志?
【问题讨论】:
-
在调试模式下启动logstash。然后运行你的 spring boot 应用并检查
-
logstash.yml-->config.debug: true。该属性已设置,但未显示任何消息
-
转到 /usr.share/logstash 并键入 bin/logstash -f path/to/logstash.conf --log.level 调试。确保您以 sudo 身份登录。
-
<pattern><pattern>...</pattern></pattern>因为原因...(见:github.com/logstash/logstash-logback-encoder#provider_pattern)
标签: java spring spring-boot docker-compose elastic-stack