ES + SkyWalking + Spring Boot:日志分析与服务监控(三)

目录

一、搭建SkyWalking

1.1 版本选择

1.2 下载安装

1.3 配置启动

1.4 SkyWalking UI介绍

二、Springboot项目使用

2.1 Agent下载

2.2 Agent配置skywalking oap地址

2.3 IDEA配置Agent地址

2.4 生成的ES索引介绍

三、在kibana上查看日志

四、问题和解决

3.1 日志显示没有按照时间排序

3.2 索引模版失效


一、搭建SkyWalking

1.1 版本选择

项目的JDK版本使用的JDK8,SkyWalking 9.x版本要求JDK版本至少为11,因此选择8.*,这里选择  8.9.1

开始安装9.4版本后查看启动日志报错:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/skywalking/oap/server/starter/OAPServerStartUp has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

版本问题:kyWalking需要JDK11或JDK17。如果您使用的Java版本只识别52.0以下的类文件版本,则意味着您使用的是Java 8。您需要将Java版本升级到JDK11或JDK17来解决这个问题。下面是启动后端的步骤:确保系统上安装了JDK11或JDK17。

1.2 下载安装

在虚拟机上安装。

下载链接:https://archive.apache.org/dist/skywalking/ 下选择版

wget https://archive.apache.org/dist/skywalking/8.9.1/apache-skywalking-apm-8.9.1.tar.gz
tar -xzf apache-skywalking-apm-8.9.1.tar.gz

1.3 配置启动

修改配置端口:apache-skywalking-apm-bin/webapp/webapp.yml

默认8080,修改为8100

server:
  port: 8100

spring:
    discovery:
      client:
        simple:
          instances:
            oap-service:
              - uri: http://192.168.64.128:12800//修改为ip

修改apache-skywalking-apm-bin/config/application.yml配置:

选择elasticsearch进行存储

storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    namespace: ${SW_NAMESPACE:"hbintrade-framework"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.64.128:9200} #注意改成ip
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:500}
    socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
    numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
    user: ${SW_ES_USER:"elastic"} # es用户名密码
    password: ${SW_ES_PASSWORD:"123456"}
    trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
    trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
    secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.
    dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # Shard number of new indexes
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:1} # Replicas number of new indexes
    # Super data set has been defined in the codes, such as trace segments.The following 3 config would be improve es performance when storage super size data in es.
    superDatasetDayStep: ${SW_SUPERDATASET_STORAGE_DAY_STEP:-1} # Represent the number of days in
### Java项目中使用SkyWalking的集成方法 在Java项目中使用SkyWalking,可以通过以下方式实现: #### 1. 添加SkyWalking Agent 需要在项目的启动参数中添加`-javaagent`选项,指定SkyWalking Agent的路径。例如: ```bash -javaagent:/path/to/skywalking-agent.jar -DSW_AGENT_NAME=your-service-name -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=collector-ip:11800 ``` 其中: - `-javaagent`:指定SkyWalking Agent的jar包路径[^2]。 - `-DSW_AGENT_NAME`:定义服务名称,用于在SkyWalking UI上显示[^4]。 - `-DSW_AGENT_COLLECTOR_BACKEND_SERVICES`:指定Collector的服务地址和端口[^5]。 #### 2. 配置日志上报 为了将日志信息集成到SkyWalking中,需要修改日志框架的配置文件(如`logback-spring.xml`)。在配置文件中加入SkyWalking的日志Appender,示例如下: ```xml <appender name="grpc-log" 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> ``` 此配置确保日志能够通过SkyWalking的gRPC协议发送到后端[^3]。 #### 3. 启动项目 在IDE中启动项目时,需要在VM Options中添加上述的`-javaagent`和其他相关参数。例如,在IntelliJ IDEA中,可以在运行配置的VM options中添加: ```bash -javaagent:D:\Downloads\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -DSW_AGENT_NAME=asa -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=172.16.10.101:11800 ``` 这一步确保了Agent能够在应用启动时加载并开始监控。 #### 4. Kubernetes环境下的集成 在Kubernetes环境下,可以通过修改容器的启动命令或配置文件来集成SkyWalking。通常需要在Pod的启动参数中添加`-javaagent`参数,并确保Agent jar包已挂载到容器内[^1]。 ### 注意事项 - 确保SkyWalking Agent的版本SkyWalking后端版本兼容。 - 如果使用的是Spring Boot项目,可以考虑引入官方提供的Spring Cloud SleuthSkyWalking的整合依赖[^3]。 ```python # 示例代码:Spring Boot项目中引入依赖 <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-spring-boot</artifactId> <version>8.9.0</version> </dependency> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟林洁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值