监控系统怎样做?

bb06e6f86d5a41e00330147093253756.png

监控类型自底向上分为资源监控、服务监控和业务监控。希望打造公司级的监控系统最好的时机是系统规划时,如果把监控设计往后放,将会面临一个巨大的难题:推行和现有不兼容的规范。

三种监控类型

资源监控

这个相对简单,随着k8s的兴起,目前比较流行的是Prometheus。zabbix和falcon也比较普遍。因为对业务侵入性较小,属于比较容易实现和维护的部分。

服务监控

中间件、数据库和安全漏洞扫描,这些软件依赖于软件本身自带的配套监控,因为是量身定做,监控效果取决于技术选型等因素,可以各个击破,不需要特殊的进行统筹考虑。

应用接口监控的健康检查是需要统一标准的。一般的做法是就算服务本身是基于websocket协议、dubbo协议等进行通信,但还是会暴露一个http接口用于统一进行健康检查的监控。这个接口对每个应用来说,请求路径、请求方式(一般是get请求),返回结构都相同。如果响应返回码属于200~399范围,‌则证明服务探活成功,‌否则探活失败。响应内容里通常还包含信息标识应用组件是否准备好开始处理用户请求。这对于启动时间较长的程序特别有用,‌如需要加载磁盘数据或依赖外部模块启动完成才能提供服务的情况。‌如果应用组件的就绪检查失败,‌集群会屏蔽请求访问该组件;‌若检查成功,‌则会开放对该应用组件的访问。‌‌

应用接口监控的耗时、QPS和成功率因为一旦协议确定,标准也确定。协议实现端通过切面等方式可以进行统一处理,只要引入相应的处理组件即可。

业务监控

业务监控不管是日志监控还是调用链监控,本质上都是基于日志埋点。

调用链监控需要在基于协议(比如http协议的请求头)和线程内部处理时(比如使用threadlocal)来传递和保持traceID,以便于在日志中将请求链路进行串联。

日志埋点总体来说分为两类:结构化日志和非结构化日志。

结构化日志里有一类重要日志是访问日志。这就要涉及开头说的巨大难题:推行和现有不兼容的规范。因为访问日志的最大作用是统计。统计系统状态、业务状态。我建议的规范是两码一态返回值结构。

{
  "sysCd":"00000000",
  "sysMsg":"OK"
  "biz":{
      "bizCd":"00000000", 
      "bizMsg":"OK",
      "data":{
          "serverTime": 1499827319559
       }
    }
}

明确标识出系统码和业务码。如果系统码显示有系统错误,业务码就不需要关注。系统码显示有问题,一定是需要系统维护人员处理的。系统码正常,业务码显示有问题,那理论上来说更可能是用户自身的问题,比如付款时余额不足等。系统码和业务码共同决定了请求的最终状态。这种设计在运维上提供了极大的方便:系统码显示的问题需要系统维护人员来处理,业务码显示有问题可以大胆的让用户自己检查,不用半夜将开发小哥哥叫起来。

结构化日志里还可以用来记录与第三方交互的结果。非结构化日志一般会打印两种:一种是控制台日志,一种是错误日志。大多数业务放在云上,看到的POD日志是控制台日志。特别是在程序发布时,如果日志滚动太快,有可能忽略重要信息。这时候怎样处理呢?建议把结构化日志内容单独文件打印,不输出到控制台。因为结构化日志查起来比较方便,控制台尽量只打印非结构化日志。

数据可视化

Grafana和Kibana都是开源的数据可视化和监控工具,但它们在设计目标、数据源和特性上有所不同。

Grafana

设计目标:Grafana是一个通用的开源数据可视化工具,主要用于监控和展示各种数据源的时间序列数据。它可以帮助用户快速创建、编辑和共享数据仪表板。

数据源:Grafana支持多种数据源,包括但不限于Graphite、InfluxDB、OpenTSDB、Elasticsearch、Prometheus、MySQL和PostgreSQL等。这使得Grafana可以灵活地集成到各种环境中。

特性:

