SkyWalking实战与设置警告

日升时奋斗,日落时自省 

目录

1、简述

2、Skywalking优越性

2.1、相同产品分析

2.2、Skywalking组成

2.3、Skywalking本质

3、Skywalking服务安装与启动 

3.1、ES安装并启动

3.1.2、删除环境变量

3.1.3、预启动ES

3.1.4、关闭HTTPS认证

3.1.5、关闭登录授权

3.1.6、再次启动ES

3.1.7、验证ES

 3.2、Skywalking安装并启动

3.2.1、下载并解压Skywalking

3.2.2、修改配置文件

3.2.3、启动Skywalking

3.2.4、访问验证

4、上传数据至Skywalking

4.1、下载Agent代理

4.2、项目添加Agent代理

4.3、链路追踪

5、告警功能

5.1、设置告警规则

5.2、应用程序告警


1、简述

SkyWalking 是一个开源的分布式追踪系统,用于监测、诊断和优化分布式系统的性能。它可以帮助开发者和运维人员深入了解分布式系统中各个组件之间的调用关系、性能瓶颈以及异常情况,从而提供系统级的性能优化和故障排查。

2、Skywalking优越性

监控分布式系统:在分布式系统中,各个组件之间的调用链错综复杂难以进行全面的监控和诊断。skyWalking 提供了完善的分布式追踪功能,可以帮助开发者全面了解分布式系统的调用关系、性能瓶颈和异常情况,提供系统级的监控和诊断能力,遥测数据报告和查询相应的应用程序接口。

异常排查:当系统发生异常或错误时,需要及时定位问题并进行排查skyWalking 可以捕获和记录系统中的异常情况,并在调用链中标记异常的来源和传播路径,帮助开发者快速定位问题和解决问题。

注:上面是总述了Skywalking的功能的优点:分布式跟踪、日志管理、警报和遥控检测等

2.1、相同产品分析

Pinpoint: 韩国团队开发,它的优点: UI 丰富。缺点: 探针收集的数据粒度非常细,但性能损耗较大

CAT: 大众点评开发,它的优点: 报表功能强大。缺点: 有业务侵入性、代码比较老旧。

Zipkin: Twitter 公司开发,它的优点: 轻松接入 Spring loud 官方推荐 APM (ApplicationPerformanceManagement,系统性能管理) 系统。缺点: 有一定侵入性,但比 CAT 框架强一些

Skywalking: 国人开发,Apache 孵化和运营,是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。它的优点: 无侵入、性能优秀、社区活跃、支持广泛、中文文档比较齐全。

2.2、Skywalking组成

Skywalking是由以下三个主要的组件构成的:

探针(Agent):提供了系统的原始数据,通过拦截HTTP请求、RPC调用等方式来捕获和记录调用链路信息

OAP 服务: Observability Analysis Platform,可观性分析平台,数据存储多种后端平台(ES,MySQL等)。它的功能主要有两个:

  • 收集数据、加工处理并持久化
  • 给UI界面提供查询服务

UI界面:展示数据信息(包括应用程序的调用链路、性能指标、错误日志等信息,并进行定制化查询和可视化分析)

2.3、Skywalking本质

Skywalking 本质是一个 APM (Application Performance Management,系统性能管理)系统。
而 APM 通常是实现 OpenTracing 标准的系统,OpenTracing 是一个开放标准和规范,用于实现分布式应用程序中的追踪和调用链分析。它提供了一种统一的 API 和工具,使开发者能够在不同的应用程序中实现分布式追踪功能,并将各个组件之间的调用关系和性能指标汇总起来,用于分析和监控应用程序的性能。
OpenTracing 中主要包含了 Tracing 视图,Tracing 视图有两个明显的优点:

  • 清晰的看出每个模块的执行时长
  • 清晰的看到问题和发现问题

普通视图:

 OpenTracing视图:

3、Skywalking服务安装与启动 

Skywalking数据存储支持很多数据库,例如ES、MySQL、PostgreSql等的,但是这里主要应用于查询功能,所以采用了ElasticSearch(简称ES)搜索性能很高,作为数据存储最好不过了

(1)因此对于Skywalking的安装主分为以下几步:

(2)安装并启动ES安装运行SkyWalking

  • 运行Skywalking后端服务
  • 运行SkywalkingUI服务

3.1、ES安装并启动

依赖环境jdk17,因为这里使用ES8.9.0版本

ES官方下载地址:Download Elasticsearch | Elastic

找个版本下载就行,当前最新是8.11的版本,版本差并大

下载完成之后,解压下载包

基本目录如下(文件后面的文是描述当前文件的):

3.1.2、删除环境变量

删除环境变量中国配置的,Java类库中的dt.jar和tools.jar,如果未配置这两个变量,可以不用管了

