skywalking适合分布式项目,零侵入源码,集成链路追踪,
实现过程主要是在项目启动时使用java代理,把项目集成到skywalking中。
官网地址:Documentation | Apache SkyWalking
下载地址(skywalking和agent代理两个包):Downloads | Apache SkyWalking
下载好skywalking安装包
- cd /home
-
- wget https://dlcdn.apache.org/skywalking/9.1.0/apache-skywalking-apm-9.1.0.tar.gz
-
- tar -xvf apache-skywalking-apm-9.1.0.tar.gz
-
- cd apache-skywalking-apm-bin
直接启动,默认存储是h2
./bin/startup.sh
使用elasticsearch存储需要修改conf下的application.yml文件,修改storage为elasticsearch
安装es参考Filebeat+Redis+Logstash+Elasticsearch+Kibana搭建日志采集分析系统_殷长庆的博客-CSDN博客
- storage:
- selector: ${SW_STORAGE:elasticsearch}
下载skywalking-agent
- cd /home
-
- wget https://dlcdn.apache.org/skywalking/java-agent/8.11.0/apache-skywalking-java-agent-8.11.0.tgz
-
- tar -xvf apache-skywalking-java-agent-8.11.0.tgz
-
- mv skywalking-agent skywalking
通过jar方式启动项目
java -javaagent:/home/skywalking/skywalking-agent.jar -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 -DSW_AGENT_NAMESPACE=test -DSW_AGENT_NAME=local::luck -jar /home/luck.jar
-javaagent:/home/skywalking/skywalking-agent.jar
指定java-agent.jar的位置 ,下面的配置都可以在解压包conf目录下的agent.config配置文件中设置默认值,不过还是建议每个程序启动的时候自己指定配置值,避免冲突。
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
指定服务端地址
-DSW_AGENT_NAMESPACE=test
指定命名空间名称
-DSW_AGENT_NAME=local::luck
指定代理的项目名称,其中local是分组名称,然后中间有两个冒号,后面的luck表示项目名
-jar /home/luck.jar
在首行添加,和jar启动配置意义相同
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/home/skywalking/skywalking-agent.jar -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 -DSW_AGENT_NAMESPACE=test -DSW_AGENT_NAME=local::luck";
在首行添加,和jar启动配置意义相同
set CATALINA_OPTS=-javaagent:/home/skywalking/skywalking-agent.jar -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 -DSW_AGENT_NAMESPACE=test -DSW_AGENT_NAME=local::luck
配置完成正常启动tomcat即可
日志收集需要项目中引入skywalking的日志依赖
官网文档Index of /docs/skywalking-java/v8.11.0/en/setup/service-agent/java-agent

针对log4j、log4j2、logback三种需要引入不同的maven依赖
以log4j2为例,在xml中配置,其中grpc-log会往skywalking服务端发送本项目日志
- <Configuration>
- <Appenders>
- <Console name="Console" target="SYSTEM_OUT">
- <PatternLayout pattern="%d [%traceId] %-5p %c{1}:%L - %m%n"/>
- Console>
- <Async name="Async">
- <AppenderRef ref="Console"/>
- Async>
- <GRPCLogClientAppender name="grpc-log">
- <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
- GRPCLogClientAppender>
- Appenders>
- <Loggers>
- <Root level="INFO">
- <AppenderRef ref="Async"/>
- <AppenderRef ref="grpc-log"/>
- Root>
- Loggers>
- Configuration>