SkyWalking简介和安装

news2025/1/18 6:50:41

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界面

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/378652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

马斯克被曝正在“招兵买马”,准备进军AI赛道

知情人士透露,马斯克最近几周接触了人工智能研究人员,打算成立一个新的研究实验室,开发聊天机器人ChatGPT的竞品。 为了开展这项工作,马斯克一直在向Igor Babuschkin抛橄榄枝,这位研究人员曾经在谷歌和OpenAI任职&…

MySQL数据同步至ElasticSearch的相关实现方法

Python: MySQL数据同步到ES集群(MySQL数据库与ElasticSearch全文检索的同步) 通过logstash将mysql数据同步至es中 SpringbootElasticSearch构建博客检索系统-学习笔记01SpringbootElasticSearch构建博客检索系统-学习笔记02P43 43.新闻案例-数据库数据导入到ES中 13…

面了一个测试工程师,明显感觉他背了很多面试题...

最近有朋友去字节面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…

医疗床头卡(WIFI方案)

一、产品特性 7.5寸墨水屏显示WIFI无线通信,极简部署,远程控制按键及高亮LED指示灯指示800*480点阵屏幕锂电池供电,支持USB充电DIY界面支持文本/条码/二维码/图片超低功耗/超长寿命,一次充电可用一年基于现有Wifi环境&#xff0c…

【数据结构(四)】树

文章目录树1 树的基本概念1.1 树的定义1.2 基本术语1.3 数的性质2 二叉树的概念2.1 二叉树的定义与特性2.1.1 定义2.1.2 二叉树的性质2.2 几种特殊的二叉树2.2.1 满二叉树2.2.2 完全二叉树2.3 二叉树的存储结构2.3.1 顺序存储2.3.2 链式存储3 二叉树的遍历和线索二叉树3.1 二叉…

云端IDE系列教程:云原生 Terminal 大比拼 (看 ChatGPT 如何选择)

原文作者:行云创新技术总监 邓冰寒 概述 上一期在使用 Ubuntu 20.04 作为基础镜像而定制的 WeTTY 成功的在 TitanIDE 运行起来了 ,非常适合程序员使用。能作为云原生 Terminal 的候选项目有 WeTTY、GoTTY、ttyd。接下来,我将在这三者中选择…

Java学习笔记 --- CSS

一、CSS技术介绍 CSS是「层样式表单」。是用于&#xff08;增强&#xff09;控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 二、CSS语法规则 三、CSS和HTML结合方式 第一种 在标签的style属性上设置key:value value”&#xff0c;修改标签样式 <!DOCTYP…

Zynq UltraScale系列使用MIPI CSI-2 RX Subsystem 解码MIPI视频PD输出 提供2套工程源码和技术支持

目录1、前言2、设计思路和架构3、vivado工程详解4、上板调试验证5、福利&#xff1a;工程代码的获取1、前言 本设计采用OV5640摄像头MIPI模式作为输入&#xff0c;分辨率为1280x72060Hz&#xff0c;MIPI解码方案采用Xilinx官方提供的MIPI CSI-2 RX Subsystem IP解码MIPI视频&a…

开源商城系统怎么选择?

随着电子商务的发展&#xff0c;开源商城系统越来越受到市场的重视&#xff0c;无论是大型企业还是小型企业&#xff0c;都在使用开源商城系统来提高自身的竞争力。 开源商城系统的优势&#xff1f; 开源商城系统可以节省企业的开发成本&#xff0c;减少企业的研发时间&#x…

【2023unity游戏制作-mango的冒险】-5.攻击系统的简单实现

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity游戏制作 ⭐攻击系统的简单实现⭐ 文章目录⭐攻击系统的简单实现⭐&#x1f468;‍&#x1…

Ip2Region的Java本地实现

