【分布式系统】聊聊系统监控

对于分布式系统来说,出现故障的是常有的事情,如何在短时间内找到故障的原因,排除故障是非常重要的,而监控系统是就像系统的眼睛可以通过分析相关数据,进一步管理和运维整个分布式系统。

监控系统的的基本功能包含

  • 全栈监控
  • 关联分析
  • 跨系统调用的串联
  • 实时报警和自动处置
  • 系统性能分析

多层体系的监控

全栈监控其实就是三层监控

  • 基础层:监控主机和底层资源,比如CPU、内存、网络吞吐、磁盘I/O、硬盘使用等。
  • 中间层:中间件层的监控,网关层Nginx、缓存Redis、消息队列RabbitMQ、Kafka、数据层MySQL、Tomcat,Es等。
  • 应用层:监控应用层的使用,HTTP访问量,响应时间,返回码,调用链路分析,性能瓶颈,用户短监控,异常状态监控,异常指标数据监控等。

什么是好的监控系统

在这里插入图片描述
监控的指标化

  • 日志数据结构化
  • 监控数据格式标准化
  • 统一的监控平台
  • 统一的日志分析

如何作出好的监控

大多数系统监控做的并不到位,主要包含以下几点。

  • 1.监控数据是隔离开的,因为分工原因,开发、应用运维、各管各的,所以很多公司的监控系统是隔离的,比如基础层监控报警,运维只能发到大群里@相关业务人员查看。开发人员依赖的中间件系统出现问题,只能运维人员查看。
  • 2.监控的数据项太多,没有重点,指标太多等于没有重点没有信息。需要监控关键数据。

好的监控系统应该具备以下特征。

  • 关注整体应用的SLA,主要为用户服务的API监控整个系统。
  • 关联指标聚合,将基础层、中间层、应用层数据监控关联起来,和具体的机器绑定在一起。
  • 快速故障定位,出现故障不可怕,可怕的是不能快速定位故障,找到根本原因。导致故障恢复的时间过长,从而因为用户的稳定性。所以需要为分布式系统做一个用户请求跟踪的trace监控,整体的调用链路。

一个很好的说法就是,定时的体检,监控系统是否有问题,另一个就是出现问题进行急诊。

体检

容量管理,提供一个全局的系统运行时数据的展示,工程师可以知道是否需要增加机器或者其他资源。
性能管理,可以查看大盘,找到系统瓶颈,并针对性的优化系统和相应代码。

急诊

定位问题,可以快速找到问题的根本原因。快速修复。
性能分析,出现高并发流量时,可以快速排除问题。

如何做出一个好的监控系统

服务调用链跟踪
从用户请求的地方开始,通过调用链,将经过的网关、服务、相关数据中间件等服务进行串联起来,一旦出现问题,就可以快速定位问题在什么地方。
推荐使用Zipkin。java服务可以通过字节码注入方式做到无侵入式。
在这里插入图片描述
服务调用时长分布
当出现相应慢或者超时的时候,可以通过调用时长,定位出现问题的地方。
在这里插入图片描述
服务的Top N试图
通过邮件或者其他方式,发送每日的接口Top 10的接口。访问次数、耗时接口、热点排名等
在这里插入图片描述
数据库操作关联
记录相关数据库操作,可以通过字节码技术进行记录SQL操作的执行时间。
在这里插入图片描述
服务资源跟踪
我们的服务可能运行在物理机上,也可能运行在虚拟机里,还可能运行在一个 Docker 的容器里,Docker 容器又运行在物理机或是虚拟机上。我们需要把服务运行的机器节点上的数据(如 CPU、MEM、I/O、DISK、NETWORK)关联起来。

通过上述的方式,就可以将基础监控和业务联系起来,。
1.当一台机器挂掉是因为CPU或IO过高的时候,就可以马上知道影响到哪些对外服务的API。
2.当一个服务相应过慢的时候,可以通过关联JVM GC或者资源等 或者依赖服务定位问题。
3.SQL操作过慢的时候,可以定位影响的是哪个对外服务的API
4.消息队列拥塞的时候,可以马上知道对外影响服务的API。
在这里插入图片描述

工作中实际经验

