关于系统监控的想法和实施:数据监控

_ailin _ailin     2023-01-10     624

关键词:

  大家好,我是爱吃里脊,下面由我来讨论下监控的想法。提到监控,对于维护系统至关重要,对发现问题,解决问题起着决定性的作用。
  我们来先来进行整体拆解,一个监控系统包含三个主体:数据采集,数据处理,数据展示。这次我们先来了解数据采集。
  首先要做监控系统首先得有一个监控对象,了解监控对象需要什么指标,比如一个业务后台系统,需要知道物理指标有的cup,磁盘,负载,魔法指标有接口调用数,接口的tp99,接口的可用率等等。一个前端应用,可能需要用户点击某个按钮,某个页面的次数,甚至是记录某个用户行为等等。其实这些指标很多,不同系统差别很大,关注点也会随之改变。要做好一个数据监控系统,就得应对这些变化。下边是具体的一些指标用于参考:
  机器维度的监控指标包括CPU、Load、内存、网络、IO、磁盘等相关指标,详细指标可以参考Liux监控命令对应的指标数据:https://linux.cn/article-9373-1.html?pr (主要可以参见top、vmstat 、free、iostat、netstat 、iptraf等命令相关的核心指标)。
  应用维度的监控指标包括JVM使用情况、线程池使用情况:JVM情况主要包括YGC次数、时间,FullGC次数、时间,新生代老年代占比;线程池情况主要包括的线程池大小、最大线程数、活跃线程数、队列大小等。
  服务维度的监控指标包括error日志报错情况、服务接口调用量、耗时、成功率,调用接口调用量、耗时、成功率,dal层操作调用量、耗时、成功率。
  外部依赖维度主要指应用系统常见的外部依赖的监控情况,主要包括数据库、缓存、消息队列等,这些一般情况都会独立进行部署,对应的机器监控同上面列举的机器维度监控;另外数据库还需要关注连接数、内存使用、SQL调用量、耗时、成功率,慢SQL等;缓存需要关注调用量、成功率,命中率、内存使用等;消息队列需要关注调用量、成功率,队列积压情况、死信队列等
  整体上的监控指标包括可用性监控(服务是否可用)、访问量监控(PV/UV)、负载监控(限流、熔断情况)、自定义的业务监控(异常业务场景、服务统计等)

  很显然,如果在应用程序里写这些监控处理,是很笨的,业务代码与功能代码耦合,违反了程序软件开发的开闭原则,单一原则。对之后的维护添堵。

  比较好的方式是机器安装客户端,或者应用集成客户端来进行采集,应用的日志可以通过aop的方式打印上传,为了尽可能的减少对业务代码的影响,可采用独立线程定时同步或者中间件mq,redis等定时同步。这是推日志的方式,对一些实时性较高的监控还可以进行服务端拉取的方式,这种方式较为复杂,需要客户端注册服务到服务中心,服务端获取服务中心服务后,主动请求目标的日志来拉取。这里可以举个例子:
   push方法用于Graphite等系统,而pull方法用于Prometheus等监视系统。但是无论哪种方式,基本思想都是这种组件化,独立处理,异步上传日志。
  下边说说日志结构,监控数据包含在日志中,所以日志的输出不能全部写在一个文件处理,需要对日志归档,日志分类,保持日志大小不能过大,保证日志不混乱分析清晰。而且在输出日志前,需要先定义监控数据结构,结构中包含上述所说的种种指标,为后续数据分析和展示做好铺垫。在elk中,es的数据结构是文档格式,在java应用的系统中可以将对象反序列化成json数组,而且es的性能很好,可以做复杂的索引,全文检索,聚合查询,这点可以解决日志问题,但是不是所有监控系统都是用es的,其他存储这点要注意。
  最后就是配置相关了,好的监控系统需要有运维界面,来实现可配置可插拔,对一些数据指标问题进行报警配置,对于数据收集这块,不可能是所有指标照单全收,而在监控的初期可能不会明确那些不需要,而且监控系统不成熟,那么就需要在开发前期预留配置的扩展点,保证对后续开发的支持。

全栈性能实施之性能监控分析

...析等误入分歧;四是塑造灵活的测试技术治理!!!操作系统资源使用监控分析性能监控介绍企业服务级操作系统选型介绍系统监控策略与监控指标分析性能监控工具安装部署使用技巧Linux系统问题诊断分析与优化系统资源监控... 查看详情

机房环境监控系统设计与实施重点!

机房环境监控系统的设计方案是否合理、优化、实用,决定了前期投资的经济性。因此,机房的总体设计方案的确定是很重要的,这取决于设计的理念和技术水平。  建设方一般对机房前期的建设比较慎重,要选择有技术实力... 查看详情

值得收藏|三种经典的指标监控模型

