下载skywalking

1
wget https://mirror.bit.edu.cn/apache/skywalking/8.0.0/apache-skywalking-apm-es7-8.0.0.tar.gz

解压

1
tar zxvf apache-skywalking-apm-es7-8.0.0.tar.gz

collector配置

vi apache-skywalking-apm-bin-es7/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
24
25
26
27
28
29
30
31
32
33
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

# rest 服务地址和端口
restHost: ${SW_CORE_REST_HOST:0.0.0.0}
#与webApp的12800对应
restPort: ${SW_CORE_REST_PORT:12800}
restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}

# gRPC 服务地址和端口
gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
#与agent端11800对应
gRPCPort: ${SW_CORE_GRPC_PORT:11800}

storage:
#更改默认为elasticsearch7
selector: ${SW_STORAGE:elasticsearch7}
elasticsearch7:
#nameSpace与es的名称保持一致
nameSpace: gzlp-elasticsearch
#es集群节点
clusterNodes: 172.17.53.225:9100,172.17.53.226:9101,172.17.53.227:9102
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
dayStep: ${SW_STORAGE_DAY_STEP:1}
user: ${SW_ES_USER:""}
password: ${SW_ES_PASSWORD:""}

webApp 配置

vi apache-skywalking-apm-bin-es7/webapp/webapp.yml

1
2
3
4
5
6
7
8
9
10
11
server:
#web访问端口
port: 8070

collector:
path: /graphql
ribbon:
ReadTimeout: 10000
# Point to all backend's restHost:restPort, split by ,
#与application.yml中的restPort相对应
listOfServers: 127.0.0.1:12800

启动

1
2
3
./bin/oapService.sh

./bin/webappService.sh

Agent 配置

vi apache-skywalking-apm-bin-es7/agent/config/agent.config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 设置Agent命名空间,它用来隔离追踪和监控数据,当两个应用使用不同的名称空间时,跨进程传播链会中断。
agent.namespace=${SW_AGENT_NAMESPACE:default-namespace}

# 设置服务名称,会在 Skywalking UI 上显示的名称
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}

# 每 3秒采集的样本跟踪比例,如果是负数则表示 100%采集
agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1}

# 启用 Debug ,如果为 true 则将把所有检测到的类文件保存在"/debug"文件夹中
# agent.is_open_debugging_class = ${SW_AGENT_OPEN_DEBUG:true}

# 后端的 collector 端口及地址
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.2.215:11800}

# 日志级别
logging.level=${SW_LOGGING_LEVEL:DEBUG}

把apache-skywalking-apm-bin-es7/agent 目录,拷贝到应用所在的服务器上。

启动应用时

1
2
3
#namespace和service_name改为对应的服务环境和名称

java -jar -Dskywalking.agent.namespace=prod -Dskywalking.agent.service_name=prod-servicename -javaagent:/home/skywalking/agent/skywalking-agent.jar $JARFILE --spring.profiles.active=$ACTIVE >> $LOG &

skywalking页面使用
仪表盘

拓扑图
根据服务调用自动还原应用拓扑图,连线会根据请求关系动态流动

追踪
查看具体url的耗时原因

红色的url可以查看日志详情