Skywalking的安装与简单使用
Skywalking:国产APM系统。
官网地址:http://skywalking.apache.org/
github地址:https://github.com/apache/skywalking/tree/master/docs
功能
服务、实例、端点分析;
服务拓扑图分析;
慢查询检测;
告警;
…
核心概念
先来一张官方图。
Agent(探针):Agent 运行在各个服务实例中,负责采集服务实例的 Trace 、Metrics 等数据,然后通过 gRPC 方式上报给 SkyWalking 后端。
OAP:SkyWalking 的后端服务,其主要责任有两个。
一个是负责接收 Agent 上报上来的 Trace、Metrics 等数据,交给 Analysis Core (涉及 SkyWalking OAP 中的多个模块)进行流式分析,最终将分析得到的结果写入持久化存储中。SkyWalking 可以使用 ElasticSearch、H2、MySQL 等作为其持久化存储,一般线上使用 ElasticSearch 集群作为其后端存储。
另一个是负责响应 SkyWalking UI 界面发送来的查询请求,将前面持久化的数据查询出来,组成正确的响应结果返回给 UI 界面进行展示。
UI 界面:SkyWalking 前后端进行分离,该 UI 界面负责将用户的查询操作封装为 GraphQL 请求提交给 OAP 后端触发后续的查询操作,待拿到查询结果之后会在前端负责展示。
搭建
版本关系
Skywalking 6.X需要使用Elasticsearch 6.X,5.X或7.X的Elasticsearch存在兼容性问题。
Skywalking官方下载路径:http://skywalking.apache.org/downloads/。
本机测试版本:
Skywalking:6.5.0
https://archive.apache.org/dist/skywalking/6.5.0/
Elasticsearch:6.8.6
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.tar.gz
Kibana:6.6.1
https://artifacts.elastic.co/downloads/kibana/kibana-6.6.1-darwin-x86_64.tar.gz(mac版本,其他环境选择其他版本)
安装步骤
ES安装
解压ES安装包
tar -zxf elasticsearch-6.8.6.tar.gz
进入bin目录下,执行elasticsearch。 -d命令可后台执行。
./bin/elasticsearch
根目录下会生成logs文件,其中elasticsearch.log为日志文件。
也可修改config目录下elasticsearch.yml文件制定日志、数据存储位置,ES相关配置不再赘述。
tail -f logs/elasticserach.log
查看后台日志,若无报错信息,则说明启动成功。
浏览器输入:localhost:9200,界面展示如下,说明安装成功。
{
"name" : "dKPueZZ",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "yriBScj_QfmnDiUwSkdyQA",
"version" : {
"number" : "6.8.6",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "3d9f765",
"build_date" : "2019-12-13T17:11:52.013738Z",
"build_snapshot" : false,
"lucene_version" : "7.7.2",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
Kibana安装
kibana是为了查看ES数据,非必要。
加压kibana安装包
tar -zxf kibana-6.6.1-darwin-x86_64.tar.gz
修改kibana配置文件,指定elasticsearch集群。
配置文件路径config/kibana.yml文件
elasticsearch.hosts: ["http://127.0.0.1:9200"]
启动kibana
./bin/kibana
启动后访问localhost:5602,查看kibana地址。
界面正常表示启动成功。
skywalking安装
解压安装包
tar -zxf apache-skywalking-apm-6.5.0.tar.gz
修改配置文件,指定ES地址
配置文件目录:config/application.yml
默认使用h2,将storage下h2节点全部注释,放开storage下elasticsearch,并调整clusterNodes为实际ES地址。若为设置密码,保留默认配置即可。
skywalking分为OAP、webApp、agent三部分,执行bin目录下startup.sh (mac、linux系统,windows执行.bat),会启动OAP和WebApp两个服务。APP是前端界面,默认端口为8080,若端口冲突,可至webapp目录下,修改webapp.yml中server.port配置实现修改端口。
12800端口为监听OAP端口,默认即可,端口冲突情况下也可修改。
webapp、OAP日志在/logs下。
webapp:webapp.log
OAP:skywalking-oap-server.log
若无error日志,则说明启动成功。访问localhost:8080,可进入webApp UI界面。
至此,Skywalking安装成功。
使用
下面说一下如何使用。
skywalking是通过agent的方式实现,比较较zipkin和cat来说,skywalking更加友好,对代码是零侵入性。
只需要在启动jar的时候指定agent路径即可。
如下为idea中配置启动参数:
-javaagent:/yourpath/apache-skywalking-apm-bin/agent/skywalking-agent.jar
-Dskywalking.collector.backend_service=127.0.0.1:11800
-Dskywalking.agent.service_name=your_app_name
java -jar启动:
java -javaagent:/yourpath/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar -jar your_app.jar
UI说明
仪表盘
访问localhost:8080,进入ui界面。
1:控制台主菜单,分为仪表盘,拓扑图,追踪,告警,指标对比五个界面。仪表盘下有包含Service和DataBase。
2:当前服务可选择要查看的服务,当前端点下拉可选择当前服务下所有端点,当前实例下拉可选择所有实例。
3:不同维度的小菜单。
Global:全局视图;Service:服务详细视图;Endpoint:端点详细视图;Instance:服务详细视图。
4:Global Heatmap:热力图,某个时间段内请求热度,9处为具体时间段,可任意更换时间段。
5:Global Response Time Percentile:时间段p50、p75、p90、p95、p99指标;
6:Global Brief:skywalking所感知到的具体服务数量;
7:Global Top Throughput:吞吐量排名;
8:Global Top Slow Endpoint:耗时排名的Endpoint。
Service视图
1:Servoce Avg ResponseTime:指定服务的平均耗时;Service ResponseTime:图。
2:Service Avg Throughput:指定服务平均吞吐量;Service Throughput:图。
3:Service Avg SLA:指定服务的平均SLA(服务等级协议);Service SLA:图。
4:Global Percent Response :全局响应时间的分位数;
5:Service Percent Response :指定服务响应时间的分位数;
6:Service Slow Endpoint :指定服务中耗时比较长的 Endpoint 信息。
7:Running ServiceInstance :指定服务下的实例信息。
Endpoint视图
此界面展示指定Endpoint视图,与Service雷同,不再赘述。
Instance视图
此界面主要是指定实例信息,平均响应时间、请求次数、SLA指标、JVM信息、GC使用频次与耗时、CPU使用率等等。
拓扑图
此处可以看到具体的调用链路。
追踪
此处展示指定Endpoint的调用信息,包含DB调用等。
可具体查看某一阶段信息。
告警需要配置具体策略,此处略。
指标对比是不同服务端点相关对比,此处略。