携手创作,共同成长!这是我参与「掘金日新计划 · 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管理界面。
### 部署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服务端监控端口