神马开源监控系统RA

2024-02-01 09:10
文章标签 系统 开源 监控 神马 ra

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

     RA作为神马的核心报警系统,承担着神马搜索、推荐、广告等业务中上万个服务进程的异常报警。其强大的功能、简单的使用方式和稳定的系统表现,赢得了大量应用方的认可。现已走出神马,在淘宝、UC、书旗等多个子公司大规模应用。经过多版本的迭代和长期的实际生产环境检验,监控报警系统RA功能已经相当完善。结合应用方的反馈和业务实际需求,对该系统进行了一次较大规模重构并在github上开源(https://github.com/alibaba/RedAlert)。开源版本可以从Ganglia,Graphite等系统中读取收集的系统核心指标,并根据设置的规则报警。也可以通过插件方式扩展,支持其它时间序列的数据,实现监控报警。其架构如图1所示:

 

图1、系统框架示意图

      Ganglia、Graphite等系统,通过各自的Agent收集各个应用的核心指标,然后通过可视化界面展示指标的趋势图形。但是,诸如Ganglia、Graphite之类的系统一般只负责收集和展示,缺乏在指标异常时的报警功能。RA 则直接读取Ganglia、Graphite等系统收集的数据,然后根据设置的规则检测异常并主动报警。RA由两部分组成,RA server 负责加载报警规则并读取指标数据,在检测到异常时,发送报警。报警方式可以配置为邮件,也可以扩展成其他方式。RA Web 则为用户的使用界面,方便用户配置各种规则和对系统的控制。为方便应用方进一步扩展,将数据读取部分Data Reader抽象成独立的插件,用户可以通过撰写新的插件来支持其它类型的时间序列数据。

      用户增删监控指标以及修改参数等都比较频繁,RA 提供一个可视化的操作界面以便于用户操作。主界面如图2所示,RA界面比较简洁,提供策略的配置和修改、监控项屏蔽以及对RA自身的状态控制等操作。为快速找到监控项,左侧列表栏提供快速检索功能,对有成百上千个监控应用的系统极为有用。在右上角提供对一个监控指标的查询操作,帮助用户检索到含特定字符串的监控指标。针对一个监控指标,可以快速查看、修改、删除和屏蔽。也可以克隆一个监控指标,以实现快速生成新的监控指标。更多功能及使用方式,可以参考RA的用户文档。    

图2、RA 用户界面

RA提供五种常用的报警策略:阈值、趋势、环比、可用性、奇异点。

      阈值检测:阈值是最常用的报警策略,通常情况下,一个指标在一个范围内波动为正常,超出该范围则为异常,需要报警,例如系统的QPS。有些指标则期望最大值不大于某个值,或者最小值不低于某个值,诸如CPU、延迟等。这些需求都可以通过阈值检测策略来轻松满足。

     趋势检测:大部分系统指标都是一条相对平滑的曲线,极少出现断崖式突增或突降。如果出现突增或突降,基本为系统出现异常情况,比如系统突然受到大量爬虫抓取等导致访问量突增。此时,如果阈值报警过于宽松,则该异常很难发现。则需要通过趋势检测策略来发现这些潜在问题。趋势检测策略通过历史数据预测下一刻的值,如果系统实际值与预测值相差范围过大,则认为出现异常。该策略能及时发现系统中存在的潜在问题,应用也比较广泛。

     可用性检测:大部分系统都具备横向扩展的能力,通常由多个功能相同节点来同时提供服务以便提升服务能力。例如,采用多个Redis进程组成服务集群,以提供数据存取服务。如果部分机器宕机,服务进程停止,则影响服务的可用性。RA通过判断正常汇报一个指标的机器数量,可以检测出异常服务。通过设置同一指标汇报进程的最小值来进行可用性报警,当数量小于一个阈值时,则认为整个服务集群存在风险。

     奇异点检测:在一个服务集群中相同功能的节点,其各项指标应该相近,否则可能存在异常节点。例如,在同一个集群中的上千个节点中,有个别节点的延迟大于其它节点,则该节点需要尽快处理。RA 通过比较所有节点汇报上来的相同指标,参考配置的差异范围,如果超过配置的范围,则判定为异常节点并报警。对于发现硬件损坏诸如磁盘变慢,或者外部进程干扰诸如IO等比较有效。

     周期检测:大量的服务指标都存在周期性变化,通常随外部用户访问量的高低峰出现有规律的波动。比如白天可能访问量相对较高,深夜则相对较低。在一个周期内,指标环比差异应该不大。RA通过对比相近周期内,同一时间点的指标差异,来发现服务异常。

     为更灵活的设置报警策略,RA可以配置该一条策略的生效时间段,既可以配置一个时间段,也可以设置多个时间段。在配置要监控的指标名时,系统支持正则匹配,方便配置一系列的指标监控。不同的报警项,可以设置不同的指标采样间隔、最短告警间隔等以便于调整报警的灵敏度和抑制过多的报警信息。异常报警是大规模系统不可或缺的部分,神马诸多业务中,99%以上的异常问题由RA发现并报警。RA开源之后,期望能让更多有相同需求的业务受益,也期望RA自身能得到更进一步的完善。

 

相关链接:

RedAlert:https://github.com/alibaba/RedAlert

Ganglia:http://ganglia.info/

Graphite:http://graphiteapp.org/

这篇关于神马开源监控系统RA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

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

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

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

springboot健康检查监控全过程

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