利用cacti和性能計數(shù)器實現(xiàn)自定義遠程監(jiān)控
cacti有許多功能,大家可能都不知道,本文就介紹一種:利用cacti和性能計數(shù)器實現(xiàn)自定義遠程監(jiān)控
性能監(jiān)控一直是各個網(wǎng)站必須認真考慮的問題,對于一個龐大的系統(tǒng)來說,如果不知道各個模塊的運行情況,那出了意外,連怎么癱掉的都不知道。我想這個 很多軟件開發(fā)商都注意到了這點,所以在相應的web,數(shù)據(jù)庫產(chǎn)品中加了各種監(jiān)控數(shù)據(jù),例如web連接數(shù),request并發(fā)量,數(shù)據(jù)庫鏈接數(shù)等等,供大家 使用。而且當系統(tǒng)分布在多個機器上時,分布式監(jiān)控問題又凸顯了出來,于是cacti應運而生。通過SNMP協(xié)議,cacti能很方便的同時對多臺機器進行 snmp數(shù)據(jù)的讀取以實現(xiàn)分布式監(jiān)控。

如果您還是cacti新手,建議您先去cacti的官網(wǎng)上了解一下這個產(chǎn)品(http://www.cacti.net/)。
然而有時候光靠系統(tǒng)、web、數(shù)據(jù)庫提供給我們的預定義監(jiān)控值還是不夠的,很多時候我們需要定義特定的監(jiān)控值來監(jiān)控我們的系統(tǒng)??赡苣紫认氲降氖?性能計數(shù)器,性能計數(shù)器可以通過自定義的category和counter,很方便地定義,實現(xiàn)和監(jiān)控特定需要的值。關于自定義性能計數(shù)器的解決方案請參 見:
http://it.dianping.com/using_attribute_wrapping_performance_counter.htm
不過有個不足之處,就是查看性能計數(shù)器的話,則必須登錄到所使用的機器上利用系統(tǒng)的性能組件來查看。那如果能結(jié)合cacti和性能計數(shù)器,實現(xiàn)遠程監(jiān)控的話,豈不是很***?
經(jīng)過各大搜索引擎的幫忙,找到了一個實現(xiàn)類似功能的庫,下載地址:http://erwan.l.free.fr/snmptools ,并突破了重重防火墻的限制,通過代理最終下到了這個珍貴的東東。。為了方便大家下載,本文參考資料中提供了此工具的下載。
#p#
snmptools基本的實現(xiàn)思路很簡單,性能計數(shù)器->SNMP->cacti,再細分一下,這個方案分兩步,***步是計數(shù)器到SNMP,第二步是SNMP到cacti。
***步計數(shù)器到SNMP,snmptools提供了一個SNMP Service的擴展Agent Dll,與windows自帶的SNMP Service集成。這個Agent Dll的主要功能就是通過一個配置文件自定義OID,以及對應的計數(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é)點是1.3.6.1.4.15,可以在此節(jié)點下定義自己所需要的counter對應的OID。
一旦snmptools安裝配置完畢,可通過cacti所在機器使用linux命令測試一下:(cacti一般是裝linux上的,雖然有windows版本的cacti,但有些功能不能用)
snmpwalk -v1 -c public [MONITOR_IP] 1.3.6.1.4.1.15
此命令會遍歷此節(jié)點所有使用到的OID值。如果值都獲取到了,說明***步操作已成功。
接下來是第二步,這步就簡單很多,snmptools提供了cacti模板,封裝了取snmp值的query方法,將此方法導入后,即可使用。

上圖就是通過再上面的配置文件運行,監(jiān)控得到的結(jié)果。呵呵,看上去很爽吧,那就快嘗試去用用吧。
通過上面文章的介紹和圖片的說明,我們又學會了利用cacti和性能計數(shù)器實現(xiàn)自定義遠程監(jiān)控!希望對你們有用!
【編輯推薦】