「开源摘星计划」SkyWalking(1):SkyWalking部署(入门级)

1,285 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情

本文已参与「开源摘星计划」,欢迎正在阅读的你加入。
活动链接:github.com/weopenproje…

部署说明

使用默认的内置数据库h2,

部署skywalking-apm

2.1 安装JDK

$ tar zxvf jdk-8u281-linux-x64.tar.gz   -C /usr/local/

配置环境变量

$ echo """
export JAVA_HOME=/usr/local/jdk1.8.0_281
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
""" >> /etc/profile
$ source /etc/profile            #使配置生效
$ echo """
export JAVA_HOME=/usr/local/jdk1.8.0_281
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
""" >> ~/.bashrc
$ source ~/.bashrc
$ java  -version              #验证是否安装成功
java version "1.8.0_281"
$ which java                     #查看Java安装路径

 

2.2 下载安装包

$ wget <https://archive.apache.org/dist/skywalking/8.9.1/apache-skywalking-apm-8.9.1.tar.gz>
$ tar zxvf apache-skywalking-apm-8.9.1.tar.gz -C /usr/local/
$ cd /usr/local/apache-skywalking-apm-bin/

config/application.yml   核心配置 config/gateways.yml  外接网关 config/trace-sampling-policy-settings.yml config/ alarm-settings.yml   预警 config/service-apdex-threshold.yml  服务apdex设置

├── bin                              # 运行脚本
│   ├── oapService.bat
│   ├── oapServiceInit.bat
│   ├── oapServiceInit.sh # 初始化启动脚本,用于集群环境。为了防止多节点同时启动导致冲突,
    #单节点执行oapServiceInit.sh进行初始化,其他节点执行oapServiceNoInit.sh等待初始化完成后再启动。
│   ├── oapServiceNoInit.bat
│   ├── oapServiceNoInit.sh
│   ├── oapService.sh               # OAP 启动并初始化
│   ├── startup.bat
│   ├── startup.sh                  # 启动并初始化脚本(同时启动OAP与UI)
│   ├── webappService.bat
│   └── webappService.sh            # Skywalking UI 启动脚本
├── config                           # 配置文件
│   ├── alarm-settings.yml          # 告警配置
│   ├── application.yml             # OAP 主配置文件
│   ├── component-libraries.yml     # 组件库配置,定义被监控应用中使用的组件库
│   ├── endpoint-name-grouping.yml  # 接口名称分组规则
│   ├── envoy-metrics-rules         # envoy 网关监控策略
│   │   ├── envoy-svc-relation.yaml
│   │   └── envoy.yaml
│   ├── fetcher-prom-rules          # Prometheus Fetcher 配置文件,用于OAP自监测。
│   │   └── self.yaml
│   ├── gateways.yml                # 网关配置,单节点无需配置
│   ├── lal
│   │   ├── default.yaml
│   │   └── envoy-als.yaml
│   ├── log4j2.xml                  # 日志配置
│   ├── log-mal-rules
│   │   └── placeholder.yaml
│   ├── metadata-service-mapping.yaml
│   ├── meter-analyzer-config
│   │   └── spring-sleuth.yaml
│   ├── oal                         # oal监控度量指标
│   │   ├── browser.oal
│   │   ├── core.oal
│   │   ├── disable.oal
│   │   ├── dotnet-agent.oal
│   │   ├── event.oal
│   │   ├── java-agent.oal
│   │   └── tcp.oal
│   ├── openapi-definitions       
│   │   └── serviceA
│   ├── otel-oc-rules               # OpenTelemetry receiver规则
│   │   ├── istio-controlplane.yaml
│   │   ├── k8s-cluster.yaml
│   │   ├── k8s-node.yaml
│   │   ├── k8s-service.yaml
│   │   ├── oap.yaml
│   │   └── vm.yaml
│   ├── service-apdex-threshold.yml # apdex配置
│   ├── trace-sampling-policy-settings.yml  # 采样配置
│   ├── ui-initialized-templates    # UI配置模板
│   │   ├── apm.yml
│   │   ├── browser.yml
│   │   ├── database.yml
│   │   ├── event.yml
│   │   ├── istio-dp.yml
│   │   ├── istio.yml
│   │   ├── k8s.yml
│   │   ├── self-observability.yml
│   │   ├── spring-sleuth.yml
│   │   ├── topology-endpoint-relation.yml
│   │   ├── topology-endpoint.yml
│   │   ├── topology-instance.yml
│   │   ├── topology-service-instance-relation.yml
│   │   ├── topology-service-relation.yml
│   │   ├── topology-service.yml
│   │   └── vm.yml
│   └── zabbix-rules            # zabbix 规则
│       └── agent.yaml
├── config-examples                      # 配置文件示例
│   ├── alarm-settings.yml
│   ├── lal.yaml
│   └── log-mal.yaml
├── LICENSE
├── licenses
├── NOTICE
├── oap-libs                         # OAP Jar文件与依赖库
├── README.txt
├── tools                                # 开发运维工具
│   └── profile-exporter
│       ├── application.yml
│       ├── profile_exporter_log4j2.xml
│       └── profile_exporter.sh
└── webapp                               # Skywalking UI
    ├── skywalking-webapp.jar
    └── webapp.yml                       # Skywalking UI 配置文件

