一、skywalking 安装和启动
1.镜像下载
docker pull apache/skywalking-oap-server:10.1.0
docker pull apache/skywalking-ui:10.1.0
docker pull elasticsearch:8.17.1
2.docker-compose 文件
使用 docker-compose 命令启动 skywalking
docker-compose.yml
version: '3.5'
services:
oap:
image: apache/skywalking-oap-server:10.1.0
container_name: "skywalking_oap_1"
environment:
SW_TELEMETRY_RECEIVER_DEFAULT_ENABLED: "true"
SW_METRIC_DEFAULT_MAX_SAMPLE_COUNT: 10000
SW_METRIC_DEFAULT_STEP: 1
ports:
- "11800:11800"
- "12800:12800"
depends_on:
- elasticsearch
ui:
image: apache/skywalking-ui:10.1.0
container_name: "skywalking_ui_1"
environment:
SW_OAP_ADDRESS: "http://oap:12800"
ports:
- "8080:8080"
depends_on:
- oap
elasticsearch:
image: elasticsearch:8.17.1
container_name: "elasticsearch_1"
environment:
discovery.type: single-node
ports:
- "9200:9200"
- "9300:9300"
二、java 应用
1.java agent 下载
Agent 探针下载 https://skywalking.apache.org/downloads/
2.jvm 启动参数
-javaagent:/home/zxm/IdeaProjects/jdk8-demo/spring-boot/spring-boot-web-demo/skywalking-agent.jar
-Dskywalking.agent.service_name=app_1
-Dskywalking.collector.backend_service=127.0.0.1:11800
三、skywalking 收集日志
1.pom
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>9.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>9.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2.log 配置
<configuration debug="false" scan="false">
<springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue=""/>
<property name="log.path" value="logs/ceshi"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.sss} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</pattern>
</layout>
</encoder>
</appender>
<!--配置异步输出日志,提升性能-->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>1024</queueSize>
<neverBlock>true</neverBlock>
<appender-ref ref="console"/>
</appender>
<!--skywalking grpc 日志收集-->
<appender name="grpc" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
</layout>
</encoder>
</appender>
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="grpc"/>
</root>
</configuration>