关于ELK环境搭建在之前的博客都已经提到了。
Elasticsearch安装Head插件
安装Logstash
安装Kibana
2.1添加依赖
net.logstash.logback
logstash-logback-encoder
4.6
org.springframework.cloud
spring-cloud-starter-sleuth
2.2在src/main.resources新建logback-spring.xml,内容如下:
DEBUG
${CONSOLE_LOG_PATTERN}
utf8
${LOG_FILE}
${LOG_FILE}.%d{yyyy-MM-dd}.gz
7
${CONSOLE_LOG_PATTERN}
utf8
${LOG_FILE}.json
${LOG_FILE}.json.%d{yyyy-MM-dd}.gz
7
UTC
{
"severity": "%level",
"service": "${springAppName:-}",
"trace": "%X{X-B3-TraceId:-}",
"span": "%X{X-B3-SpanId:-}",
"parent": "%X{X-B3-ParentSpanId:-}",
"exportable": "%X{X-Span-Export:-}",
"pid": "${PID:-}",
"thread": "%thread",
"class": "%logger{40}",
"rest": "%message"
}
2.3新建bootstrap.properties添加如下内容
#指定微服务的名称后续在调用的时候只需要使用该名称就可以进行服务的访问
spring.application.name=service-provide-trace-elk
由于使用了自定义的logback-spring.xml,并且该文件中含有变量(springAppName),spring.application.name属性必须在bootstrap.properties中设置。
2.4Logstash配置文件,命名为logstash.conf(E:\soft\logstash-6.3.2\bin 在安装目录的bin目录下新建logstash.conf),具体配置如下
input {
file {
type => "server"
codec =>json
path =>"D:\personal_code\workspace_springcloud\918.spring-cloud-service-provide-trace-elk\build\service-provide-trace-elk.json"
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}\s+---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "trace_test_log"
}
}
2.4启动注册中心,服务消费,服务提供者,elasticsearch,elasticsearch-head,logstash,kibana
elasticsearch-head启动页面:
kibana界面
通过消费者,访问服务提供者。可以看到追踪日志在不断的增加。
微信公众号:
JAVA程序猿成长之路
分享学习资源,学习方法,记录程序员生活。