监控之我见

2024-05-27 08:08
文章标签 监控 之我见

本文主要是介绍监控之我见,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们想像中的监控?

我们想像中监控无所不能,是个超人。需要什么数据,它就能给我们什么数据;需要找到故障根源,它就能及时告知我们故障根源。





现实中的监控

可事实上并非如此,我们对监控寄予了太多,想到的就加上去,导致它越来越胖,越来越臃肿,但似乎并未解决我们的问题。



目前的监控平台和工具都很多,开源的、商业的、甚至我们自己开发的,但都真正的解决了我们的问题吗?



种类多样的监控工具





所以,多并不意味着好,或者说多并不意味着有用。真正解决问题即可,而不是将有用的没用的监控一股脑的全部搞出来,这样只会扰乱你的视线,分散你的注意力,影响你分析和梳理故障原因和性能瓶颈。

监控的目的

我们监控的目的到底是什么?一个好的监控需要帮助我们解决以下问题。

  • 掌握系统健康状况

  • 查找故障根源

  • 系统瓶颈诊断

  • 性能调优

  • 排查安全隐患

故障排查过程





故障发生时,我们查CPU、内存、进程、网络等等,同时还要对日志进行问题排查,php日志、apache/nginx日志、负载均衡及数据库的日志,很多时候我们排查日志还是在使用shell命令与脚本,对故障时间点日志进行过滤,整个处理过程都是回溯状态,无法做到实时,显得手忙脚乱还无法让我们尽快发现问题。另外,所有这些都是单点IT资源的问题排查,我们需要将各种监控联系起来分析考虑。
在微服务架构时代,这些单点资源的监控已经无法满足我们的需求。

为什么不理想?

  • 维度单一、排查点太多

  • 无法有效建立联系

  • 日志处理困难

  • 不实时

  • 依赖经验

我们的结论


监控必然面临着以上几个进化,从基础到业务、从静态到动态、从表象到本质。
面向业务的监控不仅仅关注技术层面的单点资源,而是关注整个业务系统的健康状态。
在实际场景中,使用业务监控可以替代技术监控,而且更加简单容易理解。
大量微服务如何同时监控?CPU?负载?显然不是这样。
同时又是我们平台上服务自动伸缩的依据。

业务指标

响应时间

指负载均衡将请求发给后端服务节点,经过处理后,再由后端节点返回给负载均衡的时间。这个值可以有效评估当前服务节点的处理能力并结合吞吐率了解当前前端访问的压力大小。单位是毫秒(ms)。

在线人数

指10分钟内访问你的网站或服务的人数,通过此监控项可以直观了解到在线用户数。

吞吐率

指1分钟内你的网站或服务的总访问次数。

实时服务监控





服务性能分析

  • 多维度

  • 实时

  • 智能

多维度使我们能够从广意上来全盘考虑,不再计较单一的资源情况,再好的把握多种监控数据之间的联系。
实时让我们更快速的了解当前的系统状态,而不是再回溯历史。
智能体现在对数据的处理排序上,抓住影响最大的关键点。

web服务性能分析





对过去5分钟耗时最多的URL进行排行,分析一个web服务当前影响性能的最关键点。

mysql服务性能分析





从我们的经验来说,对于解决数据库的故障问题,查找slowlog并不是最有效的方法,因为不一定最慢的是影响最大的,有些SQL是很慢,但数量并不多,也许1分钟1条,但有些SQL的耗时并不大,可是数量巨大,对性能影响就非常高,而且并不出现在slowlog中,所以综合耗时是关键。

通过服务性能分析可以直观的看到当时的问题url与问题sql,对排查故障根源非常有效。

时间窗口

对于动态实时的监控有一个很重要的概念就是时间窗口





简单来说就是一个 滑动窗口。固定好一个时间窗口对数据进行查询统计。
因为数据流是持续不断的,在对业务进行监控的时候,我们不会对所有的数据感兴趣,而是对“最近五分钟平均响应时间”、“最近十分钟URL排行”以及“当前在线人数”这类问题更关心,要得到这些数据,通过时间窗口对数据的查询计算即可解决我们的问题。

有哪些使用场景

  • 故障提前预知

  • 压力测试

  • 性能调优

监控的终级目的

现在我们回过头来再看看前文中说过的监控目的,这些目的其实都是一个“中间过程”,还停留在“把事儿给办了”的阶段,其实监控的终级目的或者说重要意义是“价值”。
我们不是为了监控而监控,是通过监控产生价值,产出利润。对我们的业务提供帮助,让业务来创造更多的价值。
所以我们不要将问题复杂化,要让复杂变得简单,才是我们的根本。

这篇关于监控之我见的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006909

相关文章

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

使用Python实现实时金价监控并自动提醒功能

《使用Python实现实时金价监控并自动提醒功能》在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控... 目录工具能干啥?手把手教你用1、先装好这些"食材"2、代码实现讲解1. 用户输入参数2. 设置无头浏

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展