一种服务器硬件信息获取装置、方法、设备及介质与流程

文档序号:18104744发布日期:2019-07-06 11:34阅读:212来源:国知局
本申请涉及服务器
技术领域
:,特别涉及一种服务器硬件信息获取装置、方法、设备及介质。
背景技术
::目前,为了获取服务器的硬件信息,通常是基于ipmitool命令和系统命令来获取的,通过上述不同的命令可以获取到不同的硬件信息。然而,从用户的角度来说,为了获取不同的硬件信息,需要了解不同的命令结构和相关知识,学习成本较高,并且整体的硬件信息获取效率较低。技术实现要素:有鉴于此,本申请的目的在于提供一种服务器硬件信息获取装置、方法、设备及介质,能够有效提高服务器硬件信息的整体获取效率,并提升用户获取服务器硬件信息过程中的便捷体验。其具体方案如下:第一方面,本申请公开了一种服务器硬件信息获取装置,包括:信息获取模块,用于基于snmp协议,获取服务器的硬件信息;信息解析模块,用于对所述硬件信息进行解析;信息保存模块,用于将解析后得到的信息保存至预设的数据库中。可选的,所述信息获取模块,具体用于基于snmp协议,并通过执行python脚本获取服务器的硬件信息。可选的,所述信息获取模块,包括:触发单元,用于监测当前状态是否满足触发条件,如果是,则产生触发信号;与所述触发单元连接的位于javaapplication中的snmp代理,用于当获取到所述触发信号,则基于snmp协议,并通过执行python脚本获取服务器的硬件信息。可选的,所述信息获取模块,还包括:进程启动单元,用于在所述触发单元启动相应的工作流程之前,启动守护进程。可选的,所述服务器硬件信息获取装置,还包括:信息访问模块,用于访问所述数据库中保存的信息。可选的,服务器硬件信息获取装置,所述数据库为mib数据库。可选的,所述信息访问模块,具体为:mib浏览器,用于通过snmp协议访问所述mib数据库中保存的信息。第二方面,本申请公开了一种服务器硬件信息获取方法,包括:基于snmp协议,获取服务器的硬件信息;对所述硬件信息进行解析;将解析后得到的信息保存至预设的数据库中。第三方面,本申请公开了一种服务器硬件信息获取设备,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现前述公开服务器硬件信息获取方法。第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的服务器硬件信息获取方法。可见,本申请在获取服务器的硬件信息时,是基于snmp协议来获取的,并对获取到的硬件信息进行解析,然后将解析得到的信息保存至预设的数据库中。由于相对于现有的通过ipmitool命令和系统命令来获取服务器硬件信息的方式,基于snmp协议能够获取到更加全面完整的硬件信息,如处理器信息、内存信息、风扇信息、电源信息、网络信息、系统信息、主板信息、硬盘信息、进程信息、服务信息、bmc信息、hba信息和传感器信息等等,均可以通过snmp协议来获取到。由此有效提高了服务器硬件信息的整体获取效率,并提升用户获取服务器硬件信息过程中的便捷体验。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请公开的一种服务器硬件信息获取装置结构示意图;图2为本申请公开的一种服务器硬件信息获取装置的具体框架示意图;图3为本申请公开的一种硬件信息获取流程图;图4为本申请公开的一种服务器硬件信息获取方法流程图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。目前,为了获取服务器的硬件信息,通常是基于ipmitool命令和系统命令来获取的,通过上述不同的命令可以获取到不同的硬件信息。然而,从用户的角度来说,为了获取不同的硬件信息,需要了解不同的命令结构和相关知识,学习成本较高,并且整体的硬件信息获取效率较低。为此,本申请提供了一种服务器硬件信息获取方案,能够有效提高服务器硬件信息的整体获取效率,并提升用户获取服务器硬件信息过程中的便捷体验。参见图1所示,本申请实施例公开了一种服务器硬件信息获取装置,包括:信息获取模块11,用于基于snmp协议(snmp,即simplenetworkmanagementprotocol,简单网络管理协议),获取服务器的硬件信息;信息解析模块12,用于对所述硬件信息进行解析;信息保存模块13,用于将解析后得到的信息保存至预设的数据库中。本实施例中,所述信息获取模块,具体可以用于基于snmp协议,并通过执行python脚本获取服务器的硬件信息。需要指出的是,本实施例中的服务器具体可以是power9服务器。本实施例中,所述信息获取模块,具体可以包括:触发单元,用于监测当前状态是否满足触发条件,如果是,则产生触发信号;与所述触发单元连接的位于javaapplication中的snmp代理,用于当获取到所述触发信号,则基于snmp协议,并通过执行python脚本获取服务器的硬件信息。进一步的,本实施例中的服务器硬件信息获取装置,还可以包括:信息访问模块,用于访问所述数据库中保存的信息。其中,所述数据库具体可以为mib数据库(mib,即managementinformationbase,管理信息库)。参见图2所示,所述信息访问模块,具体可以为:mib浏览器,用于通过snmp协议访问所述mib数据库中保存的信息。另外,通过图2中的mibfiles,可以定义收集到的具体数据项。进一步的,所述信息获取模块,还可以包括:进程启动单元,用于在所述触发单元启动相应的工作流程之前,启动守护进程。与此对应的工作流程可以参见图3所示,图3中,本实施例可以先启动一个守护进程,之后启动执行获取信息的触发器;当达到时间,java触发器执行python命令,并解析python返回结果;将返回的结果写入mib数据库。另外,需要指出的是,通过本发明实施例,能够获取的服务器硬件信息具体包括:处理器信息、内存信息、风扇信息、电源信息、网络信息、系统信息、主板信息、硬盘信息、进程信息、服务信息、bmc信息、hba信息、传感器信息等。其中,处理器信息如下:cpuobjectidentifier::={inspurobjects1}cpuusageobject-typecputableobject-typecpuentryobject-typecpuindexobject-typecpuidobject-typecputempobject-typecpusocketobject-typecpuversionobject-typecpuexternalclockspeedobject-typecpucurrentclockspeedobject-typecpustatusobject-typecpucorecountobject-typecpucoreenabledobject-typecputhreadcountobject-type内存信息如下:memobjectidentifier::={inspurobjects3}memusageobject-typememtotalobject-typememusedobject-typememfreeobject-typeswapusageobject-typeswaptotalobject-typeswapusedobject-typeswapfreeobject-typememtableobject-typemementryobject-typememindexobject-typememsizeobject-typememlocatorobject-typememtypeobject-typememmanufacturerobject-typememserialnumberobject-typememstatusobject-type风扇信息如下:fanobjectidentifier::={inspurobjects5}fanmodeobject-typefantableobject-typefanentryobject-typefanindexobject-typefanidobject-typefanpresentobject-typefanstatusobject-typefancurrentspeedobject-typefandutyratioobject-type电源信息如下:powerobjectidentifier::={inspurobjects6}powertableobject-typepowerentryobject-typepowerindexobject-typepowerstatusobject-typepowertemperatureobject-typepowerratepowerobject-typepoweroutputpowerobject-typepowerinputpowerobject-type网络信息如下:networkobjectidentifier::={inspurobjects7}networktableobject-typenetworkentryobject-typenetworkindexobject-typenetworknameobject-typenetworkipaddressobject-typenetworkmaskobject-typenetworkgatewayobject-typenetworkmacaddressobject-typenetworkspeedobject-typenetworklinkstatusobject-typenetworkduplexobject-typenetworkfirmwareversionobject-typenetworkdrivernameobject-typenetworkdriverversionobject-typenetworkdeviceidobject-typenetworkfunctionidobject-typenetworkperftableobject-typenetworkperfentryobject-typenetworkperfindexobject-typenetworkperfnameobject-typenetworkperfrecvbytesobject-typenetworkperfrecvpacketsobject-typenetworkperfrecvspeedobject-typenetworkperfdropinbytesobject-typenetworkperfdropinrateobject-typenetworkperfsentbytesobject-typenetworkperfsentpacketsobject-typenetworkperfsentspeedobject-typenetworkperfdropoutbytesobject-typenetworkperfdropoutrateobject-type系统信息如下:systemobjectidentifier::={inspurobjects8}uuidobject-typeosobject-typemanufacturerobject-typeserverversionobject-typeservernameobject-typeserverserialobject-typeserverassettagobject-typeledstatusobject-typeinlettemperatureobject-type主板信息如下:boardobjectidentifier::={inspurobjects9}boardmanufacturerdateobject-typeboardmanufacturerobject-typeboardproductobject-typeboardserialobject-typeboardpnobject-type硬盘信息如下:diskobjectidentifier::={inspurobjects11}readcountobject-typewritecountobject-typereadbytesobject-typewritebytesobject-typereadtimeobject-typewritetimeobject-typebusytimeobject-typelogicaldisktableobject-typelogicaldiskentryobject-typelogicaldiskindexobject-typelogicaldisknameobject-typelogicaldisktotalobject-typelogicaldiskusedobject-typelogicaldiskfreeobject-typelogicaldiskusageobject-typephysicaldevicetableobject-typephysicaldeviceentryobject-typephysicaldeviceindexobject-typephysicaldevicecontrolleridobject-typephysicaldeviceenclosureidobject-typephysicaldeviceslotobject-typephysicaldeviceidobject-typephysicaldevicestatusobject-typephysicaldevicesizeobject-typephysicaldeviceinterfaceobject-typephysicaldevicemediatypeobject-typephysicaldevicetemperatureobject-typephysicaldevicesnobject-typephysicaldevicemanufacturerobject-typephysicaldevicemodelnumberobject-typephysicaldevicefirmwareobject-typephysicaldevicespeedobject-typephysicaldeviceospartitionobject-typecontrollertableobject-typecontrollerentryobject-typecontrollerindexobject-typecontrolleridobject-typecontrollermodelobject-typecontrollerfirmwareversionobject-typecontrollerstatusobject-typelogicaldevicetableobject-typelogicaldeviceentryobject-typelogicaldeviceindexobject-typelogicaldevicecontrolleridobject-typelogicaldeviceidobject-typelogicaldevicelevelobject-typelogicaldevicestatusobject-typelogicaldevicesizeobject-typelogicaldevicenameobject-typelogicaldevicesegmentobject-typelogicaldevicestripsizeobject-typelogicaldevicepartitionedobject-typelogicaldeviceospartitionobject-typecontrollerbbutableobject-typecontrollerbbuentryobject-typecontrollerbbuindexobject-typecontrollerbbucontrolleridobject-typecontrollerbbubatterytypeobject-typecontrollerbbuvoltageobject-typecontrollerbbudesighvoltageobject-typecontrollerbbutemperatureobject-typecontrollerbbubatterystateobject-typecontrollerbbuchargingstatusobject-typecontrollerbbupackenergyobject-typecontrollerbbudesigncapacityobject-typecontrollerbbuserialnumberobject-typecontrollerbbumanufacturerobject-typecontrollerbbufirmwareversionobject-typecontrollerbbudevicenameobject-type进程信息如下:processobjectidentifier::={inspurobjects12}processtableobject-typeprocessentryobject-typeprocessindexobject-typeprocesspidobject-typeprocessnameobject-typeprocessstatusobject-typeprocessusernameobject-typeprocesscreatetimeobject-typeprocesscpupercentobject-typeprocessmempercentobject-typeprocesscmdobject-type服务信息如下:serviceobjectidentifier::={inspurobjects13}servicetableobject-typeserviceentryobject-typeserviceindexobject-typeservicenameobject-typeservicedispalynameobject-typeservicestatusobject-typebmc信息如下:bmcobjectidentifier::={inspurobjects14}bmcversionobject-typeipmiversionobject-typebiosversionobject-typebiosdateobject-typehba信息如下:hbaobjectidentifier::={inspurobjects16}hbatableobject-typehbaentryobject-typehbaindexobject-typehbadescobject-typehbamodelobject-type传感器信息如下:sensorobjectidentifier::={inspurobjects17}sensortableobject-typesensorentryobject-typesensorindexobject-typesensornameobject-typesensorvalueobject-typesensorunitobject-typesensorstatusobject-typeinspureventsobjectidentifier::={inspurregmib4}inspurconfobjectidentifier::={inspurregmib5}inspurcompliancesobjectidentifier::={inspurconf1}可见,本申请实施例在获取服务器的硬件信息时,是基于snmp协议来获取的,并对获取到的硬件信息进行解析,然后将解析得到的信息保存至预设的数据库中。由于相对于现有的通过ipmitool命令和系统命令来获取服务器硬件信息的方式,基于snmp协议能够获取到更加全面完整的硬件信息,如处理器信息、内存信息、风扇信息、电源信息、网络信息、系统信息、主板信息、硬盘信息、进程信息、服务信息、bmc信息、hba信息和传感器信息等等,均可以通过snmp协议来获取到。由此有效提高了服务器硬件信息的整体获取效率,并提升用户获取服务器硬件信息过程中的便捷体验。参见图4所示,本申请实施例公开了一种服务器硬件信息获取方法,包括:步骤s11:基于snmp协议,获取服务器的硬件信息;步骤s12:对所述硬件信息进行解析;步骤s13:将解析后得到的信息保存至预设的数据库中。其中,关于上述各个步骤更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。可见,本申请实施例在获取服务器的硬件信息时,是基于snmp协议来获取的,并对获取到的硬件信息进行解析,然后将解析得到的信息保存至预设的数据库中。由于相对于现有的通过ipmitool命令和系统命令来获取服务器硬件信息的方式,基于snmp协议能够获取到更加全面完整的硬件信息,如处理器信息、内存信息、风扇信息、电源信息、网络信息、系统信息、主板信息、硬盘信息、进程信息、服务信息、bmc信息、hba信息和传感器信息等等,均可以通过snmp协议来获取到。由此有效提高了服务器硬件信息的整体获取效率,并提升用户获取服务器硬件信息过程中的便捷体验。进一步的,本申请还公开了一种服务器硬件信息获取设备,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现前述实施例公开的服务器硬件信息获取方法。进一步的,本申请还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的服务器硬件信息获取方法。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
:内所公知的任意其它形式的存储介质中。以上对本申请所提供的一种服务器硬件信息获取装置、方法、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1