概述
遇到的问题
中文官网:SkyWalking on the way - 平安健康千亿级的全链路追踪系统的建设与实践 | Apache SkyWalking
如何串联整个调用链路,快速定位问题?
如何缕清各个服务之间的依赖关系?
如何进行各个微服务接口的性能分析?
如何跟踪整个业务流程的调用处理顺序?
获取相关镜像信息
确认容器镜像仓库tags
“https://hub.docker.com/u/library”
OpenTracing
略
容器化安装
[root@kgtdev ~]# docker search apache/skywalking
NAME DESCRIPTION STARS
apache/skywalking-oap-server Apache SkyWalking OAP Server 125
apache/skywalking-ui Apache SkyWalking Web UI 87
apache/skywalking-base Apache SkyWalking Base 24
apache/skywalking-java-agent 12
apache/skywalking-cli Apache SkyWalking CLI 4
apache/skywalking-satellite 1
apache/skywalking-eyes A full-featured license tool to check and fi… 1
apache/skywalking-python Apache Skywalking-Python 1
apache/skywalking-swck Apache Skywalking swck 0
apache/skywalking-rover 0
apache/skywalking-kubernetes-event-exporter Watch, filter, and send Kubernetes events in… 0
apache/skywalking-banyandb Apache Skywalking BanyanDB 0
apache/skywalking-helm Apache Skywalking Helm 0
apache/skywalking-agent-test-tool 0
[root@kgtdev ~]# docker pull apache/skywalking-ui:latest
[root@kgtdev ~]# docker pull apache/skywalking-java-agent:8.13.0-java8
# 下载不动,配置国内镜像
Registry Mirrors:
http://hub-mirror.c.163.com/
https://docker.mirrors.ustc.edu.cn/
https://registry.docker-cn.com/
# vi /etc/docker/daemon.json
# systemctl restart docerk
# docker info 查看下镜像地址
# 11800 收集监控数据的端口
# 12800 接收前端请求的端口
docker run \
--name skywalking-oap \
--restart always \
-p 11800:11800 \
-p 12800:12800 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.208.80:9200 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server:latest
# 初次使用的时候,建议可以使用h2
docker run \
--name skywalking-oap \
--restart always \
-p 11800:11800 \
-p 12800:12800 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-e SW_STORAGE=h2 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server:latest
docker run \
--name skywalking-ui \
--restart always \
-p 8091:8080 -d \
--privileged=true \
--link skywalking-oap:oap \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=http://oap:12800 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-ui:latest
docker run \
--name skywalking-ui \
--restart always \
-p 8091:8080 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=http://192.168.208.80:12800 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-ui:latest
确认可以正常访问(数据需要配置agent)
问题:清理es索引,服务构建异常需要重新构建
# 获取索引信息:192.168.208.80:9200/_cat/shards
# curl --user username:password -XDELETE http://127.0.0.1:9200/*
构建微服务镜像
方式一、下载skywalking-java-agent.jar 构建服务镜像(地址后文有提供)
FROM java:latest
# 作者信息
MAINTAINER zhangsan "12345678@qq.com"
ARG JAR_FILE
COPY ${JAR_FILE} /app.jar
# 把agent拷贝进来
COPY skywalking-agent/ /opt/skyagent
# 暴露端口
EXPOSE 8080
# 定义变量
ENV JAVA_OPTS="-server -Xmx256m -Xms256m" AGENT_SERVICE_NAME="default" AGENT_COLLETOR_ADDRESS="192.168.208.80:11800"
# 执行启动命令
ENTRYPOINT java -javaagent:/opt/skyagent/skywalking-agent.jar=agent.service_name=${AGENT_SERVICE_NAME},collector.backend_service=${AGENT_COLLETOR_ADDRESS} ${JAVA_OPTS} -jar /app.jar
# 构建镜像
docker build --rm -t vueblog:0.0.1 --build-arg JAR_FILE=springboot_vue_blog-0.0.1-SNAPSHOT.jar .
# 运行镜像
docker run -itd --name vueblog -p 8080:8080 vueblog:0.0.1
方式二、通过apache/skywalking-java-agent 构建微服务镜像
# apache/skywalking-java-agent:8.13.0-java8 配置国内地址后一直也下不了,暂时不用该方法
FROM apache/skywalking-java-agent:8.13.0-java8
WORKDIR /app
COPY target/spring-demo-0.0.1-SNAPSHOT.jar spring-demo-0.0.1-SNAPSHOT.jar
ENV SW_AGENT_COLLECTOR_BACKEND_SERVICES="127.0.0.1:11800" \
SW_AGENT_NAME="my-spring-demo"
CMD java -javaagent:/skywalking/agent/skywalking-agent.jar \
-jar spring-demo-0.0.1-SNAPSHOT.jar
下载地址:
https://dlcdn.apache.org/skywalking/9.2.0/apache-skywalking-apm-9.2.0.tar.gz
https://dlcdn.apache.org/skywalking/java-agent/8.13.0/apache-skywalking-java-agent-8.13.0.tgz
skywalking 如何使用
skywalking 跨多个微服务跟踪,只需要每个微服务启动时添加javaagent参数即可。
-javaagent:./skywalking-agent.jar
-DSW_AGENT_NAME=vueblog
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
# skywalking-ui 指标说明
略