跳到主要内容

SkyWalking Java Agent安装

介绍

SkyWalking Java Agent是一种无侵入式的探针,通过字节码增强技术(Bytecode Enhancement)自动收集Java应用程序的性能数据和分布式追踪信息。它不需要修改源代码,只需在JVM启动时通过-javaagent参数加载即可生效。本章将详细介绍安装和配置过程。

核心特点
  • 零代码侵入:无需修改业务代码
  • 低性能损耗:通常增加小于3%的资源开销
  • 多协议支持:支持HTTP/gRPC上报数据
  • 动态配置:部分参数支持运行时热更新

前置准备

在开始安装前,请确保:

  1. 已安装JDK 8/11/17
  2. 应用程序运行环境支持添加JVM参数
  3. 已部署SkyWalking OAP服务(版本需与Agent匹配)

安装步骤

步骤1:下载Agent包

Apache SkyWalking官网下载对应版本的二进制包:

wget https://archive.apache.org/dist/skywalking/java-agent/{version}/apache-skywalking-java-agent-{version}.tgz
tar -zxvf apache-skywalking-java-agent-{version}.tgz

步骤2:配置Agent

解压后目录结构如下:

skywalking-agent/
├── config/
│ └── agent.config # 主配置文件
├── plugins/ # 各种插件
└── optional-plugins/ # 可选插件

编辑config/agent.config关键配置:

# 服务名称(在UI中显示)
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}

# OAP服务器地址
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

# 采样率(100%表示采集所有请求)
agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1}

步骤3:启动应用程序时加载Agent

在JVM启动参数中添加-javaagent

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=your_service_name \
-jar your_application.jar
最佳实践

推荐通过环境变量配置参数,便于不同环境切换:

export SW_AGENT_NAME=inventory-service
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=oap:11800
java -javaagent:/agent/skywalking-agent.jar -jar app.jar

配置详解

常用配置项

配置项说明示例值
agent.namespace数据隔离命名空间prod-cluster
agent.instance_name实例标识host1@inventory
logging.level日志级别DEBUG
plugin.jdbc.trace_sql_parameters记录SQL参数true

插件管理

  • 禁用插件:重命名或移出plugins/目录
  • 启用可选插件:将optional-plugins/下的jar移动到plugins/

例如启用Kafka插件:

mv optional-plugins/kafka-plugin.jar plugins/

实际案例

Spring Boot应用集成

application.yml配置示例:

spring:
application:
name: order-service

启动命令:

java -javaagent:./skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=${spring.application.name} \
-jar order-service-1.0.0.jar

Tomcat应用集成

修改catalina.sh

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/opt/skywalking-agent/skywalking-agent.jar"
export CATALINA_OPTS

验证安装

  1. 检查应用日志是否有SkyWalking启动信息
  2. 在SkyWalking UI查看服务是否注册
  3. 发送测试请求后检查是否有追踪数据

常见问题

注意事项
  1. 版本兼容性:确保Agent与OAP版本匹配
  2. 插件冲突:某些框架可能需要排除自带插件(如Spring Cloud Sleuth)
  3. 双份数据:避免同时使用多个APM探针

总结

通过本指南,您已经学会:

  • 下载和配置SkyWalking Java Agent
  • 通过JVM参数集成Agent
  • 关键配置项的调优方法
  • 常见应用的集成方案

扩展学习

  1. 官方Agent配置文档
  2. 尝试修改采样率观察数据变化
  3. 实验不同插件对监控数据的影响