SkyWalking是一个开源的可观测分析平台(Observability Analysis Platform), 用于从服务和云原生基础设施收集, 分析, 聚合及可视化数据。SkyWalking 提供了一种简便的方式来清晰地观测分布式系统, 甚至横跨多个云平台。SkyWalking 更是一个现代化的应用程序性能监控(Application Performance Monitoring)系统, 尤其专为云原生、基于容器的分布式系统设计。
官方网站:http://skywalking.apache.org/zh/ Github主页:https://github.com/apache/skywalking

SkyWalking 为 服务(service), 服务实例(service instance), 以及 端点(endpoint) 提供了可观测能力。服务(Service), 实例(Instance) 以及 端点(Endpoint) 等概念在如今随处可见, 所以让我们先了解一下他们在 SkyWalking 中都表示什么意思


SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 Elasticsearch、H2、MySQL、TiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent 、Zipkin v1/v2 、Istio 勘测、Envoy 度量等数据格式。
SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面。

SkyWalking 有如下核心特点
1、部署jdk1.8

2、部署ES

3、部署skywalking
SkyWalking 的启动包括两部分,一个是 SkyWalking Collector(oapService) ,一个是 SkyWalking UI(webappService),SkyWalking 解压后的 bin 目录
-- 下载安装
wget https://mirror.bit.edu.cn/apache/skywalking/8.0.1/apache-skywalking-apm-es7-8.0.1.tar.gz
tar -xzvf apache-skywalking-apm-es7-8.0.1.tar.gz -C /usr/local/
mv /usr/local/apache-skywalking-apm-bin-es7 /usr/local/skywalking
-- 修改配置,使用 elasticsearch7 作为存储
--选择连接ES7数据库,配置命名空间、IP地址、生命周期策略等参数。
--默认情况下,记录类数据保存3天,指标类数据保存7天,每间隔5分钟做一次滚动删除。
vim /usr/local/skywalking/config/application.yml
=========================================================================
storage:
selector: ${SW_STORAGE:elasticsearch7}
elasticsearch7:
nameSpace: ${SW_NAMESPACE:"skyworking"}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
core:
default:
enableDataKeeperExecutor: ${SW_CORE_ENABLE_DATA_KEEPER_EXECUTOR:true} # Turn it off then automatically metrics data delete will be close.
dataKeeperExecutePeriod: ${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5} # How often the data keeper executor runs periodically, unit is minute
recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3} # Unit is day
metricsDataTTL: ${SW_CORE_RECORD_DATA_TTL:7} # Unit is day4、日常运维
-- 启动
/usr/local/skywalking/bin/startup.sh
在 SkyWalking 中, 探针表示集成到目标系统中的代理或 SDK 库, 它负责收集遥测数据, 包括链路追踪和性能指标。根据目标系统的技术栈, 探针可能有差异巨大的方式来达到以上功能. 但从根本上来说都是一样的, 即收集并格式化数据, 并发送到后端。
1、下载解压
登录目标系统应用服务器,将官方下载包中的agent文件夹复制到提定目录
unzip apm-agent.zip -d /usr/local2、修改配置
进入布署应用的tomcat,打开tomcat/bin/catalina.sh文件,添加动态代理配置,设定服务名、实例名、后端IP地址、日志保留期、采集请求参数与sql执行参数。一般添加在配置文件最开始处。
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/apm-agent/skywalking-agent.jar=agent.service_name=fsl_sit.portal,agent.instance_name=portal119,collector.backend_service=172.1xxxx:11800,logging.max_history_files=3,plugin.mysql.trace_sql_parameters=true,plugin.springmvc.collect_http_params=true"; export CATALINA_OPTS3、重启tomcat应用
ps -ef|grep java|grep -v grep | awk '{print $2}' | xargs kill -9
./startup.sh

skywalking不仅可以帮助我们做链路跟踪,也可以帮助我们获取数据库中的慢sql并进一步优化,感兴趣的朋友可以测试一下。
来源:
https://www.toutiao.com/i6889421003500290573/