SkyWalking 部署与应用(Windows)

发布于:2025-06-21 ⋅ 阅读:(19) ⋅ 点赞:(0)

简介

SkyWalking 是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案

下载

因为用的jdk8, 所以本文以支持jdk8 的最后版本为例,即 SkyWalking-apm-8.9.1, java-agent-8.9.0, 下载其对应的压缩包

SkyWalking apm 下载

在这里插入图片描述

SkyWalking java agent 下载

在这里插入图片描述

部署

将下载的安装包解压到指定目录, 进入目录: C:\soft\skywalking\8x\apache-skywalking-apm-bin

在这里插入图片描述

SkyWalking OAP 搭建

配置文件: config/application.yml
日志文件:logs/skywalking-oap-server.log

重点修改 storage 配置项,通过 storage.selector 配置项来设置具体使用的存储器。
通过修改 core 配置项, 修改 OAP 服务的占用端口

  • core.default.restPort : SkyWalking UI 需要用到的服务端口, 默认为12800
  • core.default.gRPCPort: java-agent 上推应用数据需要要用到的服务端口, 默认为11800
core:
  selector: ${SW_CORE:default}
  default:
    # Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate
    # Receiver: Receive agent data, Level 1 aggregate
    # Aggregator: Level 2 aggregate
    role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator
    restHost: ${SW_CORE_REST_HOST:0.0.0.0}
    restPort: ${SW_CORE_REST_PORT:12800} 
    restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
    restMinThreads: ${SW_CORE_REST_JETTY_MIN_THREADS:1}
    restMaxThreads: ${SW_CORE_REST_JETTY_MAX_THREADS:200}
    restIdleTimeOut: ${SW_CORE_REST_JETTY_IDLE_TIMEOUT:30000}
    restAcceptorPriorityDelta: ${SW_CORE_REST_JETTY_DELTA:0}
    restAcceptQueueSize: ${SW_CORE_REST_JETTY_QUEUE_SIZE:0}
    httpMaxRequestHeaderSize: ${SW_CORE_HTTP_MAX_REQUEST_HEADER_SIZE:8192}
    gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
    gRPCPort: ${SW_CORE_GRPC_PORT:11800}
    maxConcurrentCallsPerConnection: ${SW_CORE_GRPC_MAX_CONCURRENT_CALL:0}
    maxMessageSize: ${SW_CORE_GRPC_MAX_MESSAGE_SIZE:0}
    gRPCThreadPoolQueueSize: ${SW_CORE_GRPC_POOL_QUEUE_SIZE:-1}
    gRPCThreadPoolSize: ${SW_CORE_GRPC_THREAD_POOL_SIZE:-1}
    gRPCSslEnabled: ${SW_CORE_GRPC_SSL_ENABLED:false}
    gRPCSslKeyPath: ${SW_CORE_GRPC_SSL_KEY_PATH:""}
    gRPCSslCertChainPath: ${SW_CORE_GRPC_SSL_CERT_CHAIN_PATH:""}
    gRPCSslTrustedCAPath: ${SW_CORE_GRPC_SSL_TRUSTED_CA_PATH:""}
storage:
  # 通过selector 切换数据库, 默认使用 h2
  selector: ${SW_STORAGE:h2} 
  h2:
    driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
    url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db;DB_CLOSE_DELAY=-1}
    user: ${SW_STORAGE_H2_USER:sa}
    metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
    maxSizeOfArrayColumn: ${SW_STORAGE_MAX_SIZE_OF_ARRAY_COLUMN:20}
    numOfSearchableValuesPerTag: ${SW_STORAGE_NUM_OF_SEARCHABLE_VALUES_PER_TAG:2}
    maxSizeOfBatchSql: ${SW_STORAGE_MAX_SIZE_OF_BATCH_SQL:100}
    asyncBatchPersistentPoolSize: ${SW_STORAGE_ASYNC_BATCH_PERSISTENT_POOL_SIZE:1}

配置修改完成,执行 bin/oapService.bat 启动 OAP 服务, 查看日志出现如下日志,则服务启动成功。

在这里插入图片描述

SkyWalking UI 搭建

配置文件: webapp/webapp.yml

  • server.port : 网页访问的端口, 默认为 8080 ,
  • spring.cloud.discovery.client.instances.-uri : 获取服务信息的地址, 与上述 OAP 的服务端口要保持一致
server:
  port: 8080

spring:
  cloud:
    gateway:
      routes:
        - id: oap-route
          uri: lb://oap-service
          predicates:
            - Path=/graphql/**
    discovery:
      client:
        simple:
          instances:
            oap-service:
              - uri: http://127.0.0.1:12800
            # - uri: http://<oap-host-1>:<oap-port1>
            # - uri: http://<oap-host-2>:<oap-port2>

  mvc:
    throw-exception-if-no-handler-found: true

  web:
    resources:
      add-mappings: true

management:
  server:
    base-path: /manage

修改完配置文件, 执行 bin/webappService.bat 启动UI服务, 访问 http://localhost:8080

在这里插入图片描述

一键启动

apm 服务的 bin 目录下, 提供了 startup.bat 一键启动 OAP 和 UI 服务

代理

配置应用的代理, 需要用到 下载的 java-agent , 进入解压目录 C:\soft\skywalking\8x\skywalking-agent

配置方式

方式一: 配置文件

配置文件: config/agent.config
日志文件: 默认存储在 logs/skywalking-api.log , 可修改

  • agent.service_name : ui 界面看到的服务名称
  • collector.backend_service :服务信息上推地址(OAP服务地址)
  • logging.file_name:日志目录(可选), 默认值为 skywalking-api.log
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
logging.file_name=${SW_LOGGING_FILE_NAME:skywalking-api.log}

启动命令

java -jar -javaagent:your\skywalking-agent.jar youService.jar

例如: java -jar -javaagent:C:\soft\skywalking\8x\skywalking-agent\skywalking-agent.jar demo.jar

方式二: 命令配置

这种方式相对比较便捷, 可以将一个代理包用于多个应用,动态配置

java -jar -javaagent:your\skywalking-agent.jar -Dskywalking.agent.service_name=your_server -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.logging.file_name=demo-skywalking-api.log demo.jar 

例如: java -jar -javaagent:C:\soft\skywalking\8x\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=demo -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.logging.file_name=demo-skywalking-api.log demo.jar

IDEA 配置

配置 VM options 参数

-javaagent:C:/soft/skywalking/8x/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=demo-server -Dskywalking.collector.backend_service=127.0.0.1:11800 -Dskywalking.logging.file_name=demo-skywalking-api.log

在这里插入图片描述

Tomcat 配置

//Catalina.bat首行添加
set "CATALINA_OPTS=-javaagent:C:/soft/skywalking/8x/skywalking-agent/skywalking-agent.jar"

监控展示

启动成功,可以在UI 看到对应的服务

  • 当前服务: demo
  • 当前实例: uuid@服务IP

在这里插入图片描述

如此简单的监控就搭建好了, 可以在web页面明显的看到应用各指标情况。

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到