Springboot、Tomcat+skywalking 链路追踪、日志收集配置

背景

描述

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>

猜你喜欢

转载自blog.csdn.net/anshichuxuezhe/article/details/126513270