SkyWalking-开源应用性能监控系统

这篇具有很好参考价值的文章主要介绍了SkyWalking-开源应用性能监控系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一,概述

1.1 特点

1.2 使用场景

1.3 功能

1.4 总体架构

二、安装与配置

2.1 搭建SkyWalking

2.2 搭建SkyWalking OAP服务

2.3 SkyWalking UI 搭建

2.4 skywalking-oap-server端口介绍

2.5 SkyWalking Agent

2.6 skywalking-tomcat


一,概述

SkyWalking是一个分布式追踪、服务网格和应用程序性能管理系统,它可以帮助用户深入了解应用程序的性能瓶颈,并提供了性能指标。SkyWalking支持多种语言,包括Java、.NET、NodeJS、Go等。通过SkyWalking,您可以监控微服务架构中的服务间调用,并提供性能指标。

1.1 特点

SkyWalking具有以下特点:

  • 分布式应用程序追踪:SkyWalking可以跟踪分布式应用程序中的请求链,以了解请求的流动路径和延迟时间。
  • 应用程序性能度量:SkyWalking可以对应用程序进行性能度量,并向用户提供性能指标。
  • 服务网格追踪:SkyWalking可以在服务网格中跟踪服务间通信,并提供有关服务间通信的性能指标。
  • 跨语言支持:SkyWalking支持多种语言,包括Java、.NET、NodeJS、Go等。

1.2 使用场景

SkyWalking适用于以下场景:

  • 微服务架构:SkyWalking可以帮助用户监控微服务架构中的服务间调用。
  • 分布式应用程序:SkyWalking可以帮助用户跟踪分布式应用程序中的请求链,并了解请求的流动路径和延迟时间。
  • 服务网格:SkyWalking可以帮助用户在服务网格中跟踪服务间通信,并提供有关服务间通信的性能指标。

1.3 功能

  1.  服务、服务实例和端点(如:单个HTTP URI)的性能指标分析
  2.  根本原因分析
  3.  服务拓扑图分析
  4.  服务和端点依赖分析
  5.  慢服务和慢端点检测
  6.  分布式追踪和上下文传播
  7. 总体架构

1.4 总体架构

  1. collector:链路数据归集器,数据可以落地MySQL、ElasticSearch、TiDB、H2等
  2. agent:探针,使用Javaagent做字节码植入,无侵入式的收集,并通过HTTP或者gRPC方式发送数据collector
  3. web:web可视化平台,用来展示落地的数据

二、安装与配置

本文就以v8.7.0为例部署使用,存储我们用的是Elasticsearch 7.x的版本

环境搭建

$ mkdir skywalking

$ cd skywalking

# 下载应用安装包

wget https://archive.apache.org/dist/skywalking/8.7.0/apache-skywalking-apm

-es7- 8.7.0.tar.gz

 解压缩至当前目录

tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz

cd apache-skywalking-apm-bin-es7

 具体文件目录结构如下

应用性能管理系统开源,运维平台-工具,skywalking,开源

  1. agent目录将来要拷贝到各服务所在机器上用作探针
  2. bin目录是服务启动脚本
  3. config目录是配置文件
  4. oap-libs目录是oap服务运行所需的jar包
  5. webapp目录是web服务运行所需的jar包
  6. 其中SkyWalking OAP 服务的配置文件位置是config/application.yml
  7. SkyWalking UI服务的配置文件位置:webapp/webapp.yml。
  8. 部署之前首先需要准备好Elasticsearch 服务,如果项目中已经有现成的,直接拿来用即可。部署流程如下:

2.1 搭建SkyWalking

修改配置:

<1>、设置 cluster.name

修改collector的配置文件config\application.yml,其中配置namespace与es-cluster.name值保持一致;es-cluster.name查看方式curl ip:9200如下所示:

应用性能管理系统开源,运维平台-工具,skywalking,开源

cd /data/skywalking/apache-skywalking-apm-bin-es7

vi config/application.yml

应用性能管理系统开源,运维平台-工具,skywalking,开源

2.2 搭建SkyWalking OAP服务

先修改OAP的配置文件,以设置Elasticsearch作为存储的数据库

cd /data/skywalking/apache-skywalking-apm-bin-es7

vi config/application.yml

# 配置文件中默认选择的是H2数据源,切换成elasticsearch7,把elasticsearch7配置成自己安装的信息

# 重点修改 storage 配置项,通过 storage.selector 配置项来设置具体使用的存储器。

# 可以主要修改nameSpace、clusterNodes两个配置即可,设置使用的Elasticsearch的集群和命名空间。

# storage.elasticsearch7配置项,设置使用Elasticsearch7.X 版本作为存储器。

这里面storage.selector配置项用来设置具体的存储器,默认为{SW_STORAGE:elasticsearch7}。然后storage.elasticsearch7配置项中修改nameSpace、clusterNodes,如果eleasticsearch开启了认证,需要修改user、password 

