在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、概述上一篇文章介绍了使用 docker 部署 spring boot 并接入 skywalking,其中描述了使用 docker-compose 搭建 skywalking,这一篇文章就不介绍 skywalking 的搭建了,这里主要记录一下使用 docker 部署一个 tomcat 并接入 skywalking 进行服务链路追踪。 二、使用 docker 部署 tomcat 并接入 skywalking关于如何将 tomcat 应用接入 skywalking 官网有如下描述:
Linux Tomcat 7 / Tomcat 8 CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTS Windows Tomcat 7 / Tomcat 8 set "CATALINA_OPTS=-javaagent:<skywalking-agent-path>" JAR File 或 Spring Boot java -javaagent:<skywalking-agent-path> -jar yourApp.jar
由于我这里是使用 docker 部署 tomcat ,所以不打算修改 在下图中定义了读取 意思是:不要在 1、将自定义的变量写在 setenv.sh 文件中 首先我们需要下载 skywalking agent,关于下载 agent 可以查看本文开头的文章,之后将agent 放在一个可以访问的目录,我这里是测试,所以将 agent 目录复制到了我的 Dockerfile 的同级目录,其中 FROM tomcat LABEL maintaner="xiniao" COPY agent /usr/skywalking/agent WORKDIR /usr/local/tomcat/bin RUN echo 'CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/skywalking/agent/skywalking-agent.jar";' > setenv.sh ENV SW_AGENT_NAME="my-spring-demo" \ SW_AGENT_COLLECTOR_BACKEND_SERVICES="127.0.0.1:11800" WORKDIR /usr/local/tomcat/webapps/ROOT COPY target/my-spring-demo.war my-spring-demo.war RUN jar -xf my-spring-demo.war 关于 skywalking agent 的其他配置,则可以通过环境变量的方式进行定义,比如这里指定了 skywalking 中显示的服务名为 2、使用环境变量指定 skywalking agent 的路径 详细的 FROM tomcat LABEL maintaner="xiniao" COPY agent /usr/skywalking/agent ENV CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/skywalking/agent/skywalking-agent.jar" \ SW_AGENT_NAME="my-spring-demo-env" \ SW_AGENT_COLLECTOR_BACKEND_SERVICES="127.0.0.1:11800" WORKDIR /usr/local/tomcat/webapps/ROOT COPY target/my-spring-demo.war my-spring-demo.war RUN jar -xf my-spring-demo.war 使用如下命令构建镜像: docker build -t my-spring-demo . 使用如下命令运行容器: docker run --rm -p 8080:8080 my-spring-demo 访问 skywalking ui 可以看到监控的信息如下: 总结这里主要介绍了使用 docker 部署 tomact 并接入 skywalking 的使用,因为在网上并没有查到太多相关的信息,所以这里记录下来,需要对有需求的小伙伴提供一些帮助。这里还是存在一些问题,比如这里 skywalking agent 直接打到镜像文件里面并不友好,个人觉得可以自定义一个 tomcat 的基础镜像,并将 skywalking agent 打到基础镜像中,这样所有的 tomcat 引用这个基础镜像来构建镜像,就可以实现接入 skywalking。如果是使用 k8s 部署的话,可以在 pod 中定义一个初始容器,在 pod 启动时,将初始容器中的 skywalking agent 复制到我们的应用中,关于如何在 k8s 使用 skywalking,并且无侵入的将 pod 的应用接入 skywalking ,我将在下一篇文章中介绍。 到此这篇关于使用 docker部署tomcat并接入skywalking的使用的文章就介绍到这了,更多相关 docker部署tomcat接入skywalking内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论