最近有个需求是将ip地址转换为对应的行政区划&#xff0c;存入数据库&#xff0c;在网上查阅相关资料&#xff0c;有ip2Region实现方案&#xff0c;记录下来&#xff0c;方便备查。 一、知识介绍 ip2region.xdb 即离线 IP 数据管理框架和定位库&#xff0c;免费。 数据格式&a…

北极星指标体系

北极星指标体系 每个产品都有很多指标,每个指标都反映了对应业务的经营情况。但是在实际业务经营中,却要求我们在不同的产品阶段寻找到合适的指标,让这个指标可以代表当前产品阶段的方向和目标,让这个指标不仅对业务经营团队,而且对产品的用户、对产品的价值都能有很好的…

多智能体集群协同控制笔记(1):线性无领航多智能体系统的一致性

对于连续时间高阶线性多智能体系统的状态方程为&#xff1a; x˙i(t)Axi(t)Bui(t),i1,2..N\dot {\mathbf{x}}_i(t)A\mathbf{x}_i(t)B\mathbf{u}_i(t),i1,2..N x˙i​(t)Axi​(t)Bui​(t),i1,2..N 下标iii代表第iii个智能体&#xff0c;ui(t)∈Rq1\mathbf{u}_i(t)\in R^{q \time…

【vulhub漏洞复现】Thinkphp 2.x 任意代码执行

一、漏洞详情影响版本 thinkphp 2.x但是由于thinkphp 3.0版本在Lite模式下没有修复该漏洞&#xff0c;所以也存在该漏洞漏洞原因&#xff1a;e 和 /e模式匹配路由&#xff1a;e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行; /e 可执行模式&#xff0c…

vue入门

一、准备 本文是基于HBuilderX工具来讲解的。 1、工具 HBuilderX 2、 二、介绍 Vue是一个做网页的框架。 一个网页都是由多个模块&#xff08;组件&#xff09;拼成的。而Vue的组件化技术正式应用了这个思想。 三、创建项目 使用HBuilderX 创建项目。 1、创建空白项目…

【联机对战】微信小程序联机游戏开发流程详解

现有一个微信小程序叫中国象棋项目&#xff0c;棋盘类的单机游戏看着有缺少了什么&#xff0c;现在给补上了&#xff0c;加个联机对战的功能&#xff0c;增加了可玩性&#xff0c;对新手来说&#xff0c;实现联机游戏还是有难度的&#xff0c;那要怎么实现的呢&#xff0c;接下…

MySQL表的增删查改(基础)

gitee:博客中的所有操作整合新增语法:insert [into] table_name values(value_list)[案例] 创建一个学生表进行数据插入1.1单行数据全列插入[提示]我们可以想在记事本上写下命令,让后复制到数据库客户端,这样可以在出错的时候进行快速修改.同时为了美观和明了,我们可以进行适当…

15个Spring扩展点,一般人知道的不超过5个!

Spring的核心思想就是容器&#xff0c;当容器refresh的时候&#xff0c;外部看上去风平浪静&#xff0c;其实内部则是一片惊涛骇浪&#xff0c;汪洋一片。Spring Boot更是封装了Spring&#xff0c;遵循约定大于配置&#xff0c;加上自动装配的机制。很多时候我们只要引用了一个…

苹果认证MFI学习

MFi是"Made for iPhone/iPod/iPad“的缩写。 MFi包含一系列技术或标准&#xff0c;你所开发的配件&#xff0c;要符合这个标准&#xff0c;才能够苹果设备如手机所认可&#xff0c;才能得到授权在市场销售。 比如蓝牙数据传输&#xff0c;就需要符合iAP2协议&#xff0c…

统计学习方法学习笔记——概论(一)

# 文章内容来自学习李航老师的《统计学习方法》后的总结&#xff0c;相当于学习笔记&#xff0c;若有不正确的地方还请大家指正。# 所需先验知识&#xff1a;概率论与数理统计、线性代数一、 统计学习概述可能有些小伙伴没有听过统计学习&#xff0c;但是我相信机器学习大家一定…