运维监控做成这样,就达到BATJ的水准

2023-10-27 18:00

本文主要是介绍运维监控做成这样,就达到BATJ的水准,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 导语

我们知道监控系统的目标是:为保障业务SLA,帮忙我们更全面、细致的了解业务系统的运行状态,更及时的发现系统风险,同时给技术运营的同学争取更多化解风险的时间和解决问题的方向。为此有使用开源监控系统(例如 Nagios、Zabbix、Prometheus、Grafana等),也有为了满足自己的业务需求,会使用自己开发的监控系统(例如小米的open falcon,腾讯内部的监控系统 tnm2【基础监控】、cms【日志监控】等)。

随着业务系统对监控系统的依赖,我们对监控系统的高可用性、扩展性等能力都会有更高的要求,那我们应该如何来全面的、系统的看待和提高自身监控系统的要求呢?

二、 能力提升方法

如何进行全面、系统的进行看待监控系统的要求,有很多办法,遇到问题的时候对照一些顶级公司的优秀监控系统,找出提升点。也可以对照由 中国信息通信研究院牵头 及 BATJ 等各大互联网巨头参与的专家《研发运营一体化(DevOps)能力成熟度模型》中关于 “监控管理” 能力评估内容,根据标准的评估内容我们可以看到 BATJ 公司是如何定义一个先进的监控系统的能力,下面我们来一起看看:

三、 提升点:能力项

我们发现整个关于“监控管理”的能力项分成三个能力项,分别是“监控采集”、“数据管理” 和 “数据应用” 三个,能力项内又包括了相关的子能力项,我摘取一些我自己觉得很有代表性的点来进行分析:

a)【能力项1:监控采集】

1.能力点:“支持提供开放式、自定义的数据内容采集上报方案”

疑问:为什么需要对上报方案有要求呢?

解读:比如腾讯内部的 自研日志监控系统CMS(后面有彩蛋),对拥有多种采集方案“Agent、SDK、Kafka、ES等”,各种不同的采集方案应对不同的场景
Agent:类似filebeat,指定服务器的具体路径,对文件的inode节点进行侦听,发现新增立即进行上报数据;

SDK:可以嵌入到业务代码逻辑里面,应对一些敏感数据不落地但是又需要上报的场景,可以在业务逻辑中对敏感数据进行脱敏(染色),然后再进行上报,也可以应对一些日志量太大,不想经过日志落盘这个中间消耗性能环节的场景;
例如:金融交易场景,要对交易数据做监控,但是又有一些敏感数据不想进入监控系统,这个时候就需要使用SDK在产生日志的时候进行脱敏,将用户信息隐藏掉,再上报到监控系统内部;

Kafka:可以应对一份日志多份消费者的场景,可以让业务将日志放入Kafka后,多个消费者进行自行提取即可;
例如:还是金融交易场景,一份日志可以做安全审计,同时也可以做监控系统,这时候就可以安全审计系统和监控系统同时拉取一份Kafka的主题数据,不用打印多份;

2.能力点:“支持多种传输方案 ,如同时具备推与拉数据”

疑问:为什么需要具备推与拉数据呢?具备一种不可以吗?

解读:正常的监控系统一般都是采用拉数据的方案,因为由服务器端发起,顺序和过程可控,但是为什么需要拉数据呢?
原因是在几种场景下需要这种能力:网络限制,当出现网络限制时,如安全等保中规定,高安全等级区域可以发起对低安全等级区域的链接,反之则不可以,所以需要从高安全等级区域推送数据至监控服务;性能要求,如同 Zabbix 的 active模式 和 passive模式;服务特性,部分服务并么有对外提供请求接口,则需要内部逻辑对外进行主动 Push 监控数据。为了保证对业务系统和流程全面的监控,我们需要有多种能力的满足;

例如:某个业务中有个定时任务将离线数据统计并更新至数据库,该定时任务并无任何请求访问接口,我们如何能监控它的运行状态呢?可以在定时任务逻辑内部加入一个心跳机制,定期向监控系统push自身的监控状况,所以推的传输能力也是监控必不可少的;

b)【能力项2:数据管理】

1.能力点:“具备对原始数据进行规则化处理的能力”

疑问:为什么在接收数据的时候需要有规则化的处理呢,落地之后进行规则化处理不行吗?

解读:基于性能高效及数据完整性的考虑,需要在接收过程具备这个能力,我们还是以腾讯自研日志监控系统为例,当我们接收大量的日志Agent上报的时候,可能日志不一定是按照我们的规则进行上报,如果一旦有日志格式错误,会导致大量的入库数据异常,还会导致数据污染,这个时候需要一个规则化处理的能力,将不满足规则的数据进行清洗。同时如果大量的日志异常,落地之后进行清洗和处理将会消耗大量的算力,对于后来也是很大的压力,所以具备这个能力是非常有必要的。

2.能力点:“对异构数据源的关联分析处理能力”

疑问:异构数据源关联分析处理能力具体是指什么?

解读:异构数据源广义上是指“数据结构、存取方式、形式不一样的多个数据源”,我们还是以腾讯内部的 自研日志监控系统CMS 为例,当 某个服务上报日志里面有 源IP地址 和 业务关键数据,我们简单排重和排序就可以知道哪个源IP地址访问最多,但是如果我们想知道某个城市、省份、甚至是运营商(电信、移动、联通),那就需要这个关联分析能力,我们知道有一种数据是IP地址对应城市、省份 和 运营商(由于不断在更新,所以需要独立维护),通过这个数据和日志数据一关联就可以清楚地看到我们要的结果;

3.能力点:“具备数据一致性、完整性和可用性等管理特性”

疑问:数据一致性、完整性和可用性好理解,但是管理特性是什么?

解读:我们还是以腾讯内部的 自研日志监控系统CMS 为例,日志监控系统是由用户数据上报、数据格式化、处理、聚合(统计、维度分析)、入库/投递、写入时序数据库等多个环节组成,当用户看到最终结果异常如何能快速知道哪里出了问题呢?这个就需要有相关的管理特性来实现了,在每个环节都增加自监控的能力,清晰看到数据流和曲线图,可以快速发现异常点;

c)【能力项3:数据应用】

1.能力点:“具备告警风暴管控的能力, 如抑制、收敛等”

疑问:告警收敛能力常用的方式都有哪些呢?

解读:一般在告警收敛中常用的规则有“基于时间收敛”、“基于事件收敛” 和 “基于级别收敛”等,根据不同的业务需求可以有不同的收敛方式。基于时间是最常用的,Nagios 和 Zabbix 的基础配置。基于事件,一般是需要有主动和被动调用关系的告警,比如Zabbix 的 trigger-Dependencies 的功能。基于级别的收敛更是在开源和自研的系统中被使用。

四、 结尾

如何看待和提高监控系统的能力,不管是参照开源监控系统对比学习,还是从《研发运营一体化(DevOps)能力成熟度模型》中对比学习,都是一个不错的方向,当然里面的知识点是集合了多数大牛的智慧结晶,本文只是摘取了少量的点进行解读。

公众号“腾讯云监控” 将会不断的给出 监控领域 的最佳实践和相关文章,欢迎大家持续关注。扫描二维码,关注腾讯云监控公众号。

这篇关于运维监控做成这样,就达到BATJ的水准的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念