Skywalking部署

一个对Java友好的微服务链路监控工具。

下载

apache-skywalking-apm-9.2.0.tar.gz

1
2
3
4
5
6
mkdir ~/tools 
cd ~/tools
wget https://dlcdn.apache.org/skywalking/9.2.0/apache-skywalking-apm-9.2.0.tar.gz --no-check-certificate
tar -zxf apache-skywalking-apm-9.2.0.tar.gz -C ../
cd ../
mv apache-skywalking-apm-bin skywalking

安装

直接参考官方文档

配置

数据库

服务配置

1
vim ~/skywalking/config/application.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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:52800}
restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
restMaxThreads: ${SW_CORE_REST_MAX_THREADS:200}
restIdleTimeOut: ${SW_CORE_REST_IDLE_TIMEOUT:30000}
restAcceptQueueSize: ${SW_CORE_REST_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:51800}
#**************
storage:
selector: ${SW_STORAGE:mysql}
mysql:
# 下面改为自己的数据库配置
properties:

注意:

需要自己添加lib依赖到 ~/skywalking/oap-libs/ 目录下。

比如:

  1. MySQLmysql-connector-java-8.0.30.jar
  2. EStransport-7.17.6.jar

web服务配置

1
vim ~/skywalking/webapp/webapp.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server:
#修改非标端口
port: 52801
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:52800

日志

默认 30 天清理,一个文件 100MB,无需更改

1
~/skywalking/config/log4j2.yml

启动

全部启动服务与web

1
~/skywalking/bin/startup.sh

分开启动

1
2
~/skywalking/bin/webappService.sh
~/skywalking/bin/oapService.sh

启动日志

1
2
3
4
# ~/skywalking/logs/oap.log
# ~/skywalking/logs/skywalking-oap-server.log
# ~/skywalking/logs/webapp-console.log
tail -f ~/skywalking/logs/*.log

Java-agent

官网文档

下载

apache-skywalking-java-agent-8.12.0.tgz

1
2
3
4
mkdir ~/tools && cd ~/tools
wget https://dlcdn.apache.org/skywalking/java-agent/8.12.0/apache-skywalking-java-agent-8.12.0.tgz --no-check-certificate
tar -xf apache-skywalking-java-agent-8.12.0.tgz -C ../
cd ../

配置

1
vim ~/skywalking-agent/config/agent.config

修改

1
2
3
4
5
6
7
8
# The group name is optional only.
agent.service_name=${SW_AGENT_NAME:maxzhao_group::auth}
# The agent namespace
agent.namespace=${SW_AGENT_NAMESPACE:maxzhao}
# The agent cluster
agent.cluster=${SW_AGENT_CLUSTER:maxzhao_cluster}
# 真实的skywalking 地址
collector.backend_service=127.0.0.1:51800

启动

1
java -javaagent:~/skywalking-agent/skywalking-agent.jar -jar yourApp.jar

其它参考

监控指标说明:

  • Service Apdex:Apdex是衡量一个服务在网格中的健康程度的指标。Apdex规范推荐了以下Apdex质量评级,将Apdex得分分为优秀(0.94 - 1.00)、良好(0.85 - 0.93)、一般(0.70 - 0.84)、差(0.50 - 0.69)和不可接受(0.00 - 0.49)。
  • Success Rate:服务响应成功比率
  • Service Load (calls / min):每分钟并发数
  • Service Avg Response Time (ms):应用平均响应时间
  • Service Response Time Percentile (ms):应用在特定毫秒内的响应请求的百分比。
  • Message Queue Consuming Count:消息队列消费数量
  • Message Queue Avg Consuming Latency (ms):消息队列平均消费数量每毫秒
  • Service Instances Load (calls / min):每个应用实例分流的每分钟并发数
  • Slow Service Instance (ms):慢响应实例排行
  • Service Instance Success Rate (%):应用实例的成功百分比
  • Endpoint Load in Current Service (calls / min):当前应用端点(接口)每分钟请求次数
  • Slow Endpoints in Current Service (ms):当前应用端点(接口)慢响应的排行
  • Success Rate in Current Service (%):当前应用端点(接口)响应的成功率

监控大项:

  • Trace:可以跟踪至JDBC层,可以查看具体的sql执行语句以及耗时,还有应用内抛出的应用信息。
  • Topology:拓扑图,可以看到应用间的调用和联系以及繁忙情况
  • Instance:各个应用实例的响应情况
  • Endpoint:端点接口的响应情况

本文地址: https://github.com/maxzhao-it/blog/post/b66e8509/