SkyWalking简介和安装

APM系统

早期的监控系统功能比较单一,主要以监控CPU、内存、网络、I/O等基础设置为主(cacti、nagios)

后来随着中间件技术的不断发展,监控系统也开始监控缓存、数据库、MQ等各种基础组件的性能(zabbix、prommethus)

现在微服务架构已经是一个很通用的系统架构,系统功能被模块化,再加上k8s与容器化的兴起及应用数量的爆炸式增长,各模块和服务之间的调用链路、响应时间、负载等越来越不好通过传统的工具进行监控和统计,此时APM(Application Performance Management)系统应运而生。

APM系统主要实现了以下功能:

  • 收集应用程序的性能
  • 监控应用程序调用的中间件的性能
  • 在代码级别实现性能分析
  • 监控应用程序资源使用情况
  • 统一展示监控数据和日志

目前常见的开源APM项目包括:

  • CAT:由国内美团开源,基于java开发,支持多语言的客户端,监控数据会全量统计,国内很多公司在使用。CAT需要开发人员在应用程序中埋点,对代码侵入性较强
  • Zipkin:由Twitter发起并开运,基于java实现,侵入性相对CAT要低一点,需要对web.xml之类的配置进行修改,但依然对系统有一定侵入性。Zipkin可以轻松与SpringCloud进行集成,也是SpringCloud推荐的APM系统
  • jaeger:由Uber推出的一款分布式链路追踪系统,主要使用Go语言开发,对于业务代码侵入性较小
  • Pinpoint: 一个韩国团队开源的产品,运用了字节码增强技术,只需要在启动时添加启动参数即可,对代码无侵入,目前支持Java和PHP语言,底层采用HBase来存储数据,探针收集的数据粒度非常细,但性能损耗大,因其出现的时间较长,完成度也很高,应用的公司较多。
  • Skywalking:是本土开源的基于字节码注入的调用链路分析及应用监控分析工具,特点是支持多种插件,UI功能较强,接入端无代码侵入。

Skywalking介绍

SkyWalking官网:https://skywalking.apache.org

Skywalking由国内开源爱好者吴晟开源并提交到Apache孵化器的开源项目,于2019年从Apache基金会孵化器毕业成为顶级项目,目前SkyWalking支持Java、.net、python、go等语言的探针,数据存储支持mysql、elasticsearch等。Skywalking根Pinpoint一样采用字节码注入的方式实现代码的无侵入,虽然探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前社区活跃,增长势头强劲。

SkyWalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器架构而设计。它是一款优秀的APM工具,包括了分布式链路追踪、性能指标分析和服务依赖分析等。

SkyWalking具有以下特点:

  • 实现了从请求跟踪、指标收集和日志记录的完整信息记录
  • 多语言探针支持
  • 内置服务网格可观察性,支持从Istio+Envoy Service Mesh收集和分析数据
  • 模块化架构,存储、集群管理、使用插件集合都可以进行自由选择
  • 支持告警
  • 优秀的可视化效果

SkyWalking的架构如下图所示,其逻辑上主要由探针、平台后端、存储和用户界面4部分组成。
在这里插入图片描述
在这里插入图片描述

  • 探针:在不同的数据来源可能是不一样的,但用都是收集数据,将数据转换为SkyWalking数据格式,并通过HTTP或gRPC方式发送到平台后端
  • 平台后端:SkyWalking的后端服务,支持数据聚合、数据分析以及驱动数据流从探针到用户界面的流程
  • 存储:支持通过开放的插件化的接口存放 SkyWalking 数据。可以选择既有的存储系统(例如mysql、ES等),也可以自己实现一个存储系统。
  • UI:数据的可视化展示界面

SkyingWalking的优势:

  • 兼容性好,支持传统的分离部署架构中的dubbo和springcloud,也支持云原生中的istio和envoy
  • 易于部署和后期维护,组件化,可以自定义部署,后期扩展简单
  • 高性能
  • 易于二次开发

Skywalking部署

SkyWalking支持多种部署方式,包括二进制、docker容器运行以及在k8s集群中运行。下面是二进制的部署步骤,其他部署方式可以参考官网介绍:https://skywalking.apache.org/docs/main/v9.3.0/en/setup/backend/backend-setup/

另外部署的只是单机版,如果想要部署集群,可以参考官方文档:https://skywalking.apache.org/docs/main/v9.3.0/en/setup/backend/backend-cluster/

在这里插入图片描述

安装Elasticsearch

先部署后端存储Elasticsearch,从官网下载deb包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.6.2-amd64.deb
dpkg -i elasticsearch-8.6.2-amd64.deb

修改ES配置文件

