普通 Java 环境下的设置
- Java 探针在 JDK 8-17 下可用。
- 获取 Java 探针的发行版 dist 包,v9.1.0版本,在 Apache 官方发布里。下载后在包内找到
agent
文件夹。 - 在
config/agent.config
里设置agent.service_name
,可以是任意英文字符串。 - 在
config/agent.config
里设置collector.backend_service
。默认指向127.0.0.1:11800
,此时只适用于本地的后端。 - 在 JVM 参数里添加
-javaagent:/path/agent/skywalking-agent.jar
。确保在-jar
参数前添加本条参数。上述路径以实际为准。 - 启动你的 Java 应用。
Java 探针的发行版 dist 包含在 Apache 官方发布里。新的 Java 探针包如下所示。
+-- agent
+-- activations
apm-toolkit-log4j-1.x-activation.jar
apm-toolkit-log4j-2.x-activation.jar
apm-toolkit-logback-1.x-activation.jar
...
+-- config
agent.config
+-- plugins
apm-dubbo-plugin.jar
apm-feign-default-http-9.x.jar
apm-httpClient-4.x-plugin.jar
.....
+-- optional-plugins
apm-gson-2.x-plugin.jar
.....
+-- bootstrap-plugins
jdk-http-plugin.jar
.....
+-- logs
skywalking-agent.jar
安装 Java 探针的 FAQ
- Linux 下的 Tomcat 7, Tomcat 8, Tomcat 9
要如下修改tomcat/bin/catalina.sh
内的首行。
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; export CATALINA_OPTS
- Windows 下的 Tomcat 7, Tomcat 8, Tomcat 9
要如下修改tomcat/bin/catalina.bat
内的首行。
set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"
- JAR 文件
在启动你的应用的命令行里添加-javaagent
参数。如下:
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar
- Jetty
修改jetty.sh
,在启动你的应用的命令行里添加-javaagent
参数。如下:
export JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"
Java 探针的插件
Walkingfunny 支持 SkyWalking 的所有探针。
SkyWalking 的探针支持众多的中间件、框架和库。在支持列表可以看到所有支持的内容和版本。如果插件标记为 Optional²,可以在可选插件和bootstrap class 插件内了解如何启用它。
- 所有在
/plugins
文件夹下的插件都是活动状态。若要禁用,请移除对应的插件 JAR 包。 - 默认日志输出文件夹是
logs
。
容器化环境下的设置
下面的 Docker 镜像是为了方便用户,不是官方 ASF 的正式发版。推荐的使用方式是从源码编译。
这个镜像只包含了预编译的 SKyWalking Java 探针 JAR 包,并为容器化场景提供了一些便捷配置项。
下面是镜像的使用说明。
Docker
FROM apache/skywalking-java-agent:8.5.0-jdk8
# ... 在这里编译你的 Java 应用
可以用 CMD
或 ENTRYPOINT
启动你的 Java 应用,但如果你并不需要关心启用 SkyWalking 探针的 Java 配置项的话,它会被自动采用。
Kubernetes
当前,SkyWalking 为 Kubernetes 上的服务提供两种安装 Java 探针的方法:
- 要更原生地使用 Java 探针,可以使用 java agent injector 来将 Java 探针作为 sidecar 注入。
- 若觉得安装 injector 复杂,也可以使用下面的 Java 探针镜像。
apiVersion: v1
kind: Pod
metadata:
name: agent-as-sidecar
spec:
restartPolicy: Never
volumes:
- name: skywalking-agent
emptyDir: { }
initContainers:
- name: agent-container
image: apache/skywalking-java-agent:8.7.0-alpine
volumeMounts:
- name: skywalking-agent
mountPath: /agent
command: [ "/bin/sh" ]
args: [ "-c", "cp -R /skywalking/agent /agent/" ]
containers:
- name: app-container
image: springio/gs-spring-boot-docker
volumeMounts:
- name: skywalking-agent
mountPath: /skywalking
env:
- name: JAVA_TOOL_OPTIONS
value: "-javaagent:/skywalking/agent/skywalking-agent.jar"