CN113986649A - 一种基于prometheus服务的系统监控装置及方法 - Google Patents

一种基于prometheus服务的系统监控装置及方法 Download PDF

Info

Publication number
CN113986649A
CN113986649A CN202111138119.1A CN202111138119A CN113986649A CN 113986649 A CN113986649 A CN 113986649A CN 202111138119 A CN202111138119 A CN 202111138119A CN 113986649 A CN113986649 A CN 113986649A
Authority
CN
China
Prior art keywords
monitoring
alarm
prometheus
service
data
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.)
Pending
Application number
CN202111138119.1A
Other languages
English (en)
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.)
Hunan Qilin Xin'an Technology Co ltd
Original Assignee
Hunan Qilin Xin'an Technology Co 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 Hunan Qilin Xin'an Technology Co ltd filed Critical Hunan Qilin Xin'an Technology Co ltd
Priority to CN202111138119.1A priority Critical patent/CN113986649A/zh
Publication of CN113986649A publication Critical patent/CN113986649A/zh
Pending legal-status Critical Current

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/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • 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/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提出一种基于prometheus服务的系统监控装置及方法,装置包括设置于同一个集群的服务器中的监控系统和业务系统,监控系统包括:监控数据采集模块,用于配置监控任务并生成监控任务列表,还用于定时获取监控任务列表并生成prometheus配置文件,还用于采集并返回监控数据;prometheus监控服务模块,用于根据prometheus配置文件调度监控任务进行监控数据采集、监控数据存储、报警判断和报警回调;业务系统包括业务系统展示模块,用于根据存储的监控数据以及报警回调的报警信息展示监控图表和报警通知。本发明在业务系统中实现监控功能,节省服务器资源,同时配置定时任务自动更新监控任务,避免手动修改的潜在问题,提升了系统稳定性。

Description

