在Cacti建立設備相關繪圖非常便利,但手動作業有點麻煩,且當大批設備有繪求需求時,將會應接不暇。本文嘗試以SNMP Query Index來建立設備記憶體使用量的繪圖,不必逐一建立,可減輕網管人員的工作負擔。
針對這類的問題,Cacti有兩種解決方法,一個是在建立Index時,使用oid_index_parse功能,讓使用者自行決定要取出的字串長度,藉以取出其Index。另一種就是目前的例子,Cacti會讀取其輸出,在此例中,.1為Processor,.2為I/O,它會根據此輸出結果自行比對字串取出其對應的index值為.1與.2。
緊接著,就來處理Output的部分,首先是ciscoMemoryPoolUsed,針對Memory Pool的使用量,在direction部分須特別注意為「output」,oid部分請輸入「.1.3.6.1.4.1.9.9.48.1.1.1.5」,設定後如圖9所示。
|
▲圖9 ciscoMemoryPoolUsed設定內容。 |
最後是ciscoMemoryPoolFree的部分,可取出Memory Pool的閒置量,oid設定輸入「.1.3.6.1.4.1.9.9.48.1.1.1.6」,同樣是加在/fileds標籤之前,如圖10所示。
|
▲圖10 ciscoMemoryPoolFree設定內容。 |
至此,XML的相關設定皆已完成,將回到Cacti的網頁介面,繼續相關的設定。
設定Data Queries
先點選Collection Methods裡面的Data Queries,再點選右上角的〔Add〕,以新增一筆Data Queries的資料。在Name部分,請輸入易於辨別的名稱,在之後建立相關設定時較易於識別,在此輸入Get Cisco Router Memory Pool,而Description部分僅供參考,輸入Get Cisco Router Memory Pool by SNMP。
接著的XML Path,在最後面加上目錄及檔名,設定成snmp_queries/cisco_memory.xml(目錄名稱Cacti預設提供至resource)。而Data Input Method部分,由於使用了SNMP Query Index的方式,因此選擇Get SNMP Data(Indexed),最後點選〔Create〕存檔,如圖11所示。
|
▲圖11 新增一筆Data Queries。 |
然後進行測試,以驗證該XML檔是否正確。先至Management的Device,點選〔Add〕新增一台設備。並在建立完成後,在Associated Data Queries部分,如圖12所示,選擇【Get Cisco Router Memory Pool】,並按下〔Add〕按鈕。
|
▲圖12 Associated Data Queries設定選為Get Cisco Router Memory Pool。 |
接著,如圖13所示點選Get Cisco Router Memory Pool後面的Verbose Query,查詢其輸出。
|
▲圖13 點選Verbose Query查詢輸出結果。 |
由此可以觀察其輸出的結果,Cacti先抓到兩個Index內容:ciscoMemoryPoolName.1以及ciscoMemoryPoolName.2,接著就取出其Index為1及2,如圖14所示。至此,代表XML檔成功建立。接著要回頭建立Data Template與Graph Template。
|
▲圖14 檢視輸出結果。 |
建立Data Template
先點選Templates裡的Data Templates,再點選右上角的〔Add〕,新增一筆資料。
如圖15所示,在Data Templates裡面的Name部分,輸入Cisco Memory Pool以茲識別。在Data Source區域的Name,則輸入|host_description| |query_ciscoMemoryPoolName|。|host_description|代表取出設備名稱,|query_ciscoMemoryPoolName|則是取出之前在XML檔建立的Input,在此可以取出Pool的名稱。
|
▲圖15 新增Data Template。 |
而Data Input Method部分,修改為【Get SNMP Data (Indexed)】,然後是Associated RRA's,請將Hourly (1 Minute Average)取消。
接著要建立Data Source Item,這邊要輸入XML檔中Output的項次。如圖16所示,在Internal Data Source Name先輸入ciscoMemoryPoolUsed,Maximum Value部分則改為U,並點選〔Create〕。
|
▲圖16 建立Data Source Item。 |
然後,在Data Source Item設定中,再點選〔New〕,新增另一筆。如圖17所示,Internal Data Source Name輸入ciscoMemoryPoolFree,Maximum Value設定改為U。接著修改Custom Data,將Index Type、Index Value及Output Type ID均勾選成User Per-Data Source Value,之後Cacti才會自動連續抓取資料,最後按下〔Save〕按鈕存檔。
|
▲圖17 新增另一筆Data Source Item。 |
最後再確認一次,Data Source Item務必確認有ciscoMemoryPoolUsed及ciscoMemoryPoolFree這兩項,且Maximum Value為U。並且,Custom Data的前三個項次均要打勾。在Cacti中,Data Template所扮演的是從RRD檔取出Data的角色(取出Output),因此需要先行定義其資料名稱、欄位及數值的範圍。