SkyWalking 分布式系统追踪
官网: https://skywalking.apache.org/
简书:https://www.jianshu.com/p/2fd56627a3cf
文档:https://skywalking.apache.org/docs/
SkyWalking ,它是一款优秀的国产 APM(Application Performance Management) 工具
SkyWalking 8.x
tar包下载: https://skywalking.apache.org/downloads/ SkyWalking APM Distribution
选择版本 v8.5.0 for H2/MySQL/TiDB/InfluxDB/ElasticSearch 7
启动服务:
OAPServerStartUp配置文件 config/application.yml 默认存储h2,修改存储为elasticsearch7,以及ES7服务地址。
skywalking-webapp 配置文件 webapp/webapp.yml 默认端口localhost:8080
selector: ${SW_STORAGE:elasticsearch7}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
安装bin目录下
./startup.sh
访问UI localhost:8080
启动采集端
java -jar方式通过修改启动脚本启动,示例
nohup java -javaagent:/data/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -
Dskywalking.agent.service_name=${SERVER_NAME} -Dskywalking.collector.backend_service=127.0.0.1:11800 -
jar -Xms1024m -Xmx1024m -Djava.security.egd=file:/dev/./urandom $JAR_FILE --spring.application.
name=${SERVER_NAME} --spring.profiles.active=${ACTIVE} --server.port=${PORT}> /data/logs/${SERVER_NAME}
/console.log 2>&1&
idea中启动,修改 VM options,示例如下
-DSW_AGENT_NAME=skywalking-consumer ##
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 ##
-javaagent:~\skywalking\apache-skywalking-apm-bin-es7\agent\skywalking-agent.
jar ##agent
日志中打印traceId 增加[%traceId]
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.5.0</version>
</dependency>
修改logback.xml中的Appender的Pattern
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} - [%tid] - message:%msg%n</pattern>
</layout>
</encoder>
输出日志
项目中加入feign的调用后查看,调用的关系,每个环节的耗时
kibana查看ES,有很多数据记录在ES中
至此即完成链路追踪,性能检测,日志查询。
号外:
docker 安装
docker pull apache/skywalking-oap-server:8.5.0-es7
docker run --name skywalking --net esnet -d -e SW_STORAGE=elasticsearch7 \
-e SW_STORAGE_ES_CLUSTER_NODES=localhost:9200 apache/skywalking-oap-server:8.5.0-es7
总结:
skywalking 通过agent的方式可以低侵入的方式实现链路追踪,链路追踪是微服务治理的重要一环,进行日志查询,系统监控,性能分析的重要工具。