...无形中还能够简化监控逻辑,降低监控自动化实施难度。关于监控指标以及监控指标阈值的设置对于把握应用系统的现状和趋势、进行服务可用性的有效跟踪以及持续改善,甚至故障的排查和消除都至关重要。可是,监控指标那... 查看详情

数据平台监控工具选项

...firehoses3dynamodb和emr。我们需要在所有这些组件上实施监控系统,主要监控每个点的处理时间以及是否存在瓶颈。如果有人实施了这样的监控系统,请指导一下。我对构 查看详情

值得收藏|三种经典的指标监控模型

...无形中还能够简化监控逻辑,降低监控自动化实施难度。关于监控指标以及监控指标阈值的设置对于把握应用系统的现状和趋势、进行服务可用性的有效跟踪以及持续改善,甚至故障的排查和消除都至关重要。可是,监控指标那... 查看详情

常用的监控协议都有哪些

一、监控系统1、监控系统概念监控系统应用在监控硬件、软件和业务上,并及时获取相应的数据并分析保存数据,发送报警通知管理者,并自动做出相应的处理,通过接口展示以利于运维人员分析,保证业务的正常运行。2、运... 查看详情

关于3d可视化平台!

3D可视化,就是把复杂抽象的数据信息,以合适的视觉元素及视角去呈现,方便大家理解、记忆、传递!  3D可视化平台采用3D虚拟仿真技术,将机房进行虚拟仿真,并以此为依托来呈现IT设备的一切状况,使得监控信息的整合... 查看详情

监控平台实施方案

...mail protected])基本目标?监控有效性:监控能正确反应系统、应用运行状态,发生故障能及时告警;对重要对象进行监控,能定位到问题即可;不面面俱到,增加负担及复杂度。?平台可用性:监控平台本身也可能存在故障的... 查看详情

如何实施zabbix对mysql全面监控

...bix的同学都知道,Zabbix通过专用的Agent或者SNMP收集相关的监控数据,然后存储到数据库里面实时在前台展示。Zabbix监控数据主要分为以下两类:历史数据:history相关表,从history_uint表里面可以查询到设备监控项目的最大有两种方... 查看详情

zabbix监控和分布式部署实施方案

   最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbixproxy做为监控方案,在每个节点部署zabbixproxy,由zabbixproxy收集agentd数据,然后将采集到的数据主动推送给zabbixserver,zabbixserver将数据存入数据库,并在WEB... 查看详情

实施网络安全-a

...、网络的常见组成:设备、介质、网络适配器、网络操作系统、协议。2、常见的网络设备:路由器、交换机代理服务器、防火墙、负载均衡器、一体化安全装置。3、入侵检测系统(IDS)是一种检测控制系统,用于扫描、审计和... 查看详情

关于运维监控实践中的一些tips

监控是一场攻坚战,更是持久战,一方面监控系统的功能需要持续优化,另一方面监控策略需要持续完善。因为其持续优化的特点,对于监控任务达到一定量级的企业,需要设置专职监控体系建设团队,持续增加和优化监控系统... 查看详情

02-监控系统的浅析(代码片段)

前言:设计一个监控系统从哪入手呢?前篇已经提到过监控系统的重要性,那么一个较为良好的监控系统应该从哪几方面上手的呢?我个人理解可以通过以下几个方面入手:评估业务类型,架构体系;分类监控;监控技术方案选... 查看详情

关于运维2

IT运维是IT管理的核心和重点部分,也是内容最多、最繁杂的部分,该阶段主要用于IT部门内部日常运营管理,涉及的对象分成两大部分,即IT业务系统和运维人员,该阶段的管理内容又可细分为七个子系统:1、设备管理:对网络设备、... 查看详情

prometheus监控概述(代码片段)

一、监控系统概论监控系统在这里特指对数据中心的监控,主要针对数据中心内的硬件和软件进行监控和告警。企业的IT架构逐步从传统的物理服务器,迁移到以虚拟机为主导的IaaS云。无论基础架构如何调整,都离不开监控系统... 查看详情

关于监控内容定义

监控是运维工程师避不开的环节,在灾难即将发生的时候可以有效的预防,例如磁盘空间的监控。再者就是当问题出现的时候可以快速的定位,快速响应,解决问题。下面就监控的项目进行了简单的分类整理,监控系统目前主流... 查看详情

运维监控平台未来发展趋势

...变化保留足够的灵活性。人工智能技术将逐渐应用于监控系统中,以实现智能化的监控和预测分析。通过对大数据的分析和机器学习,监控系统将能够实现更加准确、高效的故障预测和预警,从而提高系统的可靠性和稳定性。大... 查看详情

物联网项目落地困境

...从事物联网领域相关的工作,前不久也陆陆续续写过几篇关于物联网的文章,对物联网的前景是一直看好的,但是具体实施起来,要真正让物联网项目落地,却不是一件很容易的事。最近一两年实施了几十套污水监控、垃圾监控... 查看详情