就是之前可能配置一个变量叫做“CLASSPATH”的

高版本的Java lib 中未包含这两个jar包,如果不删除,那么ES会判断和使用这两个Jar包,然后启动就会出错

3.1.3、预启动ES

进入bin路径,windows系统双击elasticsearch.bat进行启动:

第一次是预启动ES是为了在配置文件中生成相关配置信息

等ES启动之后,关闭控制,关闭ES服务

3.1.4、关闭HTTPS认证

在配置文件config/elasticsearch.yml中将xpack.security. http.ssl中的enabled改为“false”,如下图所示:

修改如下配置:

3.1.5、关闭登录授权

还在config/elasticsearch.yml配置文件中

3.1.6、再次启动ES

bin文件中,windows系统双击elasticsearch.bat进行启动

 

 3.1.7、验证ES

在网页中输入:Localhost:9200  (出现以下信息就算是ES配置启动成功)

 3.2、Skywalking安装并启动

3.2.1、下载并解压Skywalking

官方下载地址:https://archive.apache.org/dist/skywalking/

我这里拿的是9.6.0版本,现在最新是9.7.0版本,友友们可以拿最新,看自己喜好

 解压之后的目录:

3.2.2、修改配置文件

 config/applicaiton.yml (因为马上演示的时候,内存不够用,所以我这里ES配置到了云服务器docker启动的)

 3.2.3、启动Skywalking

windows环境下点击Skywalking安装目录的bin/startup.bat就可以启动skywalking服务了

注:有两个弹框

3.2.4、访问验证

在没有修改过端口的号情况,访问localhost:8080 就能看见控制台

注:我这里修改了端口号,所以访问的是8088端口(如果友友们访问了,logo出来了,但是内容没有出来,只是因为加载的慢,先等等看)

4、上传数据至Skywalking

4.1、下载Agent代理

官方下载地址:https://skywalking.apache.org/downloads/#Agents

直接搜Skywalking官网也行的,里面,自己亲自去找找就当看文档了(版本找一个下,尽量都是9版本的我这里就拿9.0.0版本演示,下tar文件类型)

解压文件后 (重点在这个路径和包,记住友友你放的路径不是我的)

4.2、项目添加Agent代理

微服务项目的话,每个涉及到业务的微服务都来一遍

添加内容:

-javaagent:F:\springcloudAlibaba\skywalking\skywalking-agent\skywalking-agent.jar 
-Dskywalking.agent.service_name=seata-server-storage 
-Dskywalking.collector.backend_service=127.0.0.1:11800

注:-javaagent:skywalking-agent.jar的路径+skywalking-agent.jar包 

-Dskywalking.agent.service_name=微服务的服务名称(就是配置参数spring.application.name)

-Dskywalking.collector.backend_service=不用修改(日志收集地址的,固定端口11800)

4.3、链路追踪

5、告警功能

告警功能开启和实现,需要以下两步:

设置告警规则

编写告警提醒代码

5.1、设置告警规则

告警规则的设置需要在config/alarm-settings.yml下配置,总共配置两块内容

第一块rules下的规则:(告警规则比较多,这里就那一条说一下,剩下都是一样的)

住:这里的数字是可以修改,看自己情况而定

另外还需要开启告警URL地址,还是在这个文件中, 在最下面

注:这个网址就是我们会写一个类专门 用来接收 告警信息;(上面钩子的url是要跟你的项目的端口+访问路径能对上的才行)

@Slf4j
@RestController
public class AlarrmController {
/*
* 模拟长时间执行
* */@RequestMapping("/timeout")public void timeout() throws InterruptedException {Thread.sleep(1500);}/** 接收到警告信息* */@RequestMapping("/webhook")public void webHook(@RequestBody List<AlarmMessage> messages){log.error("-----------钉钉报警-------");log.error("警告信息"+messages);}}
@Data
class AlarmMessage implements Serializable{private String scopeId;   //告警范围private String name;      //告警项目名private String id0;       //skywalking主键标识private String id1;       //预留字段private String ruleName;  //告警名称private String alarmMessage;//告警内容private long startTime;  //告警开始时间
}

注:这里实体类的属性是固定的,不能改变Skywalking已经给我们写好了的

5.2、应用程序告警

相关应用的告警提示信息

skywalking/docs/en/setup/backend/backend-alarm.md at master · apache/skywalking · GitHub

就拿钉钉来解释

首先需要你创建一个群,这个群得是企业公共的

效果如下:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能优化:Spark SQL中的谓词下推和列式存储