一种基于prometheus服务的系统监控装置及方法
技术领域
本发明涉及系统监控领域,尤其涉及一种基于prometheus服务的系统监控装置及方法。
背景技术
系统监控是指对系统的运行指标数据进行收集和展示,供运维人员实时查看系统运行状态是否正常。监控指标数据按照数据来源划分,主要可以分为基础系统指标数据和业务系统指标数据两大类。基础系统指标数据包括服务器负载情况、基础服务运行状态、网络质量等信息,比如CPU、内存、磁盘、网卡等设备的使用负载情况,SSH、防火墙、Http、Apache等基础服务的运行情况,访问常见网站的网络速度情况等。业务系统指标数据需要根据不同的业务场景,分析出业务系统的重要指标,然后使用监控系统收集和展示。
一般业务系统不支持动态配置监控采集任务,通常使用配置文件的方式,预先编写好存储在监控服务目录中。手动修改监控采集任务配置文件,需要集群所有节点依次修改,操作繁琐容易产生错误,影响监控功能整体稳定性。
常见的系统架构会将业务系统和监控系统分别部署在两套服务器集群中,可以降低两个系统之间的耦合关系,使一套监控系统可以同时监控多个业务系统。但是对于部分中小型企事业单位,购买和维护两组服务器的费用成本高昂。并且每个业务系统可能由不同的公司开发,使用同一套监控系统进行监控,每个公司统一技术实现难度较高,因此不需要一个监控系统监控多个业务系统。
prometheus服务是github社区的一个开源监控系统,提供监控数据采集、数据存储、数据查询、报警发送等功能。prometheus服务的监控数据支持本地存储和远程存储,远程存储需要单独搭建一套服务器集群,系统维护和费用成本高昂。对于部分中小型企事业单位,监控数据需要使用本地存储。prometheus的本地时序数据库不支持搭建集群模式,并且出现磁盘故障时无法恢复,影响监控服务的稳定性。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种基于prometheus服务的系统监控装置及方法,监控系统和业务系统设置在同一个集群的服务器中,同时业务系统中实现部分监控系统的功能,有效降低维护成本和节省服务器资源,还借助定时任务自动更新prometheus服务配置文件,避免手动修改带来的潜在问题,提升了系统稳定性和运维人员的工作效率。
为解决上述技术问题,本发明提出的技术方案为:
一种基于prometheus服务的系统监控装置,包括设置于同一个集群的服务器中的监控系统和业务系统,所述监控系统包括:
监控数据采集模块,用于配置监控任务并生成监控任务列表,还用于定时获取监控任务列表并生成对应的prometheus配置文件,还用于采集并返回监控数据给prometheus监控服务模块;
prometheus监控服务模块,用于根据prometheus配置文件调度监控任务列表中的监控任务进行监控数据采集、监控数据存储、报警判断和报警回调;
所述业务系统包括业务系统展示模块,用于根据prometheus监控服务模块存储的监控数据以及报警回调的报警信息展示监控图表和报警通知;
所述监控数据采集模块、prometheus监控服务模块和业务系统展示模块依次连接。
进一步的,所述监控数据采集模块包括:
数据采集组件,用于采集并返回监控数据给prometheus监控服务模块,所述监控数据包括系统运行情况、基础服务状态以及根据预先配置的脚本采集的自定义数据,还用于将自定义数据转换为prometheus标准格式;
监控任务管理单元,用于进行监控任务的注册、删除、修改和查询,并生成监控任务列表,还用于定时获取监控任务列表并生成对应的prometheus配置文件。
进一步的,所述prometheus监控服务模块包括:
prometheus服务端,用于获取prometheus配置文件并根据prometheus配置文件得到监控任务列表中所有监控任务的访问地址,根据所述监控任务的访问地址采集对应服务器节点中的监控数据采集模块返回的监控数据,将监控数据发送给本地时序数据库,并根据预先配置的报警规则判断是否报警,若报警则生成报警信息;
报警管理组件,用于将prometheus服务端的报警信息发送到业务系统展示模块;
本地时序数据库,用于存储prometheus服务端采集的监控数据。
进一步的,所述业务系统展示模块包括:
监控图表单元,用于获取prometheus监控服务模块存储的监控数据,根据监控数据绘制监控图表;
报警通知单元,用于获取prometheus监控服务模块的报警管理组件报警回调的报警信息,然后将报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知,并生成供业务系统的web前端查询报警信息的接口。
本发明还提出一种基于prometheus服务的系统监控方法,所述的基于prometheus服务的系统监控装置的监控数据采集模块、prometheus监控服务模块和业务系统展示模块分别设置于集群的每台服务器节点中,每台服务器节点实现监控功能包括以下步骤:
S1)监控数据采集模块的监控任务管理单元以预设的第一时段为间隔查询监控任务列表并生成对应的prometheus配置文件;
S2)prometheus监控服务模块的prometheus服务端获取prometheus配置文件并根据prometheus配置文件得到监控任务列表中所有监控任务的访问地址,然后根据各监控任务的访问地址采集对应服务器节点中监控数据采集模块的数据采集组件返回的监控数据;
S3)prometheus服务端将监控数据存储在prometheus监控服务模块的本地时序数据库;
S4)promethues服务端根据预先配置的报警规则判断监控数据是否触发报警,如果触发则发送报警信息到prometheus监控服务模块的报警管理组件,报警管理组件根据预设的第二时段内收到的所有报警信息生成报警信息列表,将报警信息列表打包为报警回调数据包并通过http接口发送给业务系统展示模块;
S5)业务系统展示模块的报警通知单元收取报警管理组件的报警回调数据包并解析得到报警信息列表,然后将报警信息列表中的报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知,并生成供业务系统的web前端查询报警信息的接口。
进一步的,步骤S3)之后还包括数据查询的步骤,具体包括:
A1)prometheus服务端获取业务系统转发的查询请求,根据查询请求中的时间在本地时序数据库匹配得到指定的监控数据;
A2)prometheus服务端将指定的监控数据发送给业务系统展示模块的监控图表单元,监控图表单元根据指定的监控数据绘制监控图表。
进一步的,步骤S1)之前还包括配置监控任务的步骤,具体包括:监控任务管理单元调用http接口配置mysql数据库中的监控任务并生成新的监控任务列表替换原监控任务列表。
进一步的,步骤S2)中根据各监控任务的访问地址采集对应服务器节点中监控数据采集模块的数据采集组件返回的监控数据包括以下步骤:
S21)prometheus服务端根据各监控任务的访问地址匹配所有服务器节点中得到对应服务器节点;
S22)对应服务器节点中的数据采集组件采集系统运行情况、基础服务状态以及根据预先配置的脚本采集自定义数据,将自定义数据转换为prometheus标准格式后与系统运行情况、基础服务状态一同作为监控数据返回给prometheus服务端;
S23)prometheus服务端对收到的监控数据增加预先配置的标签。
进一步的,步骤S3)之后还包括本地时序数据库空间优化的步骤,具体包括:以预设的第三时段为间隔,判断是否存在过期监控数据,是则删除过期监控数据并压缩剩余监控数据,否则压缩所有未压缩的监控数据。
进一步的,步骤S5)中将报警信息列表中的报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知包括以下步骤:
S51)报警通知单元筛选报警信息列表中的目标报警信息并存储在mysql数据库中,所述目标报警信息为mysql数据库中不存在匹配结果或者mysql数据库中存在匹配结果但匹配结果的报警状态为已恢复的报警信息;
S52)报警通知单元根据mysql数据库中未恢复的报警信息生成对应的报警通知;
S53)报警通知单元等待并监听报警恢复消息,若监听到报警恢复信息,跳转步骤S54),若等待超时,返回步骤S52),本实施例中等待超时时间为10分钟;
S54)报警通知单元根据报警恢复信息修改mysql数据库中对应报警信息的报警状态为已恢复;
S55)返回步骤S52)直到mysql数据库中所有报警信息的报警状态均为已恢复。
与现有技术相比,本发明的优点在于:
一、本发明的系统监控装置包括设置于同一个集群的服务器中的监控系统和业务系统,实现监控系统和业务系统混合部署在同一个集群的服务器中,同时在业务系统中增加业务系统展示模块,使得业务系统能够展示监控图表和报警通知,从而具备部分监控功能,能够节省服务器资源并降低维护成本;
二、本发明的方法中,监控任务管理单元调用http接口配置mysql数据库中的监控任务,从而支持动态配置监控任务,同时监控数据采集模块的监控任务管理单元以预设的第一时段为间隔查询监控任务列表并生成对应的prometheus配置文件,实现动态变更监控任务的功能;
三、本发明的装置及方法中,数据采集组件采集并返回的监控数据包括系统运行情况、基础服务状态以及根据预先配置的脚本采集的自定义数据,可以根据业务需要确定自定义数据的类型,从而增加了本发明的适用性;
四、本发明的方法中,监控数据采集模块、prometheus监控服务模块和业务系统展示模块分别设置于集群的每台服务器节点中,每台服务器节点都能实现监控功能,并且每台服务器节点上都存储有集群中所有节点的监控数据,通过对监控数据的多点冗余存储,避免单个服务器节点故障导致整个集群的监控数据丢失的问题,提升了监控服务的整体可用性,同时监控数据存储在服务器节点的本地时序数据库中,避免远程存储可能遇到的网络链路故障等问题,简化监控数据存储架构模型,提升存储稳定性;
五、本发明的方法中,业务系统转发查询请求到prometheus服务端查询监控数据,能够避免直接暴露prometheus的端口对外部使用,提高业务系统的整体安全性。
附图说明
图1为本发明实施例一的监控装置的结构示意图。
图2为本发明实施例一的监控方法的步骤示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
实施例一
如图1所示,本发明提出一种基于prometheus服务的系统监控装置,采用业务系统和监控系统混合部署的方式,包括设置于同一个集群的服务器中的监控系统和业务系统,所述监控系统包括:
监控数据采集模块,用于配置监控任务并生成监控任务列表,还用于定时获取监控任务列表并生成对应的prometheus配置文件,还用于采集并返回监控数据给prometheus监控服务模块;
prometheus监控服务模块,用于根据prometheus配置文件调度监控任务列表中的监控任务进行监控数据采集、监控数据存储、报警判断和报警回调;
所述业务系统包括业务系统展示模块,用于根据prometheus监控服务模块存储的监控数据以及报警回调的报警信息展示监控图表和报警通知;
通过监控数据采集模块、prometheus监控服务模块和业务系统展示模块依次连接,本实施例的监控数据采集模块和prometheus监控服务模块负责数据采集和存储功能,业务系统展示模块提供监控图表展示和报警通知功能,使得业务系统能够展示监控图表和报警通知,从而实现了部分监控系统的功能。混合部署能有效降低维护成本和节省服务器资源,能够很好的满足部分客户的需求。
如图1所示,本实施例中的监控数据采集模块包括:
数据采集组件,用于采集并返回监控数据给prometheus监控服务模块,所述监控数据包括系统运行情况、基础服务状态以及根据预先配置的脚本采集的自定义数据,还用于将自定义数据转换为prometheus标准格式;
监控任务管理单元,用于进行监控任务的注册、删除、修改和查询,并生成监控任务列表,还用于定时获取监控任务列表并生成对应的prometheus配置文件;
本实施例中的prometheus监控服务模块包括:
prometheus服务端,用于获取prometheus配置文件并根据prometheus配置文件得到监控任务列表中所有监控任务的访问地址,根据所述监控任务的访问地址采集对应服务器节点中的监控数据采集模块返回的监控数据,将监控数据发送给本地时序数据库,并根据预先配置的报警规则判断是否报警,若报警则生成报警信息;
报警管理组件,用于将prometheus服务端的报警信息发送到业务系统展示模块;
本地时序数据库,用于存储prometheus服务端采集的监控数据;
本实施例中的业务系统展示模块包括:
监控图表单元,用于获取prometheus监控服务模块的本地时序数据库存储的监控数据,根据监控数据绘制监控图表,供运维人员查询使用;
报警通知单元,用于获取prometheus监控服务模块的报警管理组件报警回调的报警信息,然后将报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知,并生成供业务系统的web前端查询报警信息的接口。
本实施例中,数据采集组件使用prometheus官方的开源组件node_exporter,它能够采集linux系统运行情况和基础服务状态等信息。node_exporter同时支持开发者编写自定义脚本来采集自定义数据,但要求将数据转换为prometheus标准格式,自定义数据会跟随采集的linux系统运行情况和基础服务状态等信息一起返回给prometheus监控服务模块的prometheus服务端。
本实施例中,报警管理组件使用prometheus官方的开源组件alertmanagert,负责将prometheus服务端生成的报警信息回调并发送到业务系统展示模块的报警通知单元,alertmanager回调的报警信息中包括报警状态(报警中/已恢复)、标题、描述、开始时间、结束时间、报警级别等信息,报警级别分为错误和警告两种级别,本实施例中,对于错误级别的报警信息,报警通知单元生成提示窗,通过主动弹窗的方式通知用户,对于警告级别的报警信息,报警通知单元统计报警信息数量并生成统计报告。
如图2所示,本实施例还提出一种基于prometheus服务的系统监控方法,上述的基于prometheus服务的系统监控装置的监控数据采集模块、prometheus监控服务模块和业务系统展示模块分别设置于集群的每台服务器节点中,每台服务器节点实现监控功能包括以下步骤:
S1)注册任务:监控数据采集模块的监控任务管理单元以预设的第一时段为间隔查询监控任务列表并生成对应的prometheus配置文件,本实施例中第一时段为1分钟,prometheus配置文件的文件名称为prometheus.yml;
S2)数据采集:prometheus监控服务模块的prometheus服务端获取prometheus配置文件并根据prometheus配置文件得到监控任务列表中所有监控任务的访问地址,然后根据各监控任务的访问地址采集对应服务器节点中监控数据采集模块的数据采集组件返回的监控数据;
S3)数据存储:prometheus服务端将监控数据存储在prometheus监控服务模块的本地时序数据库,每个监控数据在本地时序数据库中存储的信息包括指标名称、值和标签信息;
S4)报警判断:promethues服务端根据预先配置的报警规则判断监控数据是否触发报警,如果触发则发送报警信息到prometheus监控服务模块的报警管理组件,报警管理组件根据预设的第二时段内收到的所有报警信息生成报警信息列表,将报警信息列表打包为报警回调数据包并通过http接口发送给业务系统展示模块,本实施例中第二时段为10秒钟,报警规则配置文件名称为rules.yml,rules.yml和prometheus.yml文件放在同一目录下,并且需要在prometheus配置文件中配置报警规则配置文件的名称,报警规则配置文件中需要配置分组名,每个分组下支持配置多个报警规则,每个报警规则包括判断条件表达式、持续时间触发报警、标签、标题和描述信息;
S5)报警通知:业务系统展示模块的报警通知单元收取报警管理组件的报警回调数据包并解析得到报警信息列表,然后将报警信息列表中的报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知,并生成供业务系统的web前端查询报警信息的接口。
通过上述步骤,集群中每台服务器节点冗余采集集群中所有服务器节点的监控数据,并存储在本地时序数据库中,冗余采集和存储保证了在单个服务器节点发生故障时,集群其他服务器节点仍能继续采集监控数据并进行报警通知。同时通过配置定时任务,定期查询最新的监控任务列表自动更新prometheus配置文件,避免手动修改带来的潜在问题,提升了系统稳定性和运维人员的工作效率。
如图2所示,本实施例的步骤S3)之后还包括数据查询的步骤,具体包括:
A1)数据查询:prometheus服务端获取业务系统转发的查询请求,根据查询请求中的时间在本地时序数据库匹配得到指定的监控数据,prometheus服务的本地时序数据库支持使用PromQL语句查询监控数据,prometheus服务提供http接口可以查询最新时间点的监控数据和指定时间范围的监控数据,方便业务系统展示模块绘制监控图表;
A2)生成图表:prometheus服务端将指定的监控数据发送给业务系统展示模块的监控图表单元,监控图表单元根据指定的监控数据绘制监控图表,监控图表包括直观的表格、折线图、柱状图等类型,方便运维人员查询实时和历史的监控数据。
本实施例的步骤S1)之前还包括配置监控任务的步骤,具体包括:监控任务管理单元调用http接口配置mysql数据库中的监控任务并生成新的监控任务列表替换原监控任务列表,监控任务管理单元支持对监控任务注册、删除、修改和查询,从而使得新的监控任务列表中的监控任务相比于原监控任务列表的数量或者内容发生变化,mysql数据库中每条监控任务包含访问地址、采集周期、采集超时时间和标签字段,访问地址是一个http协议的url,采集周期指的是采集访问地址返回的数据的时间间隔,采集超时时间指的是http请求一定时间不返回数据即认为请求超时。
本实施例的步骤S2)中根据各监控任务的访问地址采集对应服务器节点中监控数据采集模块的数据采集组件返回的监控数据包括以下步骤:
S21)prometheus服务端根据各监控任务的访问地址匹配所有服务器节点中得到对应服务器节点,由于监控任务列表中的监控任务的访问地址可能在配置过程中被调整,或者监控任务列表中的监控任务在配置过程中存在增加或减少的情况,因此prometheus服务端首先匹配所有服务器节点获取需要采集监控数据的对应服务器节点,并向对应服务器节点发送监控数据采集请求;
S22)对应服务器节点收到数据采集请求后,对应服务器节点中的数据采集组件采集系统运行情况、基础服务状态以及根据预先配置的脚本采集自定义数据,将自定义数据转换为prometheus标准格式后与系统运行情况、基础服务状态一同作为监控数据返回给prometheus服务端,本实施例中数据采集组件采用node_exporter组件,用户根据业务需求编写自定义脚本,脚本生成prometheus标准格式的数据文件,放在node_exporter组件的textfile数据目录下;
S23)prometheus服务端对收到的监控数据增加预先配置的标签,标签的格式为字符串类型的键值对,方便用户查询监控数据。
本实施例中,步骤S3)之后还包括本地时序数据库空间优化的步骤,具体包括:以预设的第三时段为间隔,判断是否存在过期监控数据,是则删除过期监控数据并压缩剩余监控数据,否则压缩所有未压缩的监控数据。本实施例中,本地时序数据库只存储7天的监控数据,通过配置满足业务需求的最短数据存储过期时间,并定期删除过期数据以及对未压缩的数据进行压缩,尽量节省了本地时序数据库的存储空间。
本实施例的步骤S5)中将报警信息列表中的报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知包括以下步骤:
S51)报警通知单元筛选报警信息列表中的目标报警信息并存储在mysql数据库中,所述目标报警信息为mysql数据库中不存在匹配结果或者mysql数据库中存在匹配结果但匹配结果的报警状态为已恢复的报警信息;
S52)报警通知单元根据mysql数据库中未恢复的报警信息生成对应的报警通知;
S53)报警通知单元等待并监听报警恢复消息,若监听到报警恢复信息,跳转步骤S54),若等待超时,返回步骤S52),本实施例中等待超时时间为10分钟;
S54)报警通知单元根据报警恢复信息修改mysql数据库中对应报警信息的报警状态为已恢复;
S55)返回步骤S52)直到mysql数据库中所有报警信息的报警状态均为已恢复。
通过上述步骤,本实施例在第一次通知报警时将报警信息记录mysql数据库中,接下来相同的未恢复报警信息不再重复记录。对于未恢复的报警信息每10分钟重复通知一次,直到此条报警信息的报警状态变为已恢复。用户收到报警通知并处理后,会向业务系统发送一个报警恢复信息,业务系统的报警通知单元收到报警恢复信息后将mysql数据库中未恢复的报警信息的报警状态设置为已恢复。
实施例二
本实施例与实施例一基本相同,区别在于本实施例中业务系统的web前端增加监控任务管理页面,步骤S1)之前通过监控任务管理页面填写监控任务信息配置mysql数据库中的监控任务并生成新的监控任务列表替换原监控任务列表,即可完成监控任务创建,最终同样可以实现动态的管理监控任务。
实施例三
本实施例与实施例一基本相同,区别在于本实施例中报警通知单元还按照对监控通知实时性要求的高低,以及生产环境支持的消息通知方式,使用短信、邮件、语音电话、即时通讯工具等发送报警通知。
实施例四
本实施例与实施例一基本相同,区别在于本实施例中针对业务系统的不同需求,数据采集组件除使用prometheus官方的开源组件node_exporter之外还包括用于监控mysql服务的mysqld_exporter组件和用于监控memcached服务的memcached_exporter组件。数据采集组件通过这些组件采集到需要的监控数据,最后被prometheus服务端汇总收集。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (10)

