神马开源监控系统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

相关文章

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

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

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

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用