プロジェクトに sleuth/zipkin を追加しました。私はログバックを使用しています。デフォルトでは、コンソールとファイルにも非常に適切にフォーマットされたログが表示されます。私はlogstashアペンダーも使用しています.kibanaがそれらのログをどのように表示するかを見ると、まったく満足できません. 詳細は次のとおりです。
pom.xml:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.6</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
...
</dependencies>
私のlogstashアペンダー:
@Component
@ConfigurationProperties(prefix = "logstash")
public class LogstashConfig {
private String uri;
@Value("${spring.application.name}")
private String applicationName;
public void setUri(String uri) {
this.uri = uri;
}
@PostConstruct
public void init() {
final Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
final LoggerContext loggerContext = rootLogger.getLoggerContext();
final LogstashTcpSocketAppender logstashTcpSocketAppender = new LogstashTcpSocketAppender();
logstashTcpSocketAppender.setName(applicationName);
logstashTcpSocketAppender.setContext(loggerContext);
logstashTcpSocketAppender.addDestination(uri);
final LogstashEncoder encoder = new LogstashEncoder();
encoder.setContext(loggerContext);
encoder.setCustomFields("{\"application_name\":\"" + applicationName + "\"}");
encoder.start();
logstashTcpSocketAppender.setEncoder(encoder);
logstashTcpSocketAppender.start();
rootLogger.addAppender(logstashTcpSocketAppender);
rootLogger.setLevel(Level.INFO);
rootLogger.info("Logstash succesfully configured: application connected to logstatsh server {}", uri);
}
}
そして、これは私がkibanaで見るものです:
LOG_LEVEL_PATTERN:%clr(%5p) %clr([my-app-name,%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]){yellow} application_name:my-app-name
ログ パターンによって解決される唯一のものは、アプリケーション名です。いくつかの構成がありませんか? それとも、logstash アペンダーに何か問題があるのでしょうか?