1.一种基于prometheus服务的系统监控装置,其特征在于,包括设置于同一个集群的服务器中的监控系统和业务系统,所述监控系统包括:
监控数据采集模块,用于配置监控任务并生成监控任务列表,还用于定时获取监控任务列表并生成对应的prometheus配置文件,还用于采集并返回监控数据给prometheus监控服务模块;
prometheus监控服务模块,用于根据prometheus配置文件调度监控任务列表中的监控任务进行监控数据采集、监控数据存储、报警判断和报警回调;
所述业务系统包括业务系统展示模块,用于根据prometheus监控服务模块存储的监控数据以及报警回调的报警信息展示监控图表和报警通知;
所述监控数据采集模块、prometheus监控服务模块和业务系统展示模块依次连接。
2.根据权利要求1所述的基于prometheus服务的系统监控装置,其特征在于,所述监控数据采集模块包括:
数据采集组件,用于采集并返回监控数据给prometheus监控服务模块,所述监控数据包括系统运行情况、基础服务状态以及根据预先配置的脚本采集的自定义数据,还用于将自定义数据转换为prometheus标准格式;
监控任务管理单元,用于进行监控任务的注册、删除、修改和查询,并生成监控任务列表,还用于定时获取监控任务列表并生成对应的prometheus配置文件。
3.根据权利要求1所述的基于prometheus服务的系统监控装置,其特征在于,所述prometheus监控服务模块包括:
prometheus服务端,用于获取prometheus配置文件并根据prometheus配置文件得到监控任务列表中所有监控任务的访问地址,根据所述监控任务的访问地址采集对应服务器节点中的监控数据采集模块返回的监控数据,将监控数据发送给本地时序数据库,并根据预先配置的报警规则判断是否报警,若报警则生成报警信息;
报警管理组件,用于将prometheus服务端的报警信息发送到业务系统展示模块;
本地时序数据库,用于存储prometheus服务端采集的监控数据。
4.根据权利要求1所述的基于prometheus服务的系统监控装置,其特征在于,所述业务系统展示模块包括:
监控图表单元,用于获取prometheus监控服务模块存储的监控数据,根据监控数据绘制监控图表;
报警通知单元,用于获取prometheus监控服务模块的报警管理组件报警回调的报警信息,然后将报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知,并生成供业务系统的web前端查询报警信息的接口。
5.一种基于prometheus服务的系统监控方法,其特征在于,步骤1~4任一所述的基于prometheus服务的系统监控装置的监控数据采集模块、prometheus监控服务模块和业务系统展示模块分别设置于集群的每台服务器节点中,每台服务器节点实现监控功能包括以下步骤:
S1)监控数据采集模块的监控任务管理单元以预设的第一时段为间隔查询监控任务列表并生成对应的prometheus配置文件;
S2)prometheus监控服务模块的prometheus服务端获取prometheus配置文件并根据prometheus配置文件得到监控任务列表中所有监控任务的访问地址,然后根据各监控任务的访问地址采集对应服务器节点中监控数据采集模块的数据采集组件返回的监控数据;
S3)prometheus服务端将监控数据存储在prometheus监控服务模块的本地时序数据库;
S4)promethues服务端根据预先配置的报警规则判断监控数据是否触发报警,如果触发则发送报警信息到prometheus监控服务模块的报警管理组件,报警管理组件根据预设的第二时段内收到的所有报警信息生成报警信息列表,将报警信息列表打包为报警回调数据包并通过http接口发送给业务系统展示模块;
S5)业务系统展示模块的报警通知单元收取报警管理组件的报警回调数据包并解析得到报警信息列表,然后将报警信息列表中的报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知,并生成供业务系统的web前端查询报警信息的接口。
6.根据权利要求5所述的基于prometheus服务的系统监控方法,其特征在于,步骤S3)之后还包括数据查询的步骤,具体包括:
A1)prometheus服务端获取业务系统转发的查询请求,根据查询请求中的时间在本地时序数据库匹配得到指定的监控数据;
A2)prometheus服务端将指定的监控数据发送给业务系统展示模块的监控图表单元,监控图表单元根据指定的监控数据绘制监控图表。
7.根据权利要求5所述的基于prometheus服务的系统监控方法,其特征在于,步骤S1)之前还包括配置监控任务的步骤,具体包括:监控任务管理单元调用http接口配置mysql数据库中的监控任务并生成新的监控任务列表替换原监控任务列表。
8.根据权利要求5所述的基于prometheus服务的系统监控方法,其特征在于,步骤S2)中根据各监控任务的访问地址采集对应服务器节点中监控数据采集模块的数据采集组件返回的监控数据包括以下步骤:
S21)prometheus服务端根据各监控任务的访问地址匹配所有服务器节点中得到对应服务器节点;
S22)对应服务器节点中的数据采集组件采集系统运行情况、基础服务状态以及根据预先配置的脚本采集自定义数据,将自定义数据转换为prometheus标准格式后与系统运行情况、基础服务状态一同作为监控数据返回给prometheus服务端;
S23)prometheus服务端对收到的监控数据增加预先配置的标签。
9.根据权利要求5所述的基于prometheus服务的系统监控方法,其特征在于,步骤S3)之后还包括本地时序数据库空间优化的步骤,具体包括:以预设的第三时段为间隔,判断是否存在过期监控数据,是则删除过期监控数据并压缩剩余监控数据,否则压缩所有未压缩的监控数据。
10.根据权利要求5所述的基于prometheus服务的系统监控方法,其特征在于,步骤S5)中将报警信息列表中的报警信息存储在mysql数据库中并根据报警信息中的报警级别生成对应的报警通知包括以下步骤:
S51)报警通知单元筛选报警信息列表中的目标报警信息并存储在mysql数据库中,所述目标报警信息为mysql数据库中不存在匹配结果或者mysql数据库中存在匹配结果但匹配结果的报警状态为已恢复的报警信息;
S52)报警通知单元根据mysql数据库中未恢复的报警信息生成对应的报警通知;
S53)报警通知单元等待并监听报警恢复消息,若监听到报警恢复信息,跳转步骤S54),若等待超时,返回步骤S52);
S54)报警通知单元根据报警恢复信息修改mysql数据库中对应报警信息的报警状态为已恢复;
S55)返回步骤S52)直到mysql数据库中所有报警信息的报警状态均为已恢复。
CN202111138119.1A 2021-09-27 2021-09-27 一种基于prometheus服务的系统监控装置及方法 Pending CN113986649A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111138119.1A CN113986649A (zh) 2021-09-27 2021-09-27 一种基于prometheus服务的系统监控装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111138119.1A CN113986649A (zh) 2021-09-27 2021-09-27 一种基于prometheus服务的系统监控装置及方法

