监控系统怎样做?

news2024/9/25 7:20:24

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和日志分析。

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

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

相关文章

Python 如何使用列表推导式(list comprehensions)?

列表推导式(List Comprehensions)是 Python 中一种简洁且强大的创建列表的方式。通过使用列表推导式,可以用一行代码来生成列表,而不是通过多行代码的循环或其他方法。 一、列表推导式的基本语法 列表推导式的基本语法如下&…

QT开发笔记:信号和槽

乱码问题: 出现乱码问题原因只有一个:就是编码方式不匹配!!! 中文常见汉字4K,算上各种生僻字差不多六万字 仍然使用一个大表格,给每个汉字,分配一个整数即可。 字符集~~表示汉字的字符集&#…

基于若依的ruoyi-nbcio流程管理系统修正自定义业务表单的回写bug

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

差异分析的结果各种热图,火山图,箱式图可视化作图教程

1. 基因表达的热图绘制 1.1 根据所有差异基因绘制基因表达的聚类热图 视频教程: https://www.bilibili.com/video/BV13m421g7wv/ 1.2 绘制top差异基因表达的聚类热图 视频教程: https://www.bilibili.com/video/BV1jZ42147KP/ 1.3 绘制感兴趣基因的聚类热图 视频教程: http…

一招教你选出独立站爆品

独立站选品其实是让很多卖家感到头大的问题,明明选了一个在其他平台是爆款的品,放到独立站上就是卖不起量,有自己想卖的产品却找不到好的供应商。对于这些问题,主要还是因为在选品时照搬电商平台的选品思路,没有认清自…

2024年中级消防设施操作员(考前冲刺)证考试题库及中级消防设施操作员(考前冲刺)试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2024年中级消防设施操作员(考前冲刺)证考试题库及中级消防设施操作员(考前冲刺)试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作…

5个超牛的Java开源OA项目(强烈推荐)

1. O2OA ——开源地址:https://gitee.com/o2oa/O2OA 概述: O2OA 是一款真正全代码(包含服务器、安卓以及IOS客户端)开源的企业应用定制化开发平台,适用于企业OA、协同办公类信息化系统的建设和开发。技术:…

HarmonyOS 开发者联盟高级认证最新题库

本篇文章包含 Next 版本更新后高级认证题库中95%的题目。 答案正确率 50-60%,答案仅做参考。 请在考试前重点看一遍题目,勿要盲目抄答案。 欢迎在评论留言正确答案和未整理的题目。 1、下面关于方舟字节码格式PREF_IMM16_v8_v8描述正确的是 16位前缀操作…

【wyTest自动化测试】快照校验模式的创新实践

本文将以遥遥领先的【华为商城】web端自动化为例,进行测试脚本开发的讲解。仅用于教学指导使用,如有侵权,请联系我删除。 一、测试脚本结构 按照教程惯例,开篇先展示一下测试脚本的标准结构模版: case_xx特性_xx001.py class Cas…

挖矿宝藏之硬盘分区

目录 一、硬盘分区的相关知识 二、主分区、活动分区、扩展分区、逻辑盘和盘符 三、硬盘分区原因 1.减少硬盘空间的浪费 2.便于文件的分类管理 3.有利于病毒的防治 四、硬盘分区的原则 1.方便性 2.实用性 3.安全性 五、利用Diskpart进行分区 1.命令行工具Diskpart …

信创学习笔记(四),信创之数据库DB思维导图

创作不易 只因热爱!! 热衷分享,一起成长! “你的鼓励就是我努力付出的动力” 一. 信创学习回顾 1.信创内容 信创内容思维导图 2.信创之CPU芯片架构 信创之CPU芯片架构思维导图 3.信创之操作系统OS 信创之操作系统OS思维导图 二. 信创之国产数据库DB思维导图 …

# Redis 入门到精通(六)-- redis 事务

Redis 入门到精通(六)-- redis 事务 一、redis 事务–redis事务简介 1、Redis 执行指令过程中,多条连续执行的指令被干扰,打断,插队,就会造成结果偏差。 2、什么是 redis 事务? redis 事务&…

关于Ubuntu22.04中的Command ‘vim‘ not found, but can be installed with:

前言 在Ubuntu终端编辑文本内容时需要利用vim,但新安装的虚拟机中并未配置vim,本文记录了vim的安装过程。 打开终端后,在home目录中输入 vim test.txt但提示报错,提示我们没有找到vim,需要通过以下命令进行安装&…

探索Python应用领域|Python有多强大?高效又实用!

Python是一种广泛使用的解释型、高级的和通用的编程语言,它拥有动态类型系统和垃圾回收机制,能够自动管理内存的使用,并且其本身具有简洁性、易读性的特点以及拥有一个巨大而广泛的标准库,功能强大适合各种应用场景和项目开发的需…

AI基于大模型语言存在的网络安全风险

目的: 随着大语言模型(LLM)各领域的广泛应用,我们迫切需要了解其中潜在的风险和威胁,及时进行有效的防御。 申明: AI技术的普及正当的使用大模型技术带来的便利,切勿使用与非法用途&#xff…

GPU云服务器------2秒文生图

GPU云服务器------2秒文生图 GPU云服务器AIGC来也开通GPU服务配置安全组规则远程连接GPU云服务器配置nginx用户文生图开启AiaccTorch禁用AiaccTorch切换模型使用LoRA插件使用Controlnet插件 服务器监控实例释放 好消息!好消息!阿里云服务器ECS推出了GPU云…

SSH讲解(重点:CentOS7)

第一章:SSH服务 1.1 SSH是什么? SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令…

DP(5) | 完全背包 | Java | 卡码52, LeetCode 518, 377, 70 做题总结

完全背包 感觉越写越糊涂了&#xff0c;初始化怎么做的&#xff1f;递推公式怎么来的&#xff1f; 状态变量 初始化 f[0][0] 0代码 这里的 f[i][j] f[i][j-w[i]]&#xff0c;就是和0-1背包最大的不同 for(int i1; i<n; i) { //物品ifor(int j1; j<m; j) {if(j<w[…

Kotlin中Unit、Any和Nothing

Unit Unit是一个特殊的类型&#xff0c;它表示“没有意义的值”的单元类型。在Kotlin中&#xff0c;当你不需要函数返回任何具体值时&#xff0c;可以使用Unit类型。 和Java 中 void一样。 Any 所有非空类的父类 Any?所有类的父类 类似Java中Object Nothing 表示一个函数或…

python的日期和时间

时间与日期 基础知识&#xff08;python的时间表示方法&#xff09; 时间戳 时间戳是一个用于表示特定时间点的方式&#xff0c;它表示自1970年1月1日00:00:00 UTC&#xff08;协调世界时&#xff09;以来经过的秒数。时间戳通常用于编程中&#xff0c;因为它提供了一种简单的方…