監控Server是自己建置伺服器很重要的一環,甚至對於MIS來說算是基本功了.而尚未進入大學殿堂前就用過一段時間的MRTG來Monitor主機與TECOM的AR4031B.所以專題訓練就是去深化SNMP結合Cisco的NetFlow與wethermap來架構一套學網用的監控系統.更有趣的是畢業後還走進東訊,對我自己來說也算是玩得有始有終阿~哈哈.
當然科技應用的演進,MRTG什麼的已經不是主流了,堆疊這些技術上來的就是今天要整理的CACTI.Cacti是一套透過RRDtool實現GUI的整合套件,而RRDtool是MRTG作者基於改善MRTG的下一代技術,不過實際上要部屬首先就得面對他難以理解的資料格式,還好有了cacti幫我們解決了苦差事.
本文分兩個部分 1.介紹與安裝 Cacti 並設定抓取流量 2.增加 IPMI Module for Cacti
對於Ubuntu的使用者來說只要apt-get去安裝基本套件就會幫忙Setup起來,不過php-snmp default僅會裝置client的部分,因為我們還需要監控自己本機的流量,所以還是裝全套.而因為最主要是c2550d4i這塊板子支援IPMI需要透過ipmitool來抓取Sensor的資訊,之前就已經透過apt-get來安裝過....
scottj@ubuntu:~$ sudo apt-get install snmpd
...
scottj@ubuntu:~$ sudo apt-get install ipmitool
...
![]() |
裝好後即可直接到您Host URL去初始化Cacti, 如 http://localhost/cacti 這部分主要參考這裡的文章: 軟體開箱文~~系統效能監控軟體Cacti 安裝
這來是把snmpd給enable,文中一大堆的設定,可能是我套件版本較新,只有對於 /etc/snmp/snmpd.conf 如下修改:
39 40 41 42 43 44 45 46 47 48 49 50 51 | ############################################################################### # # ACCESS CONTROL # # system + hrSystem groups only view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.2view systemonly included .1.3.6.1.2.1.25.1 # Full access from the local host #rocommunity public localhost # Default access to basic system info |
再來就是試著用snmpwalk爬爬看,如果有下列包含主機的interface列出來即是成功.
iso.3.6.1.2.1.2.1.0 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3
iso.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4
iso.3.6.1.2.1.2.2.1.1.5 = INTEGER: 5
iso.3.6.1.2.1.2.2.1.1.6 = INTEGER: 6
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
...
最後就是把他掛上cacti,到console device 裡 add, 完成下列選項後就可以點取Create Graphs for this host 來建圖.
完成後再到Graph Trees –> Default Tree 去把新的這個Host add進來就可以在 graphs 裡看到瞜!
+5VSB | 5.01 Volts | ok
+3VSB | 3.44 Volts | ok
Vcore | 0.73 Volts | ok
VCCM | 1.51 Volts | ok
+1.1V | 1.07 Volts | ok
+1.0V | 1.01 Volts | ok
BAT | 3.20 Volts | ok
+3V | 3.30 Volts | ok
+5V | 5.04 Volts | ok
+12V | 12.30 Volts | ok
CPU_FAN1 | no reading | ns
REAR_FAN1 | no reading | ns
FRNT_FAN1 | 1100 RPM | ok
FRNT_FAN2 | no reading | ns
REAR_FAN2 | no reading | ns
CPU_FAN2 | no reading | ns
MB Temperature | 61 degrees C | ok
CPU Temperature | 56 degrees C | ok
scottj@ubuntu:/usr/share/cacti$
1.解壓縮”tar -xvzf cacti-ipmitool-sensors.tar.gz”並切換至建立的目錄cacti-ipmi-sensors
2.拷貝scripts/ss_ipmitool_sensors.php到
3.resource底下的三個.xml檔案也依序拷貝至
4.再來由cacti的web console裡”Import Templates”去餵templates底下的示範檔案.有8x字樣是可以把多個sensor的值放到同一張圖裡.建議可以先由data query開始.
5.接下來一樣就由cacti的web來添增物件,由console –> device 來建或是在原有的host裡新增:
當然如果像我這樣不幸剛好遇上FAN命名與原本的開發環境不同,就會有抓不到風扇的問題:
PHP Notice: Undefined index: name in /usr/share/cacti/site/scripts/ss_ipmitool_sensors.php on line 413
1:
比對開發者Eirc的圖,看到FAN的命名規則和我的不太一樣,問題應該就是出現在這邊,好在找了一下論壇上也已經有先進解決了.
修改”/usr/share/cactisite/scripts/ss_ipmitool_sensors.php”:
287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 | # # use regex to locate the sensor name and value # # exit if no match found (not all text values are errors) # #if (preg_match("/^(.+?)\s+\|.+\|.+\|.+\|\s([\-|\.|\d]+)\s/", if (preg_match("/^(.+?)\s+\|.+\|.+\|.+\|\s([\-|\.|\d]*).*\s/", $ipmitool_response, $scratch) == 0) { $sensor_count++; break; } # # matches were found so use them |
搞定收工!
http://download.ithome.com.tw/article/index/id/288
Cacti 透過 SNMP 取得主機溫度及風扇轉速
http://forums.cacti.net/viewtopic.php?f=12&t=11593&start=45