Publications (1)

Publication Number Publication Date
CN113986649A true CN113986649A (zh) 2022-01-28

Family

ID=79736941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111138119.1A Pending CN113986649A (zh) 2021-09-27 2021-09-27 一种基于prometheus服务的系统监控装置及方法

Country Status (1)

Country Link
CN (1) CN113986649A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499431A (zh) * 2022-07-29 2022-12-20 天翼云科技有限公司 一种公有云多资源池运维监控系统
CN116340732A (zh) * 2023-05-29 2023-06-27 天翼云科技有限公司 一种过期数据的自动清理方法、装置及电子设备
CN117033117A (zh) * 2023-07-05 2023-11-10 广州市玄武无线科技股份有限公司 一种实时业务监控管理方法、系统、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499431A (zh) * 2022-07-29 2022-12-20 天翼云科技有限公司 一种公有云多资源池运维监控系统
CN116340732A (zh) * 2023-05-29 2023-06-27 天翼云科技有限公司 一种过期数据的自动清理方法、装置及电子设备
CN116340732B (zh) * 2023-05-29 2023-08-04 天翼云科技有限公司 一种过期数据的自动清理方法、装置及电子设备
CN117033117A (zh) * 2023-07-05 2023-11-10 广州市玄武无线科技股份有限公司 一种实时业务监控管理方法、系统、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN113986649A (zh) 一种基于prometheus服务的系统监控装置及方法
US11646953B2 (en) Identification of network issues by correlation of cross-platform performance data
US7895167B2 (en) System and method for analysis and management of logs and events
JP6050812B2 (ja) デバイス管理方法、装置、およびシステム
US20070124437A1 (en) Method and system for real-time collection of log data from distributed network components
US20130179793A1 (en) Enhancing visualization of relationships and temporal proximity between events
CN108509326B (zh) 一种基于nginx日志的服务状态统计方法及系统
US20080250128A1 (en) Automated time zone based grouping
US20040181685A1 (en) System and method for handling distribution of alerts
CN103856354A (zh) 一种集群存储系统日志统一管理实现方法
WO2019187208A1 (ja) 情報処理装置、データ管理システム、データ管理方法及びデータ管理プログラムが格納された非一時的なコンピュータ可読媒体
CN111708611B (zh) 轻量级Kubernetes监控系统及方法
US7734740B2 (en) Configuration management apparatus and related methods
CN112417042A (zh) 一种处理业务请求的方法和装置
US20100306364A1 (en) Sorting systems in a tree
US8775484B2 (en) Data management apparatus and method
US6609155B1 (en) Method and apparatus for providing relationships in simple network management protocol management information base
CN113037549A (zh) 一种运维环境告警方法
CN111124542A (zh) 一种配置信息管理系统
CN114168672B (zh) 日志数据的处理方法、装置、系统以及介质
CN112685486B (zh) 数据库集群的数据管理方法、装置、电子设备及存储介质
CN101764707A (zh) 网络配置事件通知消息的处理方法、转换装置和处理系统
CN111698109A (zh) 监控日志的方法和装置
Kleindienst Building a real-world logging infrastructure with Logstash, Elasticsearch and Kibana
US20180329792A1 (en) Network device monitoring

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