启动 SkyWalking服务

应用性能管理系统开源,运维平台-工具,skywalking,开源  

启动skywalking oap服务

bin/oapServiceInit.sh

返回

SkyWalking OAP started successfully!

打开logs/skywalking-oap-server.log日志文件,查看是否有错误日志,是否真正启动成功。首次启动时,因为 SkyWalking OAP 会创建大量的 Elasticsearch 的索引,所以可能会比较慢。SkyWalking后端支持多个存储实现器。它们中的大多数可以在后端启动时自动初始化存储,例如Elasticsearch 、Database。

2.3 SkyWalking UI 搭建

1.由于SkyWalking UI的默认地址是8080,与很多中间件有冲突,可以修改一下

# 修改webapp/webapp.yml

server:

  port: 18080

2.启动 SkyWalking UI 服务 

$ bin/webappService.sh

SkyWalking Web Application started successfully!

打开 logs/logs/webapp.log 日志文件,查看是否有错误日志,是否真正启动成功。如果需要修改 SkyWalking UI 服务的参数,可以编辑 webapp/webapp.yml 配置文件。例如说:

server.port:SkyWalking UI 服务端口。

spring.cloud.discovery.client.simple.instances.oap-service:SkyWalking OAP 服务地址数组,因为 SkyWalking UI 界面的数据,是通过请求 SkyWalking OAP 服务来获得的。注意的是,8.7.0版本的UI后台由于引入了zuul对静态资源的代理,所以OAP地址不再是通过collector.ribbon.listOfServers来设置的。

2.4 skywalking-oap-server端口介绍

直接启动:

也可使用直接启动方法:bin/startup.sh启动skywalking服务

启动成功后会启动两个服务,一个是skywalking-oap-server,一个是skywalking-web-ui

skywalking-oap-server服务启动后会暴露11800 和 12800 两个端口,分别为收集监控数据的端口11800和接受前端请求的端口12800,修改端口可以修改config/applicaiton.yml

访问UI界面:

浏览器打开http://IP:18080,如下图

应用性能管理系统开源,运维平台-工具,skywalking,开源

应用性能管理系统开源,运维平台-工具,skywalking,开源

页面的右下角可以中英文切换,可以切换选择要展示的时间区间的跟踪数据

2.5 SkyWalking Agent

agent探针可以让我们不修改代码的情况下,对java应用上使用到的组件进行动态监控,获取运行数据发送到OAP上进行统计和存储

agent探针在java中是使用java agent技术实现的,不需要更改任何代码,java agent会通过虚拟机(VM)接口来在运行期更改代码

agent探针所有的文件在Skywalking的agent文件夹下。

1> 修改探针默认配置

vi agent/config/agent.config

collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.ip:11800}

agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:1}

2> 采样率修改

agent.sample_n_per_3_secs配置说明:

在访问量较少时,链路全量收集不会对系统带来太大负担,能够完整的观测到系统的运行状况。但是在访问量较大时,全量的链路收集,对链路收集的客户端(agent探针)、服务端(SkyWalking OAP)、存储器(例如说 Elastcsearch)都会带来较大的性能开销,甚至会影响应用的正常运行。在访问量级较大的情况下,往往会选择抽样采样,只收集部分链路信息。SkyWalking Agent 在 agent/config/agent.config 配置文件中,定义了 agent.sample_n_per_3_secs 配置项,设置每 3 秒可收集的链路数据的数量。

3> 放置探针:

我们需要将 agent 目录,拷贝到 Java 应用所在的服务器上。这样,Java 应用才可以配置使用该 SkyWalking Agent。通过设置启动参数的方式检测系统,没有代码侵入。

# 在服务的启动命令中添加参数javaagent、Dskywalking.agent.service_name

nohup java -javaagent:agent/skywalking-agent.jar -Dskywalking.agent.service_name=app_name -jar app.jar > app.log 2>&1 &

以track-et-ext应用为例

nohup /data/ppm/opt/jdk1.8/bin/java \

-javaagent:/data/skywalking/agent/skywalking-agent.jar \

-Dskywalking.agent.service_name=springboot -Dskywalking.collector.backend_service=192.168.136.123:11800

-jar springboot > springboot.log 2>&1 &0

#在同一主机下无须添加Dskywalking.collector.backend_service参数;但在不同主机下部署应用时必须添加该参数

 #服务启动成功后访问skywalking查看

应用性能管理系统开源,运维平台-工具,skywalking,开源 #仪表盘:可以查看服务性能,接口总体耗时,数据库sql执行耗时排行等等

拓扑图:可以查看已经检测的服务及服务之间的关系

#追踪:可以看到整个链路中每一个步骤的耗时情况,其中可以看到方法中各个sql执行耗时及对应的sql,可以有针对的优化sql

应用性能管理系统开源,运维平台-工具,skywalking,开源

2.6 skywalking-tomcat

#对于使用tomcat部署的应用服务配置如下

