利用Cacti和性能計(jì)數(shù)器實(shí)現(xiàn)自定義遠(yuǎn)程監(jiān)控
利用cacti和性能計(jì)數(shù)器實(shí)現(xiàn)自定義遠(yuǎn)程監(jiān)控
性能監(jiān)控一直是各個(gè)網(wǎng)站必須認(rèn)真考慮的問(wèn)題,對(duì)于一個(gè)龐大的系統(tǒng)來(lái)說(shuō),如果不知道各個(gè)模塊的運(yùn)行情況,那出了意外,連怎么癱掉的都不知道。我想這個(gè) 很多軟件開(kāi)發(fā)商都注意到了這點(diǎn),所以在相應(yīng)的web,數(shù)據(jù)庫(kù)產(chǎn)品中加了各種監(jiān)控?cái)?shù)據(jù),例如web連接數(shù),request并發(fā)量,數(shù)據(jù)庫(kù)鏈接數(shù)等等,供大家 使用。而且當(dāng)系統(tǒng)分布在多個(gè)機(jī)器上時(shí),分布式監(jiān)控問(wèn)題又凸顯了出來(lái),于是cacti應(yīng)運(yùn)而生。通過(guò)SNMP協(xié)議,cacti能很方便的同時(shí)對(duì)多臺(tái)機(jī)器進(jìn)行 snmp數(shù)據(jù)的讀取以實(shí)現(xiàn)分布式監(jiān)控?! ?/p>
如果您還是cacti新手,建議您先去cacti的官網(wǎng)上了解一下這個(gè)產(chǎn)品(http://www.cacti.net/)。
然而有時(shí)候光靠系統(tǒng)、web、數(shù)據(jù)庫(kù)提供給我們的預(yù)定義監(jiān)控值還是不夠的,很多時(shí)候我們需要定義特定的監(jiān)控值來(lái)監(jiān)控我們的系統(tǒng)。可能您首先想到的是 性能計(jì)數(shù)器,性能計(jì)數(shù)器可以通過(guò)自定義的category和counter,很方便地定義,實(shí)現(xiàn)和監(jiān)控特定需要的值。關(guān)于自定義性能計(jì)數(shù)器的解決方案請(qǐng)參 見(jiàn):
http://it.dianping.com/using_attribute_wrapping_performance_counter.htm
不過(guò)有個(gè)不足之處,就是查看性能計(jì)數(shù)器的話,則必須登錄到所使用的機(jī)器上利用系統(tǒng)的性能組件來(lái)查看。那如果能結(jié)合cacti和性能計(jì)數(shù)器,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的話,豈不是很***?
經(jīng)過(guò)各大搜索引擎的幫忙,找到了一個(gè)實(shí)現(xiàn)類似功能的庫(kù),下載地址:http://erwan.l.free.fr/snmptools ,并突破了重重防火墻的限制,通過(guò)代理最終下到了這個(gè)珍貴的東東。。為了方便大家下載,本文參考資料中提供了此工具的下載。
snmptools基本的實(shí)現(xiàn)思路很簡(jiǎn)單,性能計(jì)數(shù)器->SNMP->cacti,再細(xì)分一下,這個(gè)方案分兩步,***步是計(jì)數(shù)器到SNMP,第二步是SNMP到cacti。
***步計(jì)數(shù)器到SNMP,snmptools提供了一個(gè)SNMP Service的擴(kuò)展Agent Dll,與windows自帶的SNMP Service集成。這個(gè)Agent Dll的主要功能就是通過(guò)一個(gè)配置文件自定義OID,以及對(duì)應(yīng)的計(jì)數(shù)器映射。
- [1.3.6.1.4.1.15.1]
- counter=PhysicalDisk"Avg. Disk Queue Length"_Total
- [1.3.6.1.4.1.15.2]
- counter=LogicalDisk"Free Megabytes"_Total
以上是配置文件的樣例,此Dll用的MIB根節(jié)點(diǎn)是1.3.6.1.4.15,可以在此節(jié)點(diǎn)下定義自己所需要的counter對(duì)應(yīng)的OID。
一旦snmptools安裝配置完畢,可通過(guò)cacti所在機(jī)器使用linux命令測(cè)試一下:(cacti一般是裝linux上的,雖然有windows版本的cacti,但有些功能不能用)
snmpwalk -v1 -c public [MONITOR_IP] 1.3.6.1.4.1.15
此命令會(huì)遍歷此節(jié)點(diǎn)所有使用到的OID值。如果值都獲取到了,說(shuō)明***步操作已成功。
接下來(lái)是第二步,這步就簡(jiǎn)單很多,snmptools提供了cacti模板,封裝了取snmp值的query方法,將此方法導(dǎo)入后,即可使用?!?/p>
上圖就是通過(guò)再上面的配置文件運(yùn)行,監(jiān)控得到的結(jié)果。呵呵,看上去很爽吧,那就快嘗試去用用吧。
【編輯推薦】