SkyWalking 部署与应用(Windows)
简介
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 aggregaterole: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/AggregatorrestHost: ${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 切换数据库, 默认使用 h2selector: ${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: 8080spring:cloud:gateway:routes:- id: oap-routeuri: lb://oap-servicepredicates:- 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: trueweb:resources:add-mappings: truemanagement: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页面明显的看到应用各指标情况。