服务器硬件监控系统
专利摘要:本发明提供了一种服务器硬件监控系统,本发明采用SNMP协议与IPMI协议相结合的方案,在采集过程中采用针对每类设备型号进行单独的SNMP协议与IPMI协议的采集模板配置,以统一的模板扩展到该类设备型号所有服务器的硬件采集中,极大增强了可扩展性。提供统一的Web Service数据接口,对外提供服务器硬件性能数据与故障数据的访问服务。
专利说明:
服务器硬件监控系统
[0001] 技术领域
[0002] 本发明涉及服务器硬件监控技术领域,尤其是一种服务器硬件监控系统。
[0003] 背景技术
[0004] 在信息机房服务器硬件之上运行有操作系统、数据库、应用系统、云计算等应用服务,当承载各类服务的服务器硬件出现硬件故障时,如未及时发现并进行处理,会给各类应用服务的稳定运行带来很多不确定因素。因此,当服务器出现硬件故障时,能第一时间发现该硬件故障,缩短告故障响应时间,降低服务器硬件故障影响范围,为服务器硬件故障处理争取宝贵的时间,及时消除由服务器硬件故障给各类服务运行带来的不确定因素。
[0005] 然而,目前采用人工进入信息机房,通过人工定时定点的方式查看服务器硬件指示灯的运行状态(如温度、电压、风扇工作状态、电源状态等),判断服务器硬件是否存在故障。采用这种人工方式对服务器硬件进行巡检,不仅费时费力效率低下,而且无法实时掌控服务器硬件运行的健康状态,也无法及时发现服务器硬件故障。
[0006] 本发明的目的是:提供一种服务器硬件监控系统,它能自动采集服务器硬件性能运行数据,实时监控服务器硬件的运行监控状态;以及,当服务器出现硬件故障时,能第一时间获取该硬件故障并向告警系统推送告警。以解决现有通过人工的方式巡检服务器硬件存在的问题。
[0007] 本发明是这样实现的:服务器硬件监控系统,其组成包括硬件性能数据采集模块、硬件故障告警收集模块、硬件底层操作模块及数据推送接口模块;
[0008] 其中,所述的硬件性能数据采集模块包括SNMP协议采集子模块以及IPMI协议采集子模块,采用SNMP协议与IPMI协议相结合,采集完整的服务器硬件监控数据,SNMP协议采集子模块以及IPMI协议采集子模块以定时器的方式按设定频率自动开始采集任务,执行完成后,等待下一个采集周期继续执行采集任务;
[0009] 硬件故障告警收集模块,基于SNMP协议以trap协议数据单元的形式采集服务器原始硬件故障告警,通过提取服务器硬件原始故障告警的OID,与服务器的MIB库中定义的OID进行解析,将服务器硬件原始OID故障告警转为为标准告警推送至告警系统发出告警;SNMP协议采集子模块以及IPMI协议采集子模块均采用配置采集模板的形式实现横向添加服务器设备高度的可扩展性,针对每一类服务器型号设备,均配置有独立的采集模板,当需要将更多该服务器型号设备纳入监控时,仅需要增加该设备的IP地址以及相关参数配置,即可实现按统一采集模板对该设备进行无差别的数据采集。并且以线程池多线程的方式并发批量执行采集任务,详见具体实施方式。
[0010] 硬件底层操作模块,基于IPMI协议通过标准命令的方式向服务器管理口发送控制命令,提供通过硬件层面对服务器进行远程开机、关机及重启BMC的功能;当服务器操作系统出现卡死,无法登陆到该服务器操作系统对服务器进行重启时,采用硬件底层操作模块,即可通过远程的方式从服务器硬件的底层操作对服务器进行重启。
[0011] 数据推送接口模块,基于Web Service数据接口的方式对外提供数据访问接口;Web Service基于XML文档进行服务描述、服务请求和反馈结果。可以在Internet上通过HTTP协议进行传递,很容易的被访问和返回结果。同时,由于Web Service的相关标准都是W3C的开放协议,与平台和操作系统无关,不同的平台和操作系统上的Web Service的实现在很大程度上可以做到互操作,这就使异构平台上应用的集成以及数据交互变得更容易。
[0012] 所述的硬件性能数据采集模块的采集任务包括:服务器风扇转速、服务器风扇状态、服务器进风口温度、CPU温度、内存温度、硬盘状态、RAID控制卡温度、电源状态、电源功率、物理内存状态、电源调制模块温度、BMC硬件信息、底盘信息、底盘电源相关策略及Watchdog信息。
[0013] 当被监控的服务器硬件设备出现这些指标异常信息时,通过数据推送接口模块向告警系统推送告警,让管理员及时发现当前存在的服务器硬件设备异常信息。
[0014] 由于各类品牌的服务器对SNMP协议和IPMI协议的支持力度均不同,单一使用其中一种协议难以采集到完整的服务器硬件性能数据,因此本发明基于SNMP协议和IPMI协议相结合的方式采集完整的服务器硬件性能运行数据,本发明采用SNMP协议与IPMI协议相结合的方案,在采集过程中采用针对每类设备型号进行单独的SNMP协议与 IPMI协议的采集模板配置,以统一的模板扩展到该类设备型号所有服务器的硬件采集中,极大增强了可扩展性。提供统一的Web Service 数据接口,对外提供服务器硬件性能数据与故障数据的访问服务。
[0015] 附图说明
[0016] 图1为本发明结构框图;
[0017] 图2为本发明SNMP协议采集原理图;
[0018] 图3为本发明IPMI协议采集原理图;
[0019] 图4为本发明硬件故障告警采集原理图。
[0020] 具体实施方式
[0021] 本发明的实施例1:服务器硬件监控系统,SNMP协议采集模块(图 2采集原理图),基于SNMP协议采集服务器硬件性能数据,通过SNMP4J 组件进行开发。SNMP协议虽然为标准的简单网络管理协议,但不同的服务器型号具有不同的OID特征码,为此,该模块提供SNMP协议采集模板,针对每类服务器型号同一采集指标具有不同OID的特性,该模块为每一类服务器型号设计了独立的SNMP硬件采集模板,当有新服务器型号需要纳入监控时,首次只需定义该服务器型号的SNMP 采集模板,后期只需填入服务器的IP地址及SNMP参数即可实现更多该类服务器的接入。
[0022] SNMP协议采集模块开始工作时,该模块将会访问数据库系统服务器硬件采集任务表,获取服务器硬件采集任务。同时,该模块通过访问数据库系统SNMP采集模板表,获取各类服务器设备的SNMP采集 OID解析模板。由于SNMP协议的采集方式最终通过是通过OID进行采集的,因此,该模块将自动的把服务器硬件采集任务与SNMP采集模板进行匹配生成SNMP协议采集任务队列,此任务队列包含了所有服务器采集指标与OID的对应关系。最后以线程池高并发的方式批量执行SNMP协议采集任务队列中的采集任务,并对采集数据进行高并发的入库。当通过SNMP协议采集模块采集到异常的服务器硬件运行状态数据时,同时会通过数据推送接口以Web Service的方式向告警系统推送告警。
[0023] IPMI协议采集模块(图3采集原理图),基于IPMI协议采集服务器硬件性能数据,通过部署在Linux操作系统环境,采用ipmitool 工具包实现IPMI命令。IPMI是一种开放标准的硬件管理接口协议,但不同服务器型号对于同一个IPMI命令具有不同的返回数据集。针对每类服务器型号同一采集指标具有不同返回数据集的特性,该模块为每一类服务器型号设计了独立的IPMI硬件采集模板,当有新服务器型号需要纳入监控时,首次只需定义该服务器型号的IPMI采集模板,后期只需填入服务器的IP地址及IPMI参数即可实现更多服务器的接入。
[0024] IPMI协议高并发采集组件将全自动把服务器硬件采集任务与 IPMI采集模板进行匹配生成IPMI协议采集任务队列,此任务队列包含了所有服务器采集指标与IPMI返回数据集的对应关系。然后通过以线程池高并发的方式批量执行IPMI协议采集任务队列中的采集任务,并对采集数据进行高并发的入库。
[0025] IPMI协议采集模块开始工作时,该模块将会访问数据库系统服务器硬件采集任务表,获取服务器硬件采集任务。同时,该模块通过访问数据库系统IPMI采集模板表,获取各类服务器设备的IPMI采集返回数据集的解析模板。由于IPMI协议的采集方式最终需要通过返回数据集的解析模板对采集返回数据进行解析,才能从返回数据集中提取采集指标值。因此,该模块将自动的把服务器硬件采集任务与IPMI 采集模板进行匹配生成IPMI协议采集任务队列,此任务队列包含了所有服务器采集指标与IPMI返回数据集的解析对应关系。最后以线程池高并发的方式批量执行SNMP协议采集任务队列中的采集任务,并对采集数据进行高并发的入库。当通过IPMI协议采集模块采集到异常的服务器硬件运行状态数据时,同时会通过数据推送接口以Web Service的方式向告警系统推送告警。
[0026] 硬件故障告警收集模块(图4采集原理图)。通过研究SNMP协议 trap协议数据单元,结合实践发现SNMP Trap数据的发送原理,当被监控端出现特定事件,可能是性能问题,甚至是网络设备接口宕掉、服务器硬件问题等,代理端会给管理站发告警事件。因此,基于此原理,设计了本硬件故障告警采集模块。
[0027] 当服务器出现硬件故障时,会向硬件监控系统硬件故障告警监听端口推送SNMPtrap告警消息,SNMPtrap告警消息为带有OID描述的原始故障告警消息,通过原始OID告警是可能得知具体告警内容的,必须要经过告警解析模块的解析,转换为标准告警,才能知道是服务器具体的哪个硬件出现了故障告警。硬件故障告警采集模块通过监听网络端口,当收到服务器发出的原始告警后,一方面会立即将原始告警进行入库处理,另一方面会提取原始告警OID值,将告警信息与告警OID值提交给告警解析模块。告警解析模块通过告警OID与MIB进行解析,将该带有OID的原始告警信息转换为标准告警信息入库,并立即通过SNMPtrap标准告警推送接口向外推送服务器硬件故障告警。
[0028] 硬件底层操作模块,本模块提供服务器基本操作有:硬件开机、硬件关机、重启BMC。基于Linux操作系统下ipmitool工具包实现 IPMI底层操作控制命令。当需要对某服务器进行操作时,会从数据库中提取该服务器的IPMI配置参数信息(IPMI用户名、密码、端口等),然后装配成标准的IPMI操作命令,通过ipmitool工具包向远程服务器硬件管理口发送标准IPMI执行命令,服务器硬件管理口接收到该命令后,即可执行对应操作完成对服务器硬件底层的控制。
[0029] 本发明所述并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。显然本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术范围内,则本发明也意图包含这些改动和变型在内。
权利要求:1.一种服务器硬件监控系统,其特征在于:其组成包括硬件性能数据采集模块、硬件故障告警收集模块、硬件底层操作模块及数据推送接口模块;
其中,所述的硬件性能数据采集模块包括SNMP协议采集子模块以及IPMI协议采集子模块,采用SNMP协议与IPMI协议相结合,采集完整的服务器硬件监控数据,SNMP协议采集子模块以及IPMI协议采集子模块以定时器的方式按设定频率自动开始采集任务,执行完成后,等待下一个采集周期继续执行采集任务;
硬件故障告警收集模块,基于SNMP协议以trap协议数据单元的形式采集服务器原始硬件故障告警,通过提取服务器硬件原始故障告警的OID,与服务器的MIB库中定义的OID进行解析,将服务器硬件原始OID故障告警转为为标准告警推送至告警系统发出告警;
硬件底层操作模块,基于IPMI协议通过标准命令的方式向服务器管理口发送控制命令,提供通过硬件层面对服务器进行远程开机、关机及重启BMC的功能;
数据推送接口模块,基于Web Service数据接口的方式对外提供数据访问接口;WebService基于XML文档进行服务描述、服务请求和反馈结果。
2.根据权利要求1所述的服务器硬件监控系统,其特征在于:所述的硬件性能数据采集模块的采集任务包括:服务器风扇转速、服务器风扇状态、服务器进风口温度、CPU温度、内存温度、硬盘状态、RAID控制卡温度、电源状态、电源功率、物理内存状态、电源调制模块温度、BMC硬件信息、底盘信息、底盘电源相关策略及Watchdog信息。
3.根据权利要求1所述的服务器硬件监控系统,其特征在于:当被监控的服务器硬件设备出现这些指标异常信息时,通过数据推送接口模块向告警系统推送告警,让管理员及时发现当前存在的服务器硬件设备异常信息。
公开号:CN110597681
申请号:CN201910341627.6A
发明人:李飞 史峻丞 姚华 冉玄 李环荣
申请人:贵州广思信息网络有限公司
申请日:2019-04-26
公开日:2019-12-20