1.依賴配置
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.2.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.2.0.RELEASE</version><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency> <!-- 引入log4j2依賴 --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId><version>2.2.0.RELEASE</version></dependency><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-log4j-2.x</artifactId><version>9.1.0</version></dependency><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>9.1.0</version></dependency>
這邊需要排除掉springboot自帶的日志框架,很重要
2.配置日志文件
在/src/main/resources下創建log4j2.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO"><Appenders><!-- 控制臺輸出 --><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d [%traceId] %-5p %c{1}:%L - %m%n"/></Console><!-- skywalking grpc 日志收集 8.4.0版本開始支持 --><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="Console"/><AppenderRef ref="grpc-log"/></Root></Loggers>
</Configuration>
3.Dockfile文件編寫
version: '3.8'
services:elasticsearch:image: elasticsearch:7.16.2container_name: elasticsearchports:- "9201:9200"healthcheck:test: [ "CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1" ]interval: 30stimeout: 10sretries: 3start_period: 10senvironment:- discovery.type=single-node- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- ./data/es_data:/usr/share/elasticsearch/dataoap:image: apache/skywalking-oap-server:8.9.0container_name: oapdepends_on:elasticsearch:condition: service_healthylinks:- elasticsearchports:- "11800:11800"- "12800:12800"healthcheck:test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ]interval: 30stimeout: 10sretries: 3start_period: 10senvironment:SW_STORAGE: elasticsearchSW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200SW_HEALTH_CHECKER: defaultSW_TELEMETRY: prometheusJAVA_OPTS: "-Xms1024m -Xmx1024m"skywalking-ui:image: apache/skywalking-ui:8.9.0container_name: skywalking-uidepends_on:oap:condition: service_healthylinks:- oapports:- "9090:8080"environment:SW_OAP_ADDRESS: http://oap:12800
dockerfile如何運行,自行查詢即可
啟動完成之后,打開http://127.0.0.1:9090,會出現Skywalking的UI界面
4.VM參數
在虛擬機參數里加上這段,注意skywalking-agent.jar要去官網下載,jar包外面的文件也不能丟失,否則會報錯
-javaagent:C:/skywalking/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.service_name=你自己的服務名字
-Dskywalking.collector.backend_service=127.0.0.1:11800
5.請求展示
請求查詢接口,記得日志要打在service層里面
6.部署到Linux中
(1)一鍵安裝docker,注意Centos版本要大于等于7
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
(2)安裝docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
(3)授予權限
sudo chmod +x /usr/local/bin/docker-compose
(4)測試安裝結果
docker-compose --version
(5)之后上傳之前的dockerfile文件,在當前目錄下執行docker-compose up -d
(6)查看服務器的9090端口,skywalkingui是否工作正常
(7)上傳測試項目,執行
java -javaagent:/root/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=gwt -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar TestSkyWalking.jar
(8)測試接口即正常