灵活的查询和聚合:Grafana提供了一个强大的查询编辑器,允许用户根据需求定制查询,以及使用不同的聚合函数来处理数据。

丰富的图表类型:Grafana支持多种图表类型,如折线图、柱状图、饼图、散点图等,用户可以根据需要选择合适的图表来展示数据。

警报和通知:Grafana内置了警报功能,允许用户设置阈值,当数据达到或超过这些阈值时,Grafana会发送通知给相关人员。

强大的插件系统:Grafana有一个活跃的插件社区,用户可以通过安装插件来扩展其功能,比如添加新的数据源支持、图表类型等。

Kibana

设计目标:Kibana是一个为Elasticsearch设计的开源数据可视化和探索工具。它是ELK中的K,主要用于分析存储在Elasticsearch中的数据,特别是日志和时序数据。

数据源:Kibana主要依赖于Elasticsearch作为数据源,但也可以与Logstash和Beats等其他Elasticsearch生态系统组件集成,以提供更强大的日志处理和搜索功能。

特性:

日志分析:Kibana提供了一个强大的日志分析界面,允许用户通过简单的查询和过滤来探索和分析存储在Elasticsearch中的日志数据。

丰富的可视化选项:Kibana支持多种图表类型,如直方图、折线图、饼图等,用户可以根据需要选择合适的图表来展示数据。

按时间统计数据:Kibana允许用户在不同的时间范围内查看数据,这对于分析时间序列数据非常有用。

集成开发:Kibana还提供了许多集成开发功能,如代码高亮、自动完成等,使得在Kibana中编写和测试查询变得更加容易。

总结

Grafana和Kibana都是强大的数据可视化和监控工具,但Grafana更加通用,支持多种数据源,而Kibana则更专注于Elasticsearch和日志分析。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】BeautyGAN: 美妆,化妆,人脸美妆

https://www.sysu-hcp.net/userfiles/files/2021/03/01/3327b564380f20c9.pdf 【深度学习】BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversaria…

嵌入式物联网在教育行业的应用——案例分析

作者主页: 知孤云出岫 嵌入式物联网在教育行业的应用——案例分析 目录 作者主页:嵌入式物联网在教育行业的应用——案例分析一、引言二、智能教室:环境监测系统1. 硬件需求2. 电路连接3. 代码实现 三、个性化学习:智能学习平台1. 数据处理与分析2. 代…

下载仓颉sdk安装时遇到“无法运行”问题

图1. 社区地址:GitCode - 全球开发者的开源社区,开源代码托管平台 在GitCode社区中下载Cangjie-0.53.4-windows_x64的sdk后,双击安装时遇到“此应用无法在你的电脑上运行的问题” 经过反复排查后,确定是sdk直接下载有问题;‘需要…

Android Studio 汉化

下载地址:https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack----/versions/stable 下载完zpi包之后,进入:设置 -> 插件 导入即可。 注: 汉化包需要与 Android Studio 版本对应。

Matlab|基于蒙特卡洛法的电动汽车充电负荷计算

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序方法复现《V2G 模式下含分布式能源的配电网优化运行研究》第二章电动汽车无序充电模型,按照文章《V2G 模式下基于复杂网络的电动汽车有序充电策略》分析思路研究了不同数量电动汽车接入情况…

Jetpack Compose学习记录(一)

目录 前言控件实时预览Modifierremember状态提升 前言 学了一段时间的Compose,不得不说声明式UI比原生的开发效率快很多,而且Compose也是Google现在主推的开发模式,可以动态化地更改ui,相比于databinding对数据和布局进行绑定。C…

FreeCAD源码分析:Serialization

序列化(Serialization)是在程序运行时将对象转换成字节流的过程,进而将二进制字节流罗盘到文件系统或者通过网络发送到远端。而反序列化(Deserialization)则恰恰相反,是由二进制字节流重新构建对象的过程。 Ref. from Boost Serialization Here, we use …

电子标书怎么盖章?