root@es-node-01:~# vim /etc/elasticsearch/elasticsearch.yml	#修改下面两个选项,其余可以保持默认
network.host: 192.168.122.27	#修改监听地址
xpack.security.enabled: false	#关闭xpack安全设置

启动ES

systemctl daemon-reload
systemctl start elasticsearch.service
systemctl status elasticsearch.service
systemctl enable elasticsearch.service

访问ES端口测试
在这里插入图片描述

安装SkyWalking

安装java环境,支持

mkdir /usr/local/java
tar xf jdk-8u131-linux-x64.tar.gz -C /usr/local/java/

vim /etc/profile	#配置环境变量,添加下面几行
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

source /etc/profile
java -version

从官网下载SkyWalking安装包

在这里插入图片描述
在这里插入图片描述

wget https://dlcdn.apache.org/skywalking/9.3.0/apache-skywalking-apm-9.3.0.tar.gz
tar xf apache-skywalking-apm-9.3.0.tar.gz -C /usr/local/src/

修改配置文件

cd /usr/local/src/apache-skywalking-apm-bin/config
vim application.yml		#修改以下两个配置,指定使用Elasticsearch存储数据
################################
132 storage:
133   selector: ${SW_STORAGE:elasticsearch}		#选择elasticsearch作为后端存储
134   elasticsearch:	#elasticsearch配置
135     namespace: ${SW_NAMESPACE:""}
136     clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.122.27:9200}	#指定elasticsearch地址

启动skywalking服务

cd /usr/local/src/apache-skywalking-apm-bin/bin

在这里插入图片描述

启动服务之后,可以通过/usr/local/src/apache-skywalking-apm-bin/logs目录下的日志文件来查看启动过程中是否有报错

验证,访问SkyWalking UI界面

在这里插入图片描述

### SkyWalking Agent 使用指南与配置 #### 关于 SkyWalking Java Agent 的基本概念 Apache SkyWalking 是一款开源的应用性能监控 (APM) 工具,支持分布式系统的追踪、指标收集以及服务拓扑展示等功能。其核心组件之一是 **Java Agent**,它通过字节码增强技术实现对应用的无侵入式监控[^1]。 --- #### 下载 SkyWalking Agent 要使用 SkyWalking Java Agent,需先从官方渠道下载对应的版本。以下是获取方式: - 访问 Apache SkyWalking 官方网站或 GitHub 发布页面,找到最新发布的二进制包。 - 下载链接通常位于 [Releases 页面](https://github.com/apache/skywalking/releases),选择适合的操作系统架构并解压即可获得 `skywalking-agent` 文件夹[^4]。 --- #### 配置 SkyWalking Agent SkyWalking Agent 的主要配置文件为 `agent.config` 或者 YAML 格式的 `application.yml`,具体取决于安装路径使用的版本。以下是一些常见的配置项说明: 1. **OAP Server 地址** 设置 OAP(Observability Analysis Platform)服务器地址以便数据上报: ```properties collector.backend_service=${SW_BACKEND_SERVICE:localhost:11800} ``` 2. **采样率** 控制 Trace 数据的采集频率,减少网络流量开销: ```properties trace.sample_rate=1.0 ``` 3. **插件启用** 开启特定协议的支持(如 HTTP、Dubbo 等),默认情况下部分插件可能未激活: ```yaml plugins: - name: httpclient enabled: true ``` 上述配置可以通过编辑 `${SKYWALKING_AGENT_HOME}/config/application.yml` 实现。 --- #### 启动参数设置 为了使 SkyWalking Java Agent 生效,在启动目标 JVM 应用程序时需要加入 `-javaagent` 参数。例如: ```bash -javaagent:/path/to/skywalking/agent/skywalking-agent.jar ``` 此命令会加载指定目录下的 SkyWalking Agent 并按照预设规则拦截业务逻辑中的方法调用链路信息。 --- #### 自定义 Plugin 开发流程简介 如果现有 Plugins 不满足需求,则可以尝试扩展功能。这一步骤涉及源代码编译环境搭建及相关依赖管理工具 Maven 的熟练运用。操作概览如下所示: 1. 克隆仓库到本地机器; 2. 执行构建脚本完成初始化工作流; 3. 修改对应模块内的类描述符匹配表达式以适配新的框架特性[^3]。 注意:自定义开发前建议仔细阅读官方文档中关于 Instrumentation API 的讲解材料。 --- #### Kong 插件专项指导 针对网关场景下如何集成 SkyWalking 监控体系,《引用[2]》提供了详细的 Kong Agent 安装教程。简单来说就是克隆 GitCode 上托管的镜像库副本之后参照 README.md 中列举出来的步骤逐一执行下去直至成功部署完毕为止[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值