2.3 修改配置

$ vim webapp/webapp.yml
server:
  port: 8080    #修改前端访问端口

4)启动服务

$ sh bin/startup.sh

SkyWalking OAP started successfully!

SkyWalking Web Application started successfully!

启动后会出现个logs文件夹,可以查看对应的日志文件来排查故障。

 

2.4 浏览器登录Skywalking UI

在浏览器地址栏输入主机IP:服务端口访问Skywalking的Web UI管理界面。

image.png

### 部署Agent客户端

下载安装包

$ wget <https://archive.apache.org/dist/skywalking/java-agent/8.9.0/apache-skywalking-java-agent-8.9.0.tgz>
$ tar zxvf apache-skywalking-java-agent-8.9.0.tgz -C /usr/local/
$ cd  /usr/local/skywalking-agent/

 

├── activations          #工具包,默认加载。
├── bootstrap-plugins        #启动插件,默认加载。
├── config
│   └── agent.config  #配置文件
├── LICENSE
├── licenses
├── logs
├── NOTICE
├── optional-plugins         #可选扩展插件,启动不加载,如需加载将其移到到plugins目录下。
├── optional-reporter-plugins            #可选统计类插件,启动不加载。
├── plugins                              #服务类插件
└── skywalking-agent.jar                 #客户端主程序,需要被服务启动是引用。

启动Java-Agent

方式一、

       编写启动脚本

$ echo """
# SkyWalking Agent配置
export SW_AGENT_NAME=springboot‐skywalking‐demo #Agent名字,一般使用`spring.application.name`
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.2.120:11800  #配置 Collector 地址。
export SW_AGENT_SPAN_LIMIT=2000  #配置链路的最大Span数量,默认为 300。
export JAVA_AGENT=‐javaagent:/usr/local/skywalking-agent/skywalking‐agent.jar
java $JAVA_AGENT ‐jar springboot‐skywalking‐demo‐0.0.1‐SNAPSHOT.jar #jar启动
""" > java-agent-start.sh
$ chmod +x java-agent-start.sh

方式二、

$ java  -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar  \
 ‐DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.2.120:11800  \
 ‐DSW_AGENT_NAME=skywalking‐demo  ‐jar springboot‐skywalking‐demo‐0.0.1‐SNAPSHOT.jar

‐DSW_AGENT_NAME:指定服务名称(如果有nacos 最好与nacos保持一致)
-DWS_AGENT_COLLECTOR_BACKEND_SERVICES: 指定sw oap服务端监控端口