SkyWalking 入门保姆教程
1、概述
1.1、概念
SkyWalking 是什么?
分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。
1.2、功能列表
SkyWalking 有哪些功能?
- 多种监控手段。可以通过语言探针和 service mesh 获得监控是数据。
- 多个语言自动探针。包括 Java,.NET Core 和 Node.JS。
- 轻量高效。无需大数据平台,和大量的服务器资源。
- 模块化。UI、存储、集群管理都有多种机制可选。
- 支持告警。
- 优秀的可视化解决方案。
1.3、 整体架构
SkyWalking 整体架构是什么样子的呢?
整个架构可以拆分为上下左右四部分:
- 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
- 下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
- 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
- 左部分 SkyWalking UI :负责提供控台,查看链路等等。
1.4、官方文档
SkyWalking 英文文档: https://github.com/apache/skywalking/tree/master/docs
SkyWalking 中文文档:https://github.com/SkyAPM/document-cn-translation-of-skywalking
考虑到使用 SkyWalking 的目的,是实现分布式链路追踪的功能,所以最好去了解下相关的知识。这里推荐阅读两篇文章:
2、搭建 SkyWalking 单机环境
这里我们安装最新版的SkyWalking
2.1 下载最新版的SkyWalking
wget --no-check-certificate https://dlcdn.apache.org/skywalking/9.2.0/apache-skywalking-apm-9.2.0.tar.gz
2.2 解压软件包
tar -zxvf apache-skywalking-apm-9.2.0.tar.gz
mv apache-skywalking-apm-bin /usr/local/skywalking
2.3 修改 OAP 配置文件
cd /usr/local/skywalking
vim config/application.yml
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
namespace: ${SW_NAMESPACE:"skywalking-es"}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:10.xxx.xxx.xxx:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
user: ${SW_ES_USER:""}
password: ${SW_ES_PASSWORD:""}
#trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
#trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.
dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2} # Shard number of new indexes
重点修改 storage 配置项,通过 storage.selector 配置项来设置具体使用的存储器。
storage.elasticsearch 配置项,设置使用 Elasticsearch7.X 版本作为存储器。胖友可以主要修改 nameSpace、clusterNodes 两个配置项即可,设置使用的 Elasticsearch 的集群和命名空间。
storage.elasticsearch 配置项,设置使用 Elasticsearch 7.X 版本作为存储器。
还有 MySQL、H2、InfluxDB 等等存储器的配置可以选择,胖友自己根据需要去选择哈~
2.4 启动 SkyWalking 服务
cd /usr/local/skywalking
bin/webappService.sh
2.5 访问ui界面
浏览器打开 http://10.xxx.xxx.xxx:8080
。界面如下图:
这样我们的SkyWalking 服务端便安装成功了