背景
描述
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
java启动项目
命令
通过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
Tomcat启动项目
catalina.sh配置
在首行添加,和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";
catalina.bat配置
在首行添加,和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>