电子标书怎么盖章?下面是利用e-章宝(##### 与在线盖章的平台不同,专业的盖章软件在盖章时无需要上传你的文档,甚至在无网络下都可以使用,且保密性非常强,如e-章宝。如果你的文件保密性强,用网上…

CSS综合案例(快报模块头部制作)

(大家好,今天我们将继续来学习CSS的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 一、前述 二、案例分析 1.样例参看 2.拆分分析 三、案例实施 一、前述 案例:快报模块头部制…

open3d:随机采样一致性分割平面

1、背景介绍 随机采样一致性算法(RANSAC Random Sample Consensus)是一种迭代的参数估计算法,主要用于从包含大量噪声数据的样本中估计模型参数。其核心思想是通过随机采样和模型验证来找到数据中最符合模型假设的点。因此,只要事…

spring框架(ioc控制反转 aop面向切面编程)

目录 服务端三层开发: spring框架(ioc控制反转 aop面向切面编程) 1、Spring框架的优点 什么是事物? 2、Spring的IOC核心技术 什么是ioc? 代码举例:(详细流程见笔记) **applic…

NSSCTF-Web题目26(PHP弱比较)

目录 [SWPUCTF 2022 新生赛]funny_php 1、题目 2、知识点 3、思路 [ASIS 2019]Unicorn shop 4、题目 5、知识点 6、思路 [SWPUCTF 2022 新生赛]funny_php 1、题目 2、知识点 弱比较、双写绕过 3、思路 出现源代码,我们进行审计 第一个if 这里要我们GET方…

AI PC创造新商机,ISP与HPD集成单芯片方案受欢迎

今年以来,AI PC逐渐成为市场的焦点,因为AI PC给多年一成不变的PC市场带来了新的看点,也给了消费者升级的理由。今年是AI PC的元年,上半年不论是芯片厂商,还是PC厂商都在AI PC市场快速布局。AI PC相关的大模型、生态&am…

CRMEB 多商户Java版 v1.7更新预告!积分商城要来了

👩‍💻:下个版本有积分商城吗? 👨‍💻:积分商城什么时候可以出呢? 🙋:什么时候能上拼团呢? 🙋‍♂️:图片热区&#xf…

用Java连接MySQL数据库的总结

✨个人主页: 不漫游-CSDN博客 前言 在日常开发中,使用Java连接MySQL数据库是一个常见的任务,涉及多个步骤。接着我就带着大家细细看来~ 一.下载.jar 包文件 1.什么是.jar 文件 通俗点讲就是一个压缩包,不过里面存放的都是由Java代…

沙盒软件大揭秘:你的数字世界“防火墙”

在数字时代,我们每天都会接触到各种各样的软件,其中不乏一些来源不明、可能存在潜在威胁的程序,我们总担心不小心点到什么“雷区”,让电脑或手机变得“病怏怏”。 为了保护我们的系统免受侵害,沙盒软件应运而生&#…

JavaScript Math 函数举例

https://andi.cn/page/621577.html

【YOLOv5/v7改进系列】改进池化层为YOLOv9的SPPELAN

一、导言 YOLOv9提出了一种新的方法和架构,旨在解决深度神经网络中的信息瓶颈问题并提升模型的性能。以下是该研究的主要优点: 理论分析与创新: 提出了可编程梯度信息(PGI)的概念,以应对深度网络为实现多重…

windows下gcc编译C、C++程序 MinGW编译器

文章目录 1、概要2、MinGW安装2.1 编译器下载2.2 编译器安装2.3 设置环境变量2.4 查看gcc版本信息 3、编译C、C程序3.1 编写Hello World.c3.2 编译C程序3.3 运行程序3.4 编译C程序 1、概要 GCC原名为GNU C语言编译器(GNU C Compiler),只能处…

技能 | postman接口测试工具安装及使用

哈喽小伙伴们大家好!今天来给大家分享一款轻量级,高效好用的接口测试工具-postman. Postman是一个流行的API开发工具,主要用于测试、开发和文档化API。以下是关于Postman的介绍及其主要使用场景: Postman介绍: 1. 功能丰富的API客户端&#…