SkyWalking实战与设置警告

news2024/11/20 9:21:28

日升时奋斗,日落时自省 

目录

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.coloradmin.cn/o/1351395.html

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

相关文章

Go语言基础简单了解

文章目录 前言关于Go学习流程 基础语法注释变量常量数据类型运算符fmt库 流程控制if、switch、selectfor、break、continue遍历String 函数值传递和引用传递deferinit匿名、回调、闭包函数 数组和切片Map结构体自定义数据类型接口协程和channel线程锁异常处理泛型文件读取文件写…

MCS-51存储器的特点

目录 1.MCS-51存储器的结构 2.片内数据存储器 (1)片内数据存储器低128B (2) 片外数据存储器高128B 2.片内数据存储器高128B 3.片内程序存储器 1.MCS-51存储器的结构 如图所示&#xff0c;MCS-51 的存储器在物理结构上分成四个存储空间:片内程序存储器、片外程序存储器、…

Clojure 实战(4):编写 Hadoop MapReduce 脚本

Hadoop简介 众所周知&#xff0c;我们已经进入了大数据时代&#xff0c;每天都有PB级的数据需要处理、分析&#xff0c;从中提取出有用的信息。Hadoop就是这一时代背景下的产物。它是Apache基金会下的开源项目&#xff0c;受Google两篇论文的启发&#xff0c;采用分布式的文件…

算法巡练day03Leetcode203移除链表元素707设计链表206反转链表

今日学习的文章视频链接 https://www.bilibili.com/video/BV1nB4y1i7eL/?vd_source8272bd48fee17396a4a1746c256ab0ae https://programmercarl.com/0707.%E8%AE%BE%E8%AE%A1%E9%93%BE%E8%A1%A8.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE 链表理论基础 见我的博…

擎创技术流 |如何使用eBPF监控NAT转换

一、NAT简介 Linux NAT&#xff08;Network Address Translation&#xff09;转换是一种网络技术&#xff0c;用于将一个或多个私有网络内的IP地址转换为一个公共的IP地址&#xff0c;以便与互联网通信。 图源于网络 在k8s业务场景中&#xff0c;业务组件之间的关系十分复杂. …

uni-app 前后端调用实例 基于Springboot 上拉分页实现

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

音视频通信

文章目录 一、音视频通信流程二、流媒体协议1、RTSP2、RTMP3、HLS4、WebRTC 一、音视频通信流程 音视频通信完整流程有如下几个环节&#xff1a;采集、编码、前后处理、传输、解码、缓冲、渲染等。 每一个细分环节&#xff0c;还有更细分的技术模块。比如&#xff0c;前后处…

【数据结构】二叉搜索(查找/排序)树

一、二叉搜索树基本概念 1、定义 二叉搜索树&#xff0c;又称为二叉排序树&#xff0c;二叉查找树&#xff0c;它满足如下四点性质&#xff1a; 1&#xff09;空树是二叉搜索树&#xff1b; 2&#xff09;若它的左子树不为空&#xff0c;则左子树上所有结点的值均小于它根结…

使用宝塔在Linux面板搭建网站,并实现公网远程访问

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 前言 宝塔面板作为简单好用的服务器运维管理面板&#xff0c;它支持Linux/Windows系统&#xff0c;我们可用它来一键配置LAMP/LNMP环境、网站、数据库、FTP等&…

STL map容器与pair类模板(解决扫雷问题)

CSTL之Map容器 - 数据结构教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/118CSTL之Pair类模板 - 数据结构教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/119 刷到一个扫雷的题目&#xff0c;之前没有玩怎么过扫雷&#xff0c;于是我就去玩了玩…

【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】

文章目录 一.【计算机设计大赛作品】豆瓣电影数据挖掘可视化—信息可视化赛道获奖项目深入剖析【可视化项目案例-22】1.1 项目主题:豆瓣电影二.代码剖析2.1 项目效果展示2.2 服务端代码剖析2.3 数据分析2.4 数据评分三.寄语四.本案例完整源码下载一.【计算机设计大赛作品】豆瓣…

Go后端开发 -- main函数 变量 常量 函数

Go后端开发 – main函数 & 变量 & 常量 & 函数 文章目录 Go后端开发 -- main函数 & 变量 & 常量 & 函数一、第一个main函数1.创建工程2.main函数解析 二、变量声明1.单变量声明2.多变量声明 三、常量1.常量的定义2.优雅的常量 iota 四、函数1.函数返回…

2024.1.2 安装JDK和Eclipse,并配置java编译环境

2024.1.2 安装JDK和Eclipse&#xff0c;并配置java编译环境 一直对java一知半解&#xff0c;利用春节前一个月时间补补课。 一、安装jdk 首先在oracle官网上下载jdk&#xff0c;这里选jdk17&#xff0c;选择第二项直接安装&#xff0c;第一项是压缩文件&#xff0c;带有一些…

Noisy DQN 跑 CartPole-v1

gym 0.26.1 CartPole-v1 NoisyNet DQN NoisyNet 就是把原来Linear里的w/b 换成 mu sigma * epsilon, 这是一种非常简单的方法&#xff0c;但是可以显著提升DQN的表现。 和之前最原始的DQN相比就是改了两个地方&#xff0c;一个是Linear改成了NoisyLinear,另外一个是在agent在t…

第二十七章 正则表达式

第二十七章 正则表达式 1.正则快速入门2.正则需求问题3.正则底层实现14.正则底层实现25.正则底层实现36.正则转义符7.正则字符匹配8.字符匹配案例19.字符匹配案例211.选择匹配符&#xff08;|&#xff09;12.正则限定符{n}{n,m}&#xff08;1个或者多个&#xff09;*(0个或者多…

创建x11vnc系统进程

为方便使用vnc&#xff0c;所以寻找到一个比较好用的vnc服务端那就是x11vnc&#xff0c;索性就创建了一个系统进程 一、环境 系统&#xff1a;银河麒麟v4-sp2-server 软件&#xff1a;x11vnc【linux下】、VNCviewer【win下】 二、安装x11vnc 1、挂载光盘源并修改apt源 mou…

生态系统服务构建生态安全格局中的实践技术应用

生态安全是指生态系统的健康和完整情况。生态安全的内涵可以归纳为&#xff1a;一&#xff0c;保持生态系统活力和内外部组分、结构的稳定与持续性&#xff1b;二&#xff0c;维持生态系统生态功能的完整性&#xff1b;三&#xff0c;面临外来不利因素时&#xff0c;生态系统具…

Linux用shell脚本执行乘法口诀表的两种方式

#!/bin/bash # *********************************************************# # # # * Author : 藻头男 # # * QQ邮箱 : 2322944912qq.com # …

【SpringBoot3】1.SpringBoot入门的第一个完整小项目(新手保姆版+教会打包)

目录 1 SpringBoot简单介绍1.1 SpringBoot是什么1.2 主要优点1.3 术语1.3.1 starter&#xff08;场景启动器&#xff09; 1.4 官方文档 2 环境说明3 实现代码3.1 新建工程与模块3.2 加入依赖3.3 主程序文件3.4 业务代码3.5 运行测试3.6 部署打包3.7 命令行运行 1 SpringBoot简单…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-8Lag Compensator滞后补偿器

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-8Lag Compensator滞后补偿器 从稳态误差入手&#xff08;steady state Error&#xff09; 误差 Error &#xff1a; E ( s ) R ( s ) − X ( s ) R ( s ) − E ( s ) ⋅ K G …