一種基于Nagios和BMC的服務(wù)器監(jiān)控管理方法
【專利摘要】本發(fā)明提出一種基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,實(shí)現(xiàn)了Nagios對服務(wù)器帶外監(jiān)控信息的交互訪問,擴(kuò)展服務(wù)器監(jiān)控管理的路徑,提高了服務(wù)器的可用性。本發(fā)明主要包括:服務(wù)器節(jié)點(diǎn)安裝及配置Nagios、面向BMC的Nagios擴(kuò)展插件實(shí)現(xiàn)、基于IPMI協(xié)議編寫python腳本實(shí)現(xiàn)、Nagios和BMC間硬件通信接口實(shí)現(xiàn)、服務(wù)器遠(yuǎn)程監(jiān)控管理客戶端等部分。通過Nagios工具與BMC控制器的信息交互,在原有的基于Nagios的帶內(nèi)監(jiān)控管理系統(tǒng)基礎(chǔ)上擴(kuò)展了面向BMC功能插件,在原有基于BMC的帶外監(jiān)控管理系統(tǒng)基礎(chǔ)上增加了面向Nagios的信息獲取,通過兩系統(tǒng)的關(guān)鍵信息交互提高服務(wù)器系統(tǒng)可用性。
【專利說明】—種基于Nagios和BMC的服務(wù)器監(jiān)控管理方法
[0001]【技術(shù)領(lǐng)域】
本發(fā)明設(shè)計(jì)一種服務(wù)器技術(shù),具體地說是一種基于Nagios和BMC的服務(wù)器監(jiān)控管理方法。
【背景技術(shù)】
[0002]當(dāng)今社會的各個(gè)方面服務(wù)器都發(fā)揮著重要的作用,無論是國防、科技、金融保險(xiǎn),還是銀行、能源、政府企業(yè),幾乎所有方面都有服務(wù)器的存在。為保障上述各項(xiàng)工作的穩(wěn)定運(yùn)行,如果實(shí)時(shí)有效的對服務(wù)器進(jìn)行監(jiān)控管理工作就成了關(guān)鍵的前提。對于服務(wù)器監(jiān)控的工具很多種,諸如開源工具Ganglia、Nagios、Zabbix,及專業(yè)工具Pingdom、interSeptorPro、Nimsoft等,這些工具可以監(jiān)控到服務(wù)器方方面面的信息,從運(yùn)行時(shí)間、性能到安全,甚至到服務(wù)器所處的物理環(huán)境指數(shù)。Ganglia用于測量數(shù)以千計(jì)的服務(wù)器節(jié)點(diǎn),提供系統(tǒng)靜態(tài)數(shù)據(jù)以及重要的性能度量數(shù)據(jù),尤其適用于云計(jì)算系統(tǒng);NagioS是一種服務(wù)器級和網(wǎng)絡(luò)監(jiān)控程序,它檢測主機(jī)和服務(wù),當(dāng)異常發(fā)生和解除時(shí)能提醒用戶。Zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能源解決方案;Pingdom可以監(jiān)測運(yùn)行時(shí)間和整體性能,并生成便于閱讀的表格和圖表,inters印tor是以太網(wǎng)數(shù)據(jù)中心和機(jī)架監(jiān)控系統(tǒng),它可以監(jiān)控機(jī)房和機(jī)架的環(huán)境狀況,一旦出現(xiàn)系統(tǒng)故障或可能危及業(yè)務(wù)連續(xù)性的其他情況就會發(fā)出預(yù)警;^S可以監(jiān)控服務(wù)器的核心資源,能夠集中管理遠(yuǎn)程進(jìn)程和服務(wù)?;旧贤ㄟ^這些工具可以了解到服務(wù)器可能會出現(xiàn)什么問題,并在問題出現(xiàn)之前解決它們。單一的開源工具功能有限,需要多種工具組合才能發(fā)揮有效的作用,而且無法得到專業(yè)的技術(shù)支持,但可以免費(fèi)獲得,而企業(yè)級專業(yè)工具功能強(qiáng)大并配有專業(yè)技術(shù)支持,但是價(jià)格卻很昂貴。
[0003]近年來采用開源工具對服務(wù)器系統(tǒng)進(jìn)行監(jiān)控和維護(hù)的就成了主流的解決方案,但由于這些開源監(jiān)控工具各有特點(diǎn)和側(cè)重點(diǎn),在實(shí)際監(jiān)控及維護(hù)過程很難將所有的工具都安裝,即使能夠安裝系統(tǒng)管理人員也很難有精力處理所有工具的工作情況,這樣就給監(jiān)控管理帶來了很大的問題。因此,如何既能有效的統(tǒng)合開源工具解決方案,簡化監(jiān)控管理流程,又能全面準(zhǔn)確地對服務(wù)器系統(tǒng)乃至服務(wù)器集群系統(tǒng)場合下服務(wù)器進(jìn)行監(jiān)控管理就成了亟需解決的問題。
【發(fā)明內(nèi)容】
[0004]針對如何既能有效的統(tǒng)合開源工具解決方案,簡化監(jiān)控管理流程,又能全面準(zhǔn)確地對服務(wù)器系統(tǒng)進(jìn)行監(jiān)控管理,本發(fā)明提出了一種基于Nagios和BMC的服務(wù)器監(jiān)控管理方法。
[0005]本發(fā)明包括:服務(wù)器節(jié)點(diǎn)安裝及配置Nagios、面向BMC的Nagios擴(kuò)展插件實(shí)現(xiàn)、基于IPMI協(xié)議的編寫python腳本實(shí)現(xiàn)、Nagios和BMC間硬件通信接口實(shí)現(xiàn)、服務(wù)器遠(yuǎn)程監(jiān)控管理客戶端等部分。
[0006]其中,服務(wù)器節(jié)點(diǎn)安裝及配置Nagios,需要在管理和被管理服務(wù)器節(jié)點(diǎn)上都安裝并進(jìn)行必要的配置,使Nagios能正常工作,即管理節(jié)點(diǎn)能通過Nagios獲得被管理節(jié)點(diǎn)的監(jiān)控管理信息;
其中,面向BMC的Nagios擴(kuò)展插件,主要目的是在Nagios和IPMI規(guī)范間建立交互接口文件,Nagios官網(wǎng)可以下載基于C語言編寫nagios_ipmi_monitor擴(kuò)展插件,本發(fā)明利用跨平臺性更好的腳本語言python實(shí)現(xiàn),并且在原有基礎(chǔ)上增加了面向BMC獲取Nagios監(jiān)控信息的接口文件。
[0007]1.Nagios 獲取 BMC 信息用 monitor_nagios_to_bmc_plugins 插件組主要包括電源、風(fēng)扇、電壓、溫度傳感器狀態(tài)獲取,以及能耗管理、日志信息導(dǎo)出等操作;
monitor_bmc_fan.py、monitor_bmc_temp.py>
monitor_bmc_psu.py、monitor_bmc_psu_control.py、
monitor_bmc_voltage.py、monitor_bmc_logs.py ;
2.BMC獲取Nagios信息用get_nagios_to_bmc_plugins插件組主要包括CPU利用率、內(nèi)存使用率、硬盤利用率、進(jìn)程狀態(tài)、網(wǎng)絡(luò)性能指標(biāo)等狀態(tài)信息:get_nagios_cpu_usgage.py、get_nagios_mem_usgage.py、get_nagios_ps_status.py、get_nagios_hdd_status.py、get_nagios_net_status.py;
其中,Nagios和BMC間硬件通信接口是基于LPC協(xié)議的KCS接口,適用于Intel X86平臺的CPU ;
其中,服務(wù)器遠(yuǎn)程監(jiān)控管理客戶端是安裝在BMC的Webserver中,用戶通過WebBrowser可以登錄訪問;
其中,服務(wù)器遠(yuǎn)程監(jiān)控管理客戶端部署在BMC端,其具備基本的帶外監(jiān)控管理功能,即資產(chǎn)信息檢測、遠(yuǎn)程控制維護(hù)、系統(tǒng)日志信息、事件告警等,另外基于Nagios提供的關(guān)鍵帶內(nèi)信息,增加了帶內(nèi)信息監(jiān)控;
其中,本發(fā)明通過Nagios工具與BMC控制器的信息交互,在原有的基于Nagios的帶內(nèi)監(jiān)控管理系統(tǒng)基礎(chǔ)上擴(kuò)展了面向BMC功能插件,在原有基于BMC的帶外監(jiān)控管理系統(tǒng)基礎(chǔ)上增加了面向Nagios的信息獲取;
本發(fā)明的有益效果是:
無需在客戶服務(wù)器端安裝特定的Agent端,只需要在已經(jīng)客戶已經(jīng)安裝的Nagios監(jiān)控管理工具上安裝面向BMC的基于標(biāo)準(zhǔn)IPMI協(xié)議的擴(kuò)展插件,這樣即保障了客戶信息安全性也降低了系統(tǒng)維護(hù)的難度。
[0008]使客戶在原有的監(jiān)控管理方法上增加了信息互備,無論從帶內(nèi)系統(tǒng)還是從帶外系統(tǒng)都可以獲得系統(tǒng)關(guān)鍵信息,增加了系統(tǒng)運(yùn)行的安全性和可用性。
[0009]既能有效的統(tǒng)合開源工具解決方案,簡化監(jiān)控管理流程,又能全面準(zhǔn)確地對服務(wù)器系統(tǒng)乃系統(tǒng)場合下服務(wù)器進(jìn)行監(jiān)控管理。
【專利附圖】
【附圖說明】
[0010]圖1是根據(jù)本發(fā)明的基于Nagios和BMC的服務(wù)器監(jiān)控管理架構(gòu)圖;
圖2是根據(jù)本發(fā)明的服務(wù)器監(jiān)控管理實(shí)施流程圖?!揪唧w實(shí)施方式】
[0011]以下結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,以此所描述的實(shí)施例僅用于說明和理解本發(fā)明,并不用于限定本發(fā)明。
[0012]圖1:是根據(jù)本發(fā)明的基于Nagios和BMC的服務(wù)器監(jiān)控管理架構(gòu)圖。主要包括帶內(nèi)監(jiān)控管理工具、操作系統(tǒng)OS層、硬件平臺層、BMC層、以及帶外監(jiān)控管理工具,如圖1所示,具體工作過程描述如下:
1)帶內(nèi)監(jiān)控管理工具,可以是Nagios服務(wù)端,具體可以安裝在中心監(jiān)控服務(wù)器端,實(shí)時(shí)獲取有Nagios客戶端發(fā)送來的報(bào)警信息;
2)在被管理節(jié)點(diǎn)的本地操作系統(tǒng)同上安裝Nagios;
3)在安裝Nagios客戶端的基礎(chǔ)上配置Nagios的擴(kuò)展插件,即Nagios獲取BMC信息用monitor_nagios_to_bmc_plugins 插件組和 BMC 獲取 Nagios 信息用 get_nagios_to_bmc_plugins插件組,其中插件的具體實(shí)現(xiàn)包括以下兩部分,以monitor_bmc_psu.py為例;
1.Nagios配置文件 Define service {
host namehostname
service_description power supply unit
privilegegeneric-service
commandmonitor—bmc—pus!192.168.1.99!root!superuser
}
2.具體python代碼 #!/usr/bin/python
from os import path,system
import sys, getpass
monitor—bmc—psu=〃/usr/lib/nagios/plugins/monitor—bmc—psu〃
#loggingJs usage: logger, error(message),logger, info(message)
def initlogO:1mport logging
logger = logging.getLogger ()
hdlr = logging.FileHandler(1gfile)
formatter = logging.Formatter (’%(asctime) s - % (Ievelname) s - % (message)
s,)
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.NOTSET)
return logger
1gfile=—file—.replace (rJ.py’,’.log’)
logger=initlog ()
#command execution
command—list=["psu_status","psu—poweron","psu—poweroff"]def status(ip, password):
try:
system(^echo ipmitool -1 Ian -H %s -U ' %s' -P '%s' power status〃%(ip, username, password))
except OSError, error:
logging, error(error)
def start (ip, password):
try:
system(^echo ipmitool -1 Ian -H %s -U ' %s' -P ' %s' power on〃%(ip, username, password))
except OSError, error:
logging, error(error)
def stop (ip, password):
try:
system(^echo ipmitool -1 Ian -H %s -U ’ %s’ -P ’ %s’ power off〃%(ip, username, password))
except OSError, error:
logging, error(error)
1)本例中配置BMC的KCS接口,并在Linux中安裝KCSdriver ;
2)BMC的固件程序中主要支持IPMI stack、Web Server、模塊驅(qū)動層以及接口層組成
3)BMC通過SMBus總線獲取硬件資產(chǎn)信息;
4)Nagios工具核心模塊即可獲得硬件資產(chǎn)工作信息;
5)帶外監(jiān)控管理工具,主要是通過WebBrowser登錄BMCWeb Server獲取監(jiān)控管理信
息;
圖2:是根據(jù)本發(fā)明的服務(wù)器監(jiān)控管理實(shí)施流程圖。如圖2所示,具體實(shí)施步驟如下:
1)步驟1:在被管理節(jié)點(diǎn)的本地操作系統(tǒng)同上安裝Nagios ;
2)步驟2:在安裝Nagios客戶端的基礎(chǔ)上配置Nagios的擴(kuò)展插件;
3)步驟3=BMC配置KCS接口;
4)步驟4:通過KCS接口給BMC發(fā)送命令;
5)步驟5=BMC端接收并解析帶內(nèi)發(fā)送的命令;
6)步驟6:判斷是何種類型命令?
7)步驟7:如果是執(zhí)行指令To BMC類型,則執(zhí)行相應(yīng)IPMI Command獲取硬件工作狀態(tài)
等信息;
8)步驟8: 通過KCS接口將信息發(fā)送到帶內(nèi)系統(tǒng);
9)步驟9:Nagios plugins解析返回信息;
10)步驟10:在本地監(jiān)控端顯示帶外信息;
11)步驟11:如果是分析指令From Nagios類型,則分析信息并判斷是是否需要產(chǎn)生報(bào)
m/= m.θ I R >ι?ι',
12)步驟12:如果需要報(bào)警,則通過SNMP Trap形式向遠(yuǎn)程監(jiān)控管理端發(fā)送報(bào)警信息; 利用本實(shí)施例的基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,可以既能有效的統(tǒng)合開源工具解決方案,簡化服務(wù)器系統(tǒng)監(jiān)控管理流程,又能通過設(shè)計(jì)的帶內(nèi)和帶外監(jiān)控管理信息交互方法,全面準(zhǔn)確地對服務(wù)器系統(tǒng)實(shí)時(shí)工作狀態(tài),增強(qiáng)服務(wù)系統(tǒng)的可用性和使用安全性。除此之外,本發(fā)明也涉及Python腳本語言擴(kuò)展Nagios插件的方法,對Python腳本進(jìn)行抽象設(shè)計(jì)可更好的實(shí)現(xiàn)跨平臺實(shí)現(xiàn)Nagios擴(kuò)展的有效性。
【權(quán)利要求】
1.一種基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,其特征在于包括: 基于Nagios和BMC的服務(wù)器監(jiān)控管理架構(gòu)及接口設(shè)計(jì); 面向BMC的Nagios擴(kuò)展插件實(shí)現(xiàn)方法; 基于IPMI協(xié)議的python命令腳本內(nèi)容; 服務(wù)器遠(yuǎn)程監(jiān)控管理客戶端的特征。
2.根據(jù)權(quán)利要求1所述的基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,其特征在于,要點(diǎn)I)中在所述管理架構(gòu)及接口設(shè)計(jì),架構(gòu)包括服務(wù)器、交互接口層、基板控制器BMC及遠(yuǎn)程管理客戶端。
3.根據(jù)權(quán)利要求1所述的基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,其特征在于,要點(diǎn)I)中在所述管理架構(gòu)及接口設(shè)計(jì),其帶內(nèi)與帶外管理系統(tǒng)的交互接口層可包括但不限于I2C總線接口、基于LPC協(xié)議的KCS接口、CPU資源共享等,本發(fā)明使用LPC的KCS接口。
4.根據(jù)權(quán)利要求1所述的基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,其特征在于,要點(diǎn)2)中在所述面向BMC的Nagios擴(kuò)展插件實(shí)現(xiàn)方法,Nagios支持通過per1、shell、python及PHP等語言編寫插件來擴(kuò)展監(jiān)控服務(wù),面向BMC的插件擴(kuò)展即面向標(biāo)準(zhǔn)IPMI協(xié)議的功能擴(kuò)展,主要包括標(biāo)準(zhǔn)IPMI命令及第三方OEM的IPMI命令,本發(fā)明采用Python腳本語言。
5.根據(jù)權(quán)利要求4所述的基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,其特征在于,所述BMC至少支持ipmitool、openIPMI等一種工具和至少支持perl、shell、python及PHP等語目一種。
6.根據(jù)權(quán)利要求1所述的基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,其特征在于,要點(diǎn)3)中在所述IPMI協(xié)議的python命令腳本內(nèi)容,即服務(wù)器端python命令腳本,主要完成系統(tǒng)帶內(nèi)及帶外監(jiān)控管理信息的交互,其包括: (1)Nagios獲取BMC信息=Nagios通過腳本解析后向BMC發(fā)送IPMI命令獲取服務(wù)器風(fēng)扇轉(zhuǎn)速信息、電源工作狀態(tài)、溫度及電壓等傳感器信息、系統(tǒng)事件日志信息、RAID控制器信息等,并將接收的信息再通過python命令腳本解析后用于Nagios ; (2)BMC獲取Nagios信息=Nagios將系統(tǒng)CPU及內(nèi)存使用率、磁盤利用率、系統(tǒng)進(jìn)程工作狀態(tài)等信息,通過腳本解析成IPMI命令后發(fā)送到BMC,BMC再處理該信息并發(fā)送到客戶端。
7.根據(jù)權(quán)利要求1所述的基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,其特征在于,要點(diǎn)4)中在所述服務(wù)器遠(yuǎn)程監(jiān)控管理客戶端的特征,主要包括: (1)客戶端支持WEB訪問方式; (2)客戶端的宿主端是BMC的Webserver服務(wù)器; (3)客戶端支持標(biāo)準(zhǔn)IPMI協(xié)議、SNMP協(xié)議等; (4)客戶端分為接口層、解析層以及存儲層等; 接口層負(fù)責(zé)提供與帶內(nèi)Nagios的通信接口,并接受Nagios發(fā)送的命令 解析層負(fù)責(zé)將解析并執(zhí)行Nagios發(fā)送的IPMI命令 存儲層負(fù)責(zé)將IPMI命令的解析或執(zhí)行結(jié)果保存到系統(tǒng)緩存中 (5)客戶端適用于多種不同的宿主端類型: 機(jī)架客戶端:機(jī)架式服務(wù)器BMC端 管理客戶端:兩層管理架構(gòu),即包括管理節(jié)點(diǎn)和被管理節(jié)點(diǎn)的BMC端中心客戶端:服務(wù)器集群或云計(jì)算等三級或多級管理架構(gòu),即中心管理節(jié)點(diǎn)、分管理節(jié)點(diǎn)、被管理節(jié)點(diǎn)等的BMC端。
8.根據(jù)權(quán)利要求1所述的基于Nagios和BMC的服務(wù)器監(jiān)控管理方法,其特征在于,要點(diǎn)4)中在所述服務(wù)器遠(yuǎn)程監(jiān)控管理客戶端的設(shè)計(jì)方法,目的是通過Nagios與BMC的帶內(nèi)帶外信息交互,在原有的基于Nagios的帶內(nèi)監(jiān)控管理系統(tǒng)基礎(chǔ)上,增加基于BMC的帶外監(jiān)控管理系統(tǒng)。
【文檔編號】H04L12/26GK103905253SQ201410134635
【公開日】2014年7月2日 申請日期:2014年4月4日 優(yōu)先權(quán)日:2014年4月4日
【發(fā)明者】陳剛 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司