CN111666189A - 一种声明式可视化配置Prometheus监控告警的方法和系统 - Google Patents

一种声明式可视化配置Prometheus监控告警的方法和系统 Download PDF

Info

Publication number
CN111666189A
CN111666189A CN202010540095.1A CN202010540095A CN111666189A CN 111666189 A CN111666189 A CN 111666189A CN 202010540095 A CN202010540095 A CN 202010540095A CN 111666189 A CN111666189 A CN 111666189A
Authority
CN
China
Prior art keywords
configuration
prometheus
resource object
prometous
alertmanager
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010540095.1A
Other languages
English (en)
Other versions
CN111666189B (zh
Inventor
樊艳明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Citic Bank Corp Ltd
Original Assignee
China Citic Bank Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Citic Bank Corp Ltd filed Critical China Citic Bank Corp Ltd
Priority to CN202010540095.1A priority Critical patent/CN111666189B/zh
Publication of CN111666189A publication Critical patent/CN111666189A/zh
Application granted granted Critical
Publication of CN111666189B publication Critical patent/CN111666189B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种声明式可视化配置Prometheus监控告警的方法,其包括:接收一个或多个Prometheus认证信息,Prometheus认证信息包括与Prometheus对应的AlertManager服务的信息;接收监控配置、告警规则配置和告警通知配置的CR资源对象实例;接收对所述CR资源对象实例的验证请求;对所述CR资源对象实例的正确性进行验证,如验证通过则所述CR资源对象实例会持久化到ETCD数据库,如验证不通过则本次更新操作失败;如验证通过且CR资源对象实例持久化到ETCD数据库,根据CR资源对象实例中所设置的、一个或多个Prometheus和与各Prometheus对应的AlertManager服务所在服务器的地址列表,为一个或多个Prometheus和与各Prometheus对应的AlertManager进行配置更新;此时CR资源对象实例分别为一个或多个Prometheus和与各Prometheus对应的AlertManager的预设的期望配置。

Description

一种声明式可视化配置Prometheus监控告警的方法和系统
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种声明式可视化配置Prometheus(普罗米修斯)监控告警的方法和系统。
背景技术
随着Kubernetes(一种生产级别的容器编排系统)容器编排以及Service Mesh(服务网格,一种用于服务间通信的基础设施技术架构)服务治理等云原生应用的普及,Prometheus作为企业监控领域中一种比较成熟的方案越来越得到关注。大多数企业Prometheus部署方式都是采用容器化部署,如果企业监控的指标量规模过大,会采用Prometheus联邦部署方式监控企业容器监控指标和物理机、虚拟机监控指标。然而,在使用Prometheus监控时,会发现所有监控配置和告警规则变更,都需要登录Prometheus所在服务器变更配置文件和告警规则文件才能生效,如果是Kubernetes环境下部署,则需要通过Kubectl(Kubernetes容器编排系统的客户端命令行工具)命令变更Prometheus应用配置文件和告警规则的ConfigMap(一种Kubernetes的资源对象,用于存储配置文件)对象。另外Prometheus的告警通知系统AlertManager(Prometheus的告警通知管理模块)与Prometheus配置文件和告警规则无法联动变更,在使用AlertManager时,需要修改Prometheus配置文件,将AlertManager与Prometheus相关联。同时AlertManager无法实现告警升级,不支持获取动态值班组,无法动态获取指标标签,所有问题总结起来说明Prometheus的配置不够方便灵活,需要频繁变更配置文件,同时学习成本较高,用户需要详细学习Prometheus配置文件和PromQL(Prometheus内置的数据查询语言)的语法,不利于监控告警在企业内的普及。
现有Prometheus系统的监控告警配置文件需要登录到服务器上手动修改,大规模部署情况下,修改配置工作量大,大部分情况是重复性操作,并且人工修改正确性很难保证,因此,面对复杂的监控告警需求,人工修改方式并不可取;通过自动化运维工具可以实现大量配置文件的更新,但是无巡检系统,无法保证配置有效性;通过已有的Prometheus监控策略如中国专利文献CN110399274A(Prometheus监控策略的统一监控系统)所公开的统一监控系统方案配置,虽然解决了可视化配置和自动化Prometheus监控告警配置修改更新的问题,但是其开发成本高、灵活度低、可扩展性差,并没有解决Prometheus与AlertManager联动配置问题,无法对告警通知人员更新;现有技术对企业内所有Prometheus系统采用例如统一的监控告警策略,无法适应企业复杂多变的监控告警需求,比如企业内各个开发小组所需的监控告警规则配置不同,被监控应用不同,告警通知人员也会不同;现有技术仅提供Prometheus监控告警配置能力,没有提供扩展其他监控告警系统的接口,可扩展性不强。本发明旨在实现一种基于声明式编程思想的可视化配置Prometheus监控告警方法,提供友好的可视化前端配置页面、自动化巡检功能和配置化的快速扩展能力。
发明内容
本申请提供了一种声明式可视化配置Prometheus监控告警的方法和系统,旨在实现一种基于声明式编程思想的可视化配置Prometheus监控告警方法,提供友好的可视化前端配置页面、自动化巡检功能和配置化的快速扩展能力。本申请采用的技术方案如下:
第一方面,提供了一种声明式可视化配置Prometheus监控告警的方法,该方法包括:
接收一个或多个Prometheus认证信息,所述Prometheus认证信息包括与所述Prometheus对应的AlertManager服务的信息;
接收监控配置、告警规则配置和告警通知配置的CR(Custom Resource,客户资源对象实例)资源对象实例,所述CR资源对象实例分别为CRD(Custom Resource Definition,客户资源对象定义)资源对象的实例,所述CRD资源对象为用于定义所述各个配置的模板;
接收对所述CR资源对象实例的验证请求;
对所述CR资源对象实例的正确性进行验证,如验证通过则所述CR资源对象实例会持久化到ETCD(高可用的分布式键值(key-value)数据库)数据库,如验证不通过则本次更新操作失败;
如验证通过且所述CR资源对象实例持久化到所述ETCD数据库,根据所述CR资源对象实例中所设置的、所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务所在服务器的地址列表,为所述一个或多个Prometheus和与各Prometheus对应的AlertManager进行配置更新;此时所述CR资源对象实例分别为所述一个或多个Prometheus和与各Prometheus对应的AlertManager的预设的期望配置。
优选地,在所述CR资源对象实例持久化到所述ETCD数据库后,将触发预设的事件处理函数来定期验证所述一个或多个Prometheus和与各Prometheus对应的AlertManager当前正在使用的配置与所述预设的期望配置是否一致,如不一致,则对所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务进行配置更新。
优选地,所有已用于配置更新的CR资源对象实例为与其对应的一个或多个Prometheus和与各Prometheus对应的AlertManager服务的原预设的期望配置,将定期验证当前正在使用的配置与所述原预设的期望配置是否一致,如不一致,则对与所述该次验证之前已验证通过并已用于配置更新的CR资源对象实例对应的一个或多个Prometheus和与各Prometheus对应的AlertManager服务进行配置更新。
优选地,所述Prometheus认证信息为:非Kubernetes环境下Prometheus和AlertManager系统运行服务器地址/配置文件所在目录;Kubernetes环境下的Prometheus和AlertManager系统运行的Kubernetes集群API Server认证信息;Kubernetes环境下的Prometheus和AlertManager配置文件对应的ConfigMap资源对象的名称与命名空间。
第二方面,提供了一种声明式可视化配置Prometheus监控告警的系统,其包括接收模块一、管理控制模块、接收模块二、准入控制模块、配置更新模块,其中,
所述接收模块一,其用于接收一个或多个Prometheus认证信息,所述Prometheus认证信息包括与所述Prometheus对应的AlertManager服务的信息;
所述管理控制模块,其用于接收监控配置、告警规则配置和告警通知配置的CR资源对象实例,所述CR资源对象实例分别为CRD资源对象的实例,所述CRD资源对象为用于定义所述各个配置的模板;
所述接收模块二,其用于接收对所述CR资源对象实例的验证请求;
所述准入控制模块,其用于对所述CR资源对象实例的正确性进行验证,如验证通过则所述CR资源对象实例会持久化到ETCD数据库,如验证不通过则本次更新操作失败;
所述配置更新模块,其用于:如验证通过且所述CR资源对象实例持久化到所述ETCD数据库,根据所述CR资源对象实例中所设置的、所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务所在服务器的地址列表,为所述一个或多个Prometheus和与各Prometheus对应的AlertManager进行配置更新;此时所述CR资源对象实例分别为所述一个或多个Prometheus和与各Prometheus对应的AlertManager的预设的期望配置。
优选地,还包括事件处理模块,其用于:在所述CR资源对象实例持久化到所述ETCD数据库后,将触发预设的事件处理函数来定期验证所述一个或多个Prometheus和与各Prometheus对应的AlertManager当前正在使用的配置与所述预设的期望配置是否一致,如不一致,则对所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务进行配置更新。
优选地,还包括控制循环模块,其用于:所有已用于配置更新的CR资源对象实例为与其对应的一个或多个Prometheus和与各Prometheus对应的AlertManager服务的原预设的期望配置,将定期验证当前正在使用的配置与所述原预设的期望配置是否一致,如不一致,则对与所述该次验证之前已验证通过并已用于配置更新的CR资源对象实例对应的一个或多个Prometheus和与各Prometheus对应的AlertManager服务进行配置更新。
优选地,所述Prometheus认证信息为:非Kubernetes环境下Prometheus和AlertManager系统运行服务器地址/配置文件所在目录;Kubernetes环境下的Prometheus和AlertManager系统运行的Kubernetes集群API Server(Kubernetes容器编排系统的API接口,负责集群各功能模块之间的通信,集群内各个功能模块通过API Server将信息存入ETCD)认证信息;Kubernetes环境下的Prometheus和AlertManager配置文件对应的ConfigMap资源对象的名称与命名空间。
第三方面,本发明提供了一种声明式可视化配置Prometheus监控告警的设备,其包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述服务模拟设备运行时,所述处理器与所述存储介质之间通过所述总线通信,所述处理器执行所述机器可读指令,以执行前述1至4中任一项所述的声明式可视化配置Prometheus监控告警的方法的步骤。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行前述1至4中任一项所述的声明式可视化配置Prometheus监控告警的方法的步骤。
本申请提供了一种声明式可视化配置Prometheus监控告警的方法和系统,旨在实现一种基于声明式编程思想的可视化配置Prometheus监控告警方法,提供友好的可视化前端配置页面、自动化巡检功能和配置化的快速扩展能力。
本发明能至少提供以下技术效果:提供友好的前端配置页面,降低用户使用Prometheus的学习成本,避免人工配置出错;提供Prometheus配置监控告警规则与AlertManger联动,提供告警升级和通知人的变更,有助于监控告警在企业内的普及;依托Kubernetes Operator(一种声明式扩展Kubernetes的方法)的能力,基于声明式编程思想,自带巡检功能,无需开发额外的巡检功能代码,能够保证配置的正确性和有效性,自动化更新Prometheus监控告警配置,解决大规模监控告警配置修改问题;依托Kubernetes CRD(用户自定义的Kubernetes资源对象类型)能力,可根据需求创建不同的CR(用户自定义的Kubernetes资源对象的具体实例)资源对象实例,配置不同的告警策略;提供可插拔的扩展能力,可根据CRD配置定义不同监控告警系统的配置文件,便于扩展;依托Kubernetes准入机制和Webhook(一种自定义的回调方法,通过特定事件触发请求)机制,提供可插拔的配置文件验证功能。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例一种声明式可视化配置Prometheus监控告警的方法的业务流程图;
图2为本申请实施例的一种声明式可视化配置Prometheus监控告警的系统的结构图;
图3为本申请实施例的原理示意图;
图4为本申请实施例的Kubernetes Operator原理图;
图5为本申请实施例的Kubernetes Webhook模式图。
具体实施方式
下面详细描述本申请的实施例,各实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
实施例
本申请实施例提供了一种声明式可视化配置Prometheus监控告警的方法,其特征在于,包括:
步骤一,接收一个或多个Prometheus认证信息,所述Prometheus认证信息包括与所述Prometheus对应的AlertManager服务的信息。
步骤二,接收监控配置、告警规则配置和告警通知配置的CR资源对象实例,所述CR资源对象实例分别为CRD资源对象的实例,所述CRD资源对象为用于定义所述各个配置的模板。
步骤三,接收对所述CR资源对象实例的验证请求。
步骤四,对所述CR资源对象实例的正确性进行验证,如验证通过则所述CR资源对象实例会持久化到ETCD数据库,如验证不通过则本次更新操作失败。
步骤五,如验证通过且所述CR资源对象实例持久化到所述ETCD数据库,根据所述CR资源对象实例中所设置的、所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务所在服务器的地址列表,为所述一个或多个Prometheus和与各Prometheus对应的AlertManager进行配置更新;此时所述CR资源对象实例分别为所述一个或多个Prometheus和与各Prometheus对应的AlertManager的预设的期望配置。
本发明原理图如图3所示,仅Web Console UI(系统管理控制台前端页面)需要额外开发,其他组件仅需要少量配置或者脚手架工具KubeBuilder(一种扩展Kubernetes资源对象的工具)自动生成代码,添加配置文件对比和触发配置文件下发代码逻辑即可。而监控告警文件语法解析和验证也可以通过脚手架工具KubeBuilder生成,仅需添加验证逻辑即可。该方案的前提是需要提供一个Kubernetes集群,作为各个组件的运行环境,各个组件的实现原理如下。
Kubernetes Operator原理如图4所示,通过KubeBuilder脚手架工具生成功能代码,定义监控配置PrometheusConfig(用户自定义的Kubernetes资源对象的类型)、告警规则PrometheusRulesConfig(用户自定义的Kubernetes资源对象的类型)和告警通知配置AlertManagerConfig(用户自定义的Kubernetes资源对象的类型)的CRD资源对象,CRD资源对象代表监控告警配置信息的模板,CR资源对象代表的是监控告警配置信息的实例,比如PrometheusRulesConfig表示告警规则配置的模板,而对象实例则表示按照PrometheusRulesConfig模板定义的对象实例,该实例就是一种告警规则,不同的实例代表不同的告警规则,同理其他配置也是如此;实现循环控制器,监听监控告警配置CR资源对象事件(增、改、删),根据事件的类型做相应的处理操作,计算期望的配置信息与当前Prometheus正在使用的配置信息是否一致,一致则不做变化,不一致则触发配置下发组件下发配置到Prometheus服务;控制器提供定期巡检功能,会获取所有配置CR对象资源,生成配置与当前Prometheus正在使用的配置进行内容对比,保证配置的有效性;生成Webhook服务代码,仅需添加一些验证代码逻辑即可;如果要扩展到其他监控系统,则通过KubeBuilder脚手架工具定义其他类型的Kubernetes CRD对象、生成循环控制器和Webhook服务代码,可实现快速扩展的能力。
配置文件语法分析Webhook服务原理如图5所示,依托Kubernetes准入机制,注册资源对象验证Webhook服务,接收到监控告警资源对象请求后,对资源对象的内容进行语法分析,生成对应配置文件,调用临时Prometheus服务,验证配置文件是否生效,保证用户配置正确性,如果验证失败,则取消配置修改操作,ETCD不存储资源对象,验证通过则持久化存储到ETCD;如果对接其他监控告警系统,配置文件语法分析WebHook服务按照插件的形式扩展即可,对于Prometheus配置文件更新功能没有任何影响。
前端页面提供可视化操作入口,简化监控告警配置操作。提供Prometheus认证信息存储能力,包括Prometheus服务地址,Prometheus所在服务器SSH登录认证信息,Prometheus所在Kubernetes集群认证信息。用户可在前端界面配置不同的PrometheusConfig、PrometheusRulesConfig和AlertManagerConfig资源对象,选择不同的Prometheus和AlertManager服务进行配置更新。
配置下发:根据运行环境不同,分为两种情况,运行在Kubernetes集群内的Prometheus,配置下发组件可以通过与Kubernetes API Server交互,变更ConfigMap对象;如果是运行在虚拟机或者物理机的Prometheus,则通过Ansible(一种自动化运维工具,实现了批量系统配置、批量程序部署、批量运行命令等功能)工具下发配置即可。
具体地,本发明提供Web Console前端页面,其提供可视化操作UI,简化监控告警配置操作。提供Prometheus认证信息存储能力,包括Prometheus服务地址,Prometheus所在服务器登录认证信息,Prometheus所在K8S集群认证信息。用户可在前端界面配置不同的PrometheusConfig、PrometheusRulesConfig和AlertManagerConfig资源对象,选择不同的Prometheus和AlertManager服务进行配置更新。首先,需要通过前端UI注册Prometheus认证信息,作为配置下发组件更新配置所需的必填信息。然后,用户就可以在前端UI设置告警规则,前端UI是向导式,用户无需学习PromQL语法规则就可以完成告警规则的配置。最后,用户配置完告警规则,会生成对应的CR资源对象,Kubernetes Operator监听到告警规则创建,会生成告警规则文件,触发配置下发组件,根据选择的Prometheus服务地址,更新选择范围内的Prometheus配置。整个过程除了在前端UI的简单配置需要人工介入,其他过程都是自动化完成的。另外,在设置Prometheus监控配置文件时,用户可以设置该Prometheus服务与AlertManager自动关联。同时用户可以设置当前告警规则,按照用户组或者单个用户设置告警通知配置,完成AlertManager配置文件的更新。Kubernetes Operator的控制器会定期巡检期望配置与Prometheus当前使用的配置是否一致,无需人工介入。文件下发组件,如果是虚拟机或者物理机环境,可采用自动化运维工具Ansible或者其他工具,完成配置文件更新。
用户无需刻意学习Prometheus或者其他监控告警系统知识,依托Kubernetes声明式编程的思想,通过简单前端配置对应配置文件的CRD实例资源对象,Kubernetes控制器监听CR资源对象的事件,根据事件的不同完成配置文件更新,即使企业Prometheus全部使用容器部署,规模大,采用联邦架构,用户也能够实现监控告警配置的简单化、自动化,保证企业全面掌握应用系统的运行状态。
在本实施例中,还提供了一种声明式可视化配置Prometheus监控告警的系统,用于实现前述步骤。其包括接收模块一、管理控制模块、接收模块二、准入控制模块、配置更新模块,其中,
所述接收模块一,其用于接收一个或多个Prometheus认证信息,所述Prometheus认证信息包括与所述Prometheus对应的AlertManager服务的信息。此处的接收模块一为图3所示的管理控制台。
所述管理控制模块,其用于接收监控配置、告警规则配置和告警通知配置的CR资源对象实例,所述CR资源对象实例分别为CRD资源对象的实例,所述CRD资源对象为用于定义所述各个配置的模板。此处的管理控制模块的功能也由图3所示的管理控制台来实现。
所述接收模块二,其用于接收对所述CR资源对象实例的验证请求。此处的接收模块二的功能由图3的准入控制器实现。
所述准入控制模块,其用于对所述CR资源对象实例的正确性进行验证,如验证通过则所述CR资源对象实例会持久化到ETCD数据库,如验证不通过则本次更新操作失败。
所述配置更新模块,其用于:如验证通过且所述CR资源对象实例持久化到所述ETCD数据库,根据所述CR资源对象实例中所设置的、所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务所在服务器的地址列表,为所述一个或多个Prometheus和与各Prometheus对应的AlertManager进行配置更新;此时所述CR资源对象实例分别为所述一个或多个Prometheus和与各Prometheus对应的AlertManager的预设的期望配置。此处的配置更新模块,其功能具体由图3控制循环中的预设的事件函数触发Ansible实现。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种声明式可视化配置Prometheus监控告警的方法,其特征在于,包括:
接收一个或多个Prometheus认证信息,所述Prometheus认证信息包括与所述Prometheus对应的AlertManager服务的信息;
接收监控配置、告警规则配置和告警通知配置的CR资源对象实例,所述CR资源对象实例分别为CRD资源对象的实例,所述CRD资源对象为用于定义所述各个配置的模板;
接收对所述CR资源对象实例的验证请求;
对所述CR资源对象实例的正确性进行验证,如验证通过则所述CR资源对象实例会持久化到ETCD数据库,如验证不通过则本次更新操作失败;
如验证通过且所述CR资源对象实例持久化到所述ETCD数据库,根据所述CR资源对象实例中所设置的、所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务所在服务器的地址列表,为所述一个或多个Prometheus和与各Prometheus对应的AlertManager进行配置更新;此时所述CR资源对象实例分别为所述一个或多个Prometheus和与各Prometheus对应的AlertManager的预设的期望配置。
2.根据权利要求1所述的一种声明式可视化配置Prometheus监控告警的方法,其特征在于,
在所述CR资源对象实例持久化到所述ETCD数据库后,将触发预设的事件处理函数来定期验证所述一个或多个Prometheus和与各Prometheus对应的AlertManager当前正在使用的配置与所述预设的期望配置是否一致,如不一致,则对所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务进行配置更新。
3.根据权利要求1所述的一种声明式可视化配置Prometheus监控告警的方法,其特征在于,
所有已用于配置更新的CR资源对象实例为与其对应的一个或多个Prometheus和与各Prometheus对应的AlertManager服务的原预设的期望配置,将定期验证当前正在使用的配置与所述原预设的期望配置是否一致,如不一致,则对与所述该次验证之前已验证通过并已用于配置更新的CR资源对象实例对应的一个或多个Prometheus和与各Prometheus对应的AlertManager服务进行配置更新。
4.根据权利要求1所述的一种声明式可视化配置Prometheus监控告警的方法,其特征在于,所述Prometheus认证信息为:非Kubernetes环境下Prometheus和AlertManager系统运行服务器地址/配置文件所在目录;Kubernetes环境下的Prometheus和AlertManager系统运行的Kubernetes集群API Server认证信息;Kubernetes环境下的Prometheus和AlertManager配置文件对应的ConfigMap资源对象的名称与命名空间。
5.一种声明式可视化配置Prometheus监控告警的系统,其特征在于,包括接收模块一、管理控制模块、接收模块二、准入控制模块、配置更新模块,其中,
所述接收模块一,其用于接收一个或多个Prometheus认证信息,所述Prometheus认证信息包括与所述Prometheus对应的AlertManager服务的信息;
所述管理控制模块,其用于接收监控配置、告警规则配置和告警通知配置的CR资源对象实例,所述CR资源对象实例分别为CRD资源对象的实例,所述CRD资源对象为用于定义所述各个配置的模板;
所述接收模块二,其用于接收对所述CR资源对象实例的验证请求;
所述准入控制模块,其用于对所述CR资源对象实例的正确性进行验证,如验证通过则所述CR资源对象实例会持久化到ETCD数据库,如验证不通过则本次更新操作失败;
所述配置更新模块,其用于:如验证通过且所述CR资源对象实例持久化到所述ETCD数据库,根据所述CR资源对象实例中所设置的、所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务所在服务器的地址列表,为所述一个或多个Prometheus和与各Prometheus对应的AlertManager进行配置更新;此时所述CR资源对象实例分别为所述一个或多个Prometheus和与各Prometheus对应的AlertManager的预设的期望配置。
6.根据权利要求5所述的一种声明式可视化配置Prometheus监控告警的系统,其特征在于,
还包括事件处理模块,其用于:在所述CR资源对象实例持久化到所述ETCD数据库后,将触发预设的事件处理函数来定期验证所述一个或多个Prometheus和与各Prometheus对应的AlertManager当前正在使用的配置与所述预设的期望配置是否一致,如不一致,则对所述一个或多个Prometheus和与各Prometheus对应的AlertManager服务进行配置更新。
7.据权利要求5所述的一种声明式可视化配置Prometheus监控告警的系统,其特征在于,还包括控制循环模块,其用于:所有已用于配置更新的CR资源对象实例为与其对应的一个或多个Prometheus和与各Prometheus对应的AlertManager服务的原预设的期望配置,将定期验证当前正在使用的配置与所述原预设的期望配置是否一致,如不一致,则对与所述该次验证之前已验证通过并已用于配置更新的CR资源对象实例对应的一个或多个Prometheus和与各Prometheus对应的AlertManager服务进行配置更新。
8.据权利要求5所述的一种声明式可视化配置Prometheus监控告警的系统,其特征在于,所述Prometheus认证信息为:非Kubernetes环境下Prometheus和AlertManager系统运行服务器地址/配置文件所在目录;Kubernetes环境下的Prometheus和AlertManager系统运行的Kubernetes集群API Server认证信息;Kubernetes环境下的Prometheus和AlertManager配置文件对应的ConfigMap资源对象的名称与命名空间。
9.一种声明式可视化配置Prometheus监控告警的设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述服务模拟设备运行时,所述处理器与所述存储介质之间通过所述总线通信,所述处理器执行所述机器可读指令,以执行权利要求1至4中任一项所述的声明式可视化配置Prometheus监控告警的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行权利要求1至4中任一项所述的声明式可视化配置Prometheus监控告警的方法的步骤。
CN202010540095.1A 2020-06-12 2020-06-12 一种声明式可视化配置Prometheus监控告警的方法和系统 Active CN111666189B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010540095.1A CN111666189B (zh) 2020-06-12 2020-06-12 一种声明式可视化配置Prometheus监控告警的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010540095.1A CN111666189B (zh) 2020-06-12 2020-06-12 一种声明式可视化配置Prometheus监控告警的方法和系统

Publications (2)

Publication Number Publication Date
CN111666189A true CN111666189A (zh) 2020-09-15
CN111666189B CN111666189B (zh) 2023-03-31

Family

ID=72387503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010540095.1A Active CN111666189B (zh) 2020-06-12 2020-06-12 一种声明式可视化配置Prometheus监控告警的方法和系统

Country Status (1)

Country Link
CN (1) CN111666189B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783654A (zh) * 2021-01-28 2021-05-11 上海浪潮云计算服务有限公司 一种Kubernetes环境下的云原生服务的共享配置资源实现方法
CN112925612A (zh) * 2021-03-15 2021-06-08 浪潮软件科技有限公司 一种基于Kubernetes的监控服务静态配置管理方法
CN112994935A (zh) * 2021-02-04 2021-06-18 烽火通信科技股份有限公司 prometheus管控方法、装置、设备及存储介质
CN113051131A (zh) * 2021-03-23 2021-06-29 北京沃东天骏信息技术有限公司 采集端、管理控制平台、Prometheus服务调整方法及系统
CN113220420A (zh) * 2021-05-18 2021-08-06 北京百度网讯科技有限公司 服务监控方法、装置、设备、存储介质及计算机程序产品
CN113760639A (zh) * 2020-10-19 2021-12-07 北京沃东天骏信息技术有限公司 监控方法、装置、计算设备及介质
CN114201240A (zh) * 2022-02-21 2022-03-18 联信弘方(北京)科技股份有限公司 配置helm chart的方法和装置
CN114816943A (zh) * 2022-07-01 2022-07-29 锐盈云科技(天津)有限公司 企业智能云运维系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102354296A (zh) * 2011-11-10 2012-02-15 摩卡软件(天津)有限公司 一种可扩展监控资源的监控系统和方法
WO2017024791A1 (zh) * 2015-08-10 2017-02-16 华为技术有限公司 一种处理授权的方法和设备
CN108039975A (zh) * 2017-12-21 2018-05-15 北京搜狐新媒体信息技术有限公司 容器集群管理系统及其应用方法
CN109697153A (zh) * 2018-12-28 2019-04-30 浙江省公众信息产业有限公司 监控方法、监控系统及计算机可读存储介质
CN109743199A (zh) * 2018-12-25 2019-05-10 中国联合网络通信集团有限公司 基于微服务的容器化管理系统
CN110275775A (zh) * 2019-05-17 2019-09-24 平安科技(深圳)有限公司 容器应用的资源配置方法、系统及存储介质
CN110855509A (zh) * 2019-12-23 2020-02-28 广东省新一代通信与网络创新研究院 一种新型的云化sptn网络架构

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102354296A (zh) * 2011-11-10 2012-02-15 摩卡软件(天津)有限公司 一种可扩展监控资源的监控系统和方法
WO2017024791A1 (zh) * 2015-08-10 2017-02-16 华为技术有限公司 一种处理授权的方法和设备
CN108039975A (zh) * 2017-12-21 2018-05-15 北京搜狐新媒体信息技术有限公司 容器集群管理系统及其应用方法
CN109743199A (zh) * 2018-12-25 2019-05-10 中国联合网络通信集团有限公司 基于微服务的容器化管理系统
CN109697153A (zh) * 2018-12-28 2019-04-30 浙江省公众信息产业有限公司 监控方法、监控系统及计算机可读存储介质
CN110275775A (zh) * 2019-05-17 2019-09-24 平安科技(深圳)有限公司 容器应用的资源配置方法、系统及存储介质
CN110855509A (zh) * 2019-12-23 2020-02-28 广东省新一代通信与网络创新研究院 一种新型的云化sptn网络架构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马永 等: "基于Prometheus的基础软硬件全链路监控设计和实现" *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760639A (zh) * 2020-10-19 2021-12-07 北京沃东天骏信息技术有限公司 监控方法、装置、计算设备及介质
CN112783654A (zh) * 2021-01-28 2021-05-11 上海浪潮云计算服务有限公司 一种Kubernetes环境下的云原生服务的共享配置资源实现方法
CN112783654B (zh) * 2021-01-28 2024-04-19 上海浪潮云计算服务有限公司 一种Kubernetes环境下的云原生服务的共享配置资源实现方法
CN112994935A (zh) * 2021-02-04 2021-06-18 烽火通信科技股份有限公司 prometheus管控方法、装置、设备及存储介质
CN112994935B (zh) * 2021-02-04 2022-06-17 烽火通信科技股份有限公司 prometheus管控方法、装置、设备及存储介质
CN112925612A (zh) * 2021-03-15 2021-06-08 浪潮软件科技有限公司 一种基于Kubernetes的监控服务静态配置管理方法
CN113051131A (zh) * 2021-03-23 2021-06-29 北京沃东天骏信息技术有限公司 采集端、管理控制平台、Prometheus服务调整方法及系统
CN113220420A (zh) * 2021-05-18 2021-08-06 北京百度网讯科技有限公司 服务监控方法、装置、设备、存储介质及计算机程序产品
CN114201240A (zh) * 2022-02-21 2022-03-18 联信弘方(北京)科技股份有限公司 配置helm chart的方法和装置
CN114201240B (zh) * 2022-02-21 2022-05-27 联信弘方(北京)科技股份有限公司 配置helm chart的方法和装置
CN114816943A (zh) * 2022-07-01 2022-07-29 锐盈云科技(天津)有限公司 企业智能云运维系统

Also Published As

Publication number Publication date
CN111666189B (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
CN111666189B (zh) 一种声明式可视化配置Prometheus监控告警的方法和系统
CN110050257B (zh) 可执行数据流图的差分
EP3923141A1 (en) Method and apparatus for storing autonomous driving test data, electronic device, storage medium and computer program product
CN108874558B (zh) 分布式事务的消息订阅方法、电子装置及可读存储介质
US8954859B2 (en) Visually analyzing, clustering, transforming and consolidating real and virtual machine images in a computing environment
CN111427748B (zh) 任务告警方法、系统、设备及存储介质
CN111459763A (zh) 跨kubernetes集群监控系统及方法
CN103268226A (zh) 一种测试脚本文件生成方法及装置
CN110532322B (zh) 运维交互方法、系统、计算机可读存储介质及设备
CN101699403B (zh) 一种图形化安装分布式系统的方法
US11687536B2 (en) Pipeline-based system for configuration checking and reporting associated with an information processing system
CN111782341B (zh) 用于管理集群的方法和装置
CN104679500B (zh) 实体类自动生成实现方法及装置
CN109905263A (zh) 一种自动化运维部署系统
JP2010128597A (ja) 情報処理装置及び情報処理装置の運用方法
CN112948068B (zh) 任务调度方法、装置及电子设备
CN113176996A (zh) 故障处理方法、引擎、插件化探针、设备及可读存储介质
CN116450464B (zh) 运维管理方法、系统及设备
CN113065139A (zh) 告警接入方法及系统、电子设备及介质
CN111459924A (zh) 数据采集方法、系统、电子设备和介质
CN116431200A (zh) 应用数据配置信息的配置方法、装置、设备及存储介质
CN116248526A (zh) 部署容器平台的方法、装置及电子设备
CN113760354B (zh) 一种调度自动化系统的本体信息版本管控方法及装置
US9059992B2 (en) Distributed mobile enterprise application platform
CN109739724A (zh) 数据监控方法、系统、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant