skywalking 部署安装 https://blog.csdn.net/swg321321/article/details/129704345

发布时间 2023-12-06 20:58:44作者: 不会游泳的鱼丶

https://blog.csdn.net/swg321321/article/details/129704345

 

前言
在分布式系统中会出现服务间的相互调用,且服务数量众多。一般会出现如下异常

请求出现异常,需要定位定位具体是哪个服务器发生异常,需要对这个请求链路一步一步调试才能确定那个服务出现异常。出现定位异常服务难的问题。
请求时间过长,需要定位定位具体是哪个服务器请求缓慢,需要对这个请求链路一步一步调试并添加对应日志才能确定那个服务比较缓慢。出现缓慢服务难以定位。
SkyWalking下载地址
下载地址:https://skywalking.apache.org/downloads/
中文文档地址:https://skyapm.github.io/document-cn-translation-of-skywalking/

如下图:


整体架构如下:

探针(Agent) 负责收集数据,包含了 Tracing 和 Metrics 的数据,agent 会将数据上传到后台服务器上,以方便数据的获取。
可观测性分析平台 (OAP) 接收来自探针的数据,分析数据并存到到ES、Mysql、h2、tidb、influxdb、postgresql、iotdb。
可视化平台通过查询OAP中的数据,进行数据展示。
Skywalking 启动与配置
提供功能:
分布式链路追踪和上下文传输
应用、实例、服务性能分析

解压如下图:


bin
这里存放的是脚本程序sh是Linux启动脚本,bat是Windows启动脚本。
oapService: 后台程序启动脚本
startup: 后台程序和UI程序启动脚本
webappService: UI程序启动脚本
config
后台启动时候所有jar需要用到的配置文件,都在这个文件夹中。
oap-libs
后台启动时候所有jar都在这个文件夹中
tools
webapp
可视化程序启动的包在这个文件夹中。
SkyWalking oap
后台服务:主要功能收集来自Agent发过来的数据,根据
可观测性分析平台(Observability Analysis Platform,简称 OAP)

修改主要配置文件:apache-skywalking-apm-bin/config/application.yml

集群模式

集群模式默认是:standalone单例,可以通过修改selector:中的模式。
模式支持:standalone、zookeeper、kubernetes、consul、etcd、nacos

数据存储

selector:表示选取哪个作为数据存储介质,默认的是h2。可以根据自己实际需求来进行选择。
支持的存储介质:elasticsearch、h2、mysql、tidb、influxdb、postgresql、iotdb、zipkin-elasticsearch。

核心

设置HTTP端口:
通过HTTP连接OAP后台服务设置的端口
对应是可视化界面查询数据的端口

restPort: ${SW_CORE_REST_PORT:12800}
1
设置gRPC端口:
通过gRPC连接OAP后台服务设置的端口
对应是Agent传输数据到服务器的端口

gRPCPort: ${SW_CORE_GRPC_PORT:11800}
1
SkyWalking webapp
可视化界面,通过连接OAP(后台服务)来查询数据,展示在可视化界面中。
所在文件路径:apache-skywalking-apm-bin/webapp中
配置文件:webapp.yml
修改启动端口:

server:
port: 18080
#port: 8080 默认端口

1
2
3
4
修改OAP链接地址:

spring:
cloud:
gateway:
routes:
- id: oap-route
uri: lb://oap-service
predicates:
- Path=/graphql/**
discovery:
client:
simple:
instances:
oap-service: #oap后台服务地址,对应restPort
- uri: http://127.0.0.1:12800
# - uri: http://<oap-host-1>:<oap-port1>
# - uri: http://<oap-host-2>:<oap-port2>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SkyWalking Agent
使用了Java Agent技术,使得在使用的时候做到代码无侵入。相当于在对应的程序外面套了一层如AOP功能类似,只是它作用于的是JVM层级。

使用 -javaagent 命令行参数在运行期间对代码进行操作, 操作 一词表示修改并注入用户代码.

解压后如下图:


Tomcat启动Agent
Linux系统Tomcat版本:Tomcat 7, Tomcat 8, Tomcat 9
修改tomcat/bin/catalina.sh的第一行如下:

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; export CATALINA_OPTS
1
Windows系统Tomcat版本:Tomcat 7, Tomcat 8, Tomcat 9
修改tomcat/bin/catalina.bat的第一行如下:

set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"
1
jar启动skywalking-agent.jar
当应用是jar包,启动

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar
1
Jetty启动skywalking-agent.jar
修改jetty.sh,在启动应用程序的命令行中添加-javaagent参数。如:

export JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/path/to/skywalking-agent/skywalking-agent.jar"
1
修改SkyWalking Agent配置
修改文件路径:skywalking-agent/config/agent.config

设置应用名称
# 设置应用名称, 如:订单服务
# agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
agent.service_name=${SW_AGENT_NAME:ORDER}
1
2
3
修改后台服务地址
# 后台服务地址,默认是127.0.0.1:11800
# 传输方式是gRPC
# Backend service addresses.
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
————————————————
版权声明:本文为CSDN博主「swg321321」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/swg321321/article/details/129704345