Apache SkyWalking是一个开源的APM(应用性能管理)系统,用于收集、分析和服务之间的跟踪数据。
拉取镜像
首先,我们需要从Docker Hub上拉取SkyWalking OAP服务器和UI的镜像。
拉取Apache SkyWalking OAP(Observability Analysis Platform)服务器的镜像,版本为10.0.0。
docker pull apache/skywalking-oap-server:10.0.0
拉取Apache SkyWalking UI(用户界面)的镜像,版本为10.0.0。
docker pull apache/skywalking-ui:10.0.0
启动容器
接下来,我们将启动SkyWalking OAP服务器和UI的容器。
启动Apache SkyWalking OAP服务器的容器。
docker run -d \
-p 11800:11800 \
-p 12800:12800 \
--name sw_oap \
-e TZ=Asia/Shanghai \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.101.101:9200 \
apache/skywalking-oap-server:10.0.0
-d
:后台运行容器。-p 11800:11800
:将容器的11800端口映射到宿主机的11800端口,用于接收来自SkyWalking代理的数据。-p 12800:12800
:将容器的12800端口映射到宿主机的12800端口,用于接收来自UI的数据查询。--name sw_oap
:为容器设置名称为sw_oap
。-e TZ=Asia/Shanghai
:设置容器的时区为亚洲/上海。-e SW_STORAGE=elasticsearch
:指定SkyWalking的存储方式为Elasticsearch。-e SW_STORAGE_ES_CLUSTER_NODES=192.168.101.101:9200
:设置Elasticsearch集群的节点地址为192.168.101.101:9200。
需要提前安装并启动Elasticsearch
启动Apache SkyWalking UI的容器。
docker run -d \
-p 8088:8080 \
--name sw_ui \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=http://192.168.101.101:12800 \
apache/skywalking-ui:10.0.0
-d
:后台运行容器。-p 8088:8080
:将容器的8080端口映射到宿主机的8088端口,用于访问SkyWalking UI。--name sw_ui
:为容器设置名称为sw_ui
。-e TZ=Asia/Shanghai
:设置容器的时区为亚洲/上海。-e SW_OAP_ADDRESS=http://192.168.101.101:12800
:设置OAP服务器的地址为192.168.101.101:12800,这样UI可以与OAP服务器通信。
访问web界面
开放TCP协议的8088端口防火墙,确保外部网络可以访问通过Docker映射到宿主机8088端口的SkyWalking UI服务。
firewall-cmd --permanent --add-port=8088/tcp
firewall-cmd --reload
firewall-cmd --permanent --list-all
在浏览器中输入http://192.168.101.101:8088
,如果看到SkyWalking的界面,说明部署成功。
下载Agent
到官网https://skywalking.apache.org/downloads/ ,下载对应版本的Java Agent。
下载后解压,可以看到skywalking-agent.jar
和config
配置文件夹。
打开config
文件夹中的agent.config
文件,修改collector.backend_service
为OAP服务器的地址
配置Agent
打开需要监控的Java项目,点击Edit Configurations
,在VM options
中添加以下参数:
-javaagent:D:\JavaWeb\java-agent\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=jvm-service
-javaagent
:指定skywalking-agent
的jar包路径。-Dskywalking.agent.service_name
:指定服务的名称。
启动项目
启动项目时可以看到skywalking的调试信息出现在springboot的banner之前。
刷新web UI界面,可以看到出现了常规服务模块,说明已经监控了这个java程序。