对于接触的公司来说,基本都会进行基础层、应用层、中间层的系统监控。但是并没有将数据进行整合在一起。
当出现问题时,基本的手段就是。
1.当天是否有上线新功能,排除是否是新功能引发的BUG问题。
2.进行搜索 ERROR日志,是否存在大量异常。
3.数据库、中间件层是否出现问题。 数据库是否连接失败,网络操作。JVM相关。
4.系统的CPU、内存、磁盘、网络是否有问题,使用TOP、free -h等查看。
5.是否出现瞬间的高流量导致服务扛不住压力崩溃。
6.系统存在的BUG 导致的系统故障。
7.依赖下游系统出现故障,三方服务不正常等。

如果是逻辑问题,看测试环境能否复原出生产现象,从而进一步排除。

总体来说就是出现故障不可怕,即时解决,减少故障的恢复时间 最重要。

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

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

相关文章

C++初阶函数重载

目录 函数重载函数名修饰规则 函数重载 C语言不允许同名函数 CPP可以&#xff0c;但是要求构成函数重载 函数名相同&#xff0c;参数不同(参数类型、参数个数、参数类型的顺序)&#xff0c;返回值不同不能构成重载 int Add(int left, int right) {cout << "int Ad…

【机器学习】Gradient Descent for Logistic Regression

Gradient Descent for Logistic Regression 1. 数据集&#xff08;多变量&#xff09;2. 逻辑梯度下降3. 梯度下降的实现及代码描述3.1 计算梯度3.2 梯度下降 4. 数据集&#xff08;单变量&#xff09;附录 导入所需的库 import copy, math import numpy as np %matplotlib wi…

深入了解PostgreSQL:高级查询和性能优化技巧

在当今数据驱动的世界中&#xff0c;数据库的性能和查询优化变得尤为重要。 POSTGRESQL作为一种开源的关系型数据库管理系统&#xff0c;在处理大规模数据和复杂查询时表现出色。 但随着数据量和查询复杂性的增加&#xff0c;性能问题可能会显现出来。 本文将深入探讨POSTGR…

【蓝桥杯备考资料】如何进入国赛?

目录 写在前面注意事项数组、字符串处理BigInteger日期问题DFS 2013年真题Java B组世纪末的星期马虎的算式振兴中华黄金连分数有理数类&#xff08;填空题&#xff09;三部排序&#xff08;填空题&#xff09;错误票据幸运数字带分数连号区间数 2014年真题蓝桥杯Java B组03猜字…

App Cleaner Uninstaller for Mac 苹果电脑软件卸载工具

App Cleaner & Uninstaller 是一款非常有用的 Mac 应用程序清理和卸载工具。它可以彻底地清理系统中的应用程序、扩展和残留文件&#xff0c;以释放磁盘空间并优化系统性能。 此外&#xff0c;它还提供了磁盘空间监控和智能清理建议等功能&#xff0c;使用户可以轻松地管理…

GD32F103VE侵入事件

GD32F103VE的TAMPER引脚(PC13)&#xff0c;当PC13输入低电平时&#xff0c;会产生一个侵入检测事件。它会将所有“数据备份寄存器”内容清除。 这个功能有什么用&#xff1f; 一是防止被人开壳&#xff0c;抄袭。二是自毁功能。 直奔主题&#xff0c;多一句就是浪费时间。测试…

双环抱式“星环“座舱设计:比亚迪仰望U8内饰曝光,搭载骁龙8+车机

根据8月3日的消息&#xff0c;比亚迪车机先前使用的高通骁龙625芯片在网友中引发了一些批评&#xff0c;不过随着比亚迪将车机升级为骁龙665、骁龙690/695&#xff0c;这个问题得到了改善。 与此同时&#xff0c;大多数主流车企还在继续使用高通8155芯片&#xff08;相当于骁龙…

项目进度管理软件可以解决哪些难题?

项目进度管理是在项目实施过程中&#xff0c;对各阶段的进展程度和项目最终完成的期限所进行的管理。它以确保项目能在满足其时间约束条件的前提下实现其总体目标。 项目进度管理软件可以解决以下难题&#xff1a; 一、进度跟踪 如果没有完善的进度计划&#xff0c;项目很难…

mac切换jdk版本

查询mac已有版本 1、打开终端&#xff0c;输入&#xff1a; /usr/libexec/java_home -V注意&#xff1a;输入命令参数区分大小写(必须是-V) 2.目前本地装有两个版本的jdk xxxxedydeMacBook-Pro-9 ~ % /usr/libexec/java_home -V Matching Java Virtual Machines (2):20.0.1 (…