在不同服务器配置tomcat启动项目时将skywalking下的agent目录打包到目标服务器

并且在配置参数时要指明Dskywalking.collector.backend_service,具体配置如下

vi tomcat/webapps/bin/catalina.sh

#在首行添加,和jar启动配置意义相同

CATALINA_OPTS="$CATALINA_OPTS \

-javaagent:/data/skywalking/agent/skywalking-agent.jar \

-Dskywalking.agent.service_name=Tomcat \

-Dskywalking.collector.backend_service=192.168.136.123:11800"; export CATALINA_OPTS文章来源地址https://www.toymoban.com/news/detail-776203.html

到了这里,关于SkyWalking-开源应用性能监控系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 系统性能监控-Windows自带性能监控器

    在性能测试过程中,往往需要对系统应用服务器,数据库服务器等服务端资源使用情况进行监控,以获取服务器性能数据,协助判断服务器性能是否满足性能需求;对于不同的服务器类型,监控服务器的方式也不尽相同,本篇我们主要来讲解对于Winsows 系的服务器的性能数据

    2024年02月10日
    浏览(30)
  • 性能测试——基本性能监控系统使用

    Collectd + InfluxdDB + Grafana Collectd 是一个守护(daemon)进程,用来定期收集系统和应用程序的性能指标,同时提供 了以不同的方式来存储这些指标值的机制;InfluxDB 开源的、高性能的时序型数据库 Grafana一个非常酷的数据可视化平台,常常应用于显示监控数据,支持多种数据源 利用

    2024年02月06日
    浏览(34)
  • 安全监控系统管理制度

    第一条 建立健全安全监测机构。配备足额的监测队伍。负责安 全监测装置的使用、维护、调试工作。 第二条 监测监控队伍,都必须经过安全监测和通风专业技术的 培训。经考试合格取得资质证后,方可上岗工作,安全监测人员不得 随意调动,不得兼职,如需调动必须经矿

    2024年02月08日
    浏览(30)
  • 火灾预警监测系统 智慧安全用电管理系统|电气火灾监控

    安科瑞Acrelcloud-6000 火灾预警系统  智慧安全用电管理系统 是针对我国当前电气火灾事故频发而开发的一套电气火灾预警和预防管理系统,该系统是基于移动互联网、云计算技术、通过物联网传感终端,将办公建筑、学校、医院、宾馆、体育场馆、生产企业等人员密集场所的

    2024年02月20日
    浏览(36)
  • 智能安全用电监控管理系统

    智能用电安全监控管理系统是一种基于物联网技术和大数据分析的智能化管理系统,用于监控和管理电力设备的安全运行。该系统依托电力智慧运维工具-电易云,可以实时监测电力设备的运行状态、电力负荷、用电行为等信息,通过智能算法识别设备的异常状态,及时发现和

    2024年02月03日
    浏览(29)
  • Linux系统运行时参数命令(性能监控、测试)(3)网络IO性能监控

    通常用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络性能 带宽 ,表示链路的最大传输速率,单位通常为b/s(比特/秒) 吞吐量 ,表示单位时间内成功传输的数据量,单位通常为b/s(比特/秒)或者B/s(字节/秒)。吞吐量受带宽限制,而吞吐量/带宽,也就是 网络

    2024年02月13日
    浏览(26)
  • 安全监控系统设备、设施管理制度

    第一条 建立健全安全信息调度室,瓦斯监控系统,按要求配足 报警头灯,便携式甲烷检测报警议、自救器。瓦斯监控系统必须具备 甲烷断电议和甲烷风电闭锁装置的全部功能,必须具备防雷电保护和 断电状态以及馈电状态监测、报警、显示、储存和打印报表功能,具 备不

    2024年02月07日
    浏览(34)
  • 主流开源监控系统一览

    减少故障有两个层面的意思,一个是做好常态预防,不让故障发生;另一个是如果故障发生,要能尽快止损,减少故障时长。而监控的典型作用,就是帮助我们发现及定位故障,这两个环节对于减少故障时长至关重要。 运维人员和研发人员是典型的关注稳定性的人,不过侧重

    2024年02月14日
    浏览(26)
  • 【性能测试】系统常用监控- -CPU

    在性能测试过程中CPU负载状态是重要监控指标项,它综合反应了系统的负载情况,根据监控的各指标项可以对系统或应用进一步分析调优。 架构:x86(intel、AMD、海光等)、MIPS(龙芯)、ARM(飞腾、麒麟)、SW(申威),同等架构和工艺情况下,核心数越多,扩展性越好;主

    2024年02月06日
    浏览(20)
  • 可视化云监控/安防监控系统EasyCVR视频管理平台播流失败的原因(端口篇)

    安防视频监控EasyCVR平台兼容性强,可支持的接入协议众多,包括国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台能将接入的视频流进行汇聚、转码与多格式分发,具体包括:RTMP、RTSP、HTTP

    2024年02月02日
    浏览(91)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包