Apache Spark是一个强大的分布式计算框架&#xff0c;Spark SQL是其一个核心模块&#xff0c;用于处理结构化数据。性能优化是大数据处理中的一个关键问题&#xff0c;本文将深入探讨Spark SQL中的两个性能优化技术&#xff1a;谓词下推&#xff08;Predicate Pushdown&#xf…

在实际电路中的二极管

常见有静电保护用的TVS&#xff0c;电源DC-DC上用的续流二极管&#xff0c;稳压管&#xff0c;发光LED二极管等 本文概要&#xff1a; 0. 二极管识图1. TVS二极管2. 整流二极管3. 稳压二极管4. 肖特基二极管5. 快回复二极管6. 续流二极管7. 发光二极管8. 变容二极管9. 小结一…

2022年全球运维大会(GOPS深圳站)-核心PPT资料下载

一、峰会简介 GOPS 主要面向运维行业的中高端技术人员&#xff0c;包括运维、开发、测试、架构师等群体。目的在于帮助IT技术从业者系统学习了解相关知识体系&#xff0c;让创新技术推动社会进步。您将会看到国内外知名企业的相关技术案例&#xff0c;也能与国内顶尖的技术专家…

autograd与逻辑回归

一、autograd—自动求导系统 torch.autograd.backward() torch.autograd.backward()是PyTorch中用于计算梯度的函数。以下是对该函数的参数的解释&#xff1a; 功能&#xff1a;自动求取梯度 • tensors: 用于求导的张量&#xff0c;如 loss • retain_graph : 保存计算图 •…

上海亚商投顾:创业板指低开低走 煤炭等周期股逆势走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日弱势震荡&#xff0c;创业板指低开低走&#xff0c;尾盘跌超1.8%&#xff0c;北证50指数则拉升涨超2%…

《动手学深度学习》学习笔记 第5章 深度学习计算

本系列为《动手学深度学习》学习笔记 书籍链接&#xff1a;动手学深度学习 笔记是从第四章开始&#xff0c;前面三章为基础知道&#xff0c;有需要的可以自己去看看 关于本系列笔记&#xff1a; 书里为了让读者更好的理解&#xff0c;有大篇幅的描述性的文字&#xff0c;内容很…

初学者快速入门学习日语,PDF文档音频教学资料合集

一、资料描述 本套学习资料是很全面的&#xff0c;共有734份文件&#xff0c;包括PDF&#xff0c;PPT&#xff0c;表格&#xff0c;图片&#xff0c;音频等多种格式&#xff0c;可以作为初级日语的学习教材&#xff0c;也是非常适合初学者入门的&#xff0c;可以帮助大家快速的…

Character Controller Smooth

流畅的角色控制器 Unity的FPS解决方案&#xff01; 它是一种具有非常平滑运动和多种设置的解决方案&#xff1a; - 移动和跳跃 - 坐的能力 - 侧翻角度 - 不平整表面的处理 - 惯性守恒 - 重力 - 与物理物体的碰撞。 - 支持没有家长控制的平台 此解决方案适用于那些需要角色控制器…

文本表示模型简介

文本是一类非常重要的非结构化数据&#xff0c;如何表示文本数据一直是机器学习领域的一个重要研究方向。那么有哪些文本表示模型&#xff1f;以及它们各有什么优缺点&#xff1f; 1. 常见的文本表示模型 1.1. 词袋模型和N-gram模型 最基础的文本表示模型是词袋模型。顾名思…

Spring Security 6.x 系列(13)—— 会话管理及源码分析

一、会话概念 在实现会话管理之前&#xff0c;我们还是先来了解一下协议和会话的概念&#xff0c;连协议和会话都不知道是啥&#xff0c;还谈啥管理。 1.1 http 协议 因为我们现在的会话&#xff0c;基本上都是基于HTTP协议的&#xff0c;所以在讲解会话之前&#xff0c;我再…

Axure医疗-住院板块,住院患者原型预览,新增医护人员原型预览,新增病房原型预览,选择床位原型预览,主治医生原型预览,主治医生医嘱原型预览

目录 一.医疗项目原型图-----住院板块 1.1 住院板块原型预览 1.2 新增住院患者原型预览 1.3 新增医护人员原型预览 1.4 新增病房原型预览 1.5 选择床位原型预览 1.6 主治医生原型预览 1.7 主治医生医嘱原型预览 1.8 主治医生查看患者报告原型预览 1.9 护士原型预…

微服务整合:构建高效灵活的分布式系统

随着软件开发的不断演进和业务的复杂性增加&#xff0c;微服务架构已经成为一种流行的解决方案。然而&#xff0c;当涉及到多个微服务之间的整合时&#xff0c;我们需要谨慎考虑如何实现高效、灵活的分布式系统。 微服务架构的流行使得软件开发变得更加灵活和可扩展。然而&…