yolov5中的best.pt是如何确定的

在yolov5 的使用过程中几乎都会发现的问题&#xff1a; 训练结果有last.pt和best.pt , last.pt好理解&#xff0c;就是最后一个epoch的输出&#xff0c;但是best是啥意思&#xff1f;怎么才算best&#xff1f; 我们来一行行看train.py源码 追溯到./utils/metrics.py中的fitn…

-bash: fork: retry: Resource temporarily unavailable 问题解决

错误提示&#xff1a; -bash: fork: retry: Resource temporarily unavailable 错误分析&#xff1a;之前已经出现过这种资源限制的报错提醒&#xff0c;然后整个系统可用的连接数就已经用完了&#xff0c;无法使用工具来获取系统信息&#xff0c;所以将运行的任务脚本kill后开…

使用AIGC工具提升安全工作效率

新钛云服已累计为您分享760篇技术干货 在日常工作中&#xff0c;安全人员可能会涉及各种各样的安全任务&#xff0c;包括但不限于&#xff1a; 开发某些安全工具的插件&#xff0c;满足自己特定的安全需求&#xff1b;自定义github搜索工具&#xff0c;快速查找所需的安全资料、…

离散Hopfield神经网络的联想记忆与matlab实现

1案例背景 1.1离散Hopfield神经网络概述 Hopfield网络作为一种全连接型的神经网络,曾经为人工神经网络的发展开辟了新的研究途径。它利用与阶层型神经网络不同的结构特征和学习方法,模拟生物神经网络的记忆机理,获得了令人满意的结果。这一网络及学习算法最初是由美国物理学家…

RPC框架引入zookeeper服务注册与服务发现

Zookeeper概念及其作用 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是大数据生态中的重要组件。它是集群的管理者&#xff0c;监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理…

(自控原理)线性系统的时域分析法

目录 一、系统时间响应的性能指标 1、典型输入信号 2、动态性能与稳态性能 二、一阶系统的时域分析 1、一阶系统的数学模型 2、一阶系统的单位阶跃响应 三、二阶系统的时域分析 1、二阶系统的数学模型 2、二阶系统的单位阶跃响应 3、欠阻尼二阶系统的动态过程分析 4…

ORB-SLAM2学习笔记6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic

文章目录 0 引言1 D435i相机配置2 新增发布双目位姿功能2.1 新增d435i_stereo.cc代码2.2 修改CMakeLists.txt2.3 新增配置文件D435i.yaml 3 编译运行和结果3.1 编译运行3.2 结果3.3 可能出现的问题 0 引言 ORB-SLAM2学习笔记1已成功编译安装ROS版本ORB-SLAM2到本地&#xff0c…

Redis面试题2

Redis面试题-2 10、统计高并发网站每个网页每天的 UV 数据&#xff0c;结合Redis你会如何实现&#xff1f; 选用方案&#xff1a;HyperLogLog 如果统计 PV 那非常好办&#xff0c;给每个网页一个独立的 Redis 计数器就可以了&#xff0c;这个计数器的 key 后缀加上当天的日期…

【eNSP】静态路由

【eNSP】静态路由 原理网关路由表 实验根据图片连接模块配置路由器设备R1R2R3R4 配置PC的IP地址、掩码、网关PC1PC2PC3 配置静态路由查看路由表R1R2R3R4测试能否通信 原理 网关 网关与路由器地址相同&#xff0c;一般路由地址为.1或.254。 网关是当电脑发送的数据的目标IP不在…

芯片制造详解.光刻技术与基本流程.学习笔记(四)

本篇文章是看了以下视频后的笔记提炼&#xff0c;欢迎各位观看原视频&#xff0c;这里附上地址 芯片制造详解04&#xff1a;光刻技术与基本流程&#xff5c;国产之路不容易 芯片制造详解.光刻技术与基本流程.学习笔记 四 一、引子二、光刻(1).光掩膜(2).光刻机(3).光刻胶(4).挖…

【深度学习】High-Resolution Image Synthesis with Latent Diffusion Models,论文

13 Apr 2022 论文&#xff1a;https://arxiv.org/abs/2112.10752 代码&#xff1a;https://github.com/CompVis/latent-diffusion 文章目录 PS基本概念运作原理 AbstractIntroductionRelated WorkMethodPerceptual Image CompressionLatent Diffusion Models Conditioning Mec…