在Cacti建立設備相關繪圖非常便利,但手動作業有點麻煩,且當大批設備有繪求需求時,將會應接不暇。本文嘗試以SNMP Query Index來建立設備記憶體使用量的繪圖,不必逐一建立,可減輕網管人員的工作負擔。
建立Graph Template
接著回到Graph Templates,同樣點選〔Add〕新增一筆。如圖18所示,在Name部分輸入Cisco - Memory Pool,在Title部分輸入|host_description| - Memory Usage - |query_ciscoMemoryPoolName|,取出其hostname及Pool Name。
|
▲圖18 新增一筆Graph Template。 |
輸入完成後,點選右下角的〔Create〕,以建立此筆資料。此時就可以輸入Graph Template Items,將剛剛Output項次的值填入,之後畫成圖形,然後按下〔Add〕按鈕,如圖19所示。
|
▲圖19 將剛剛Output項次的值填入。 |
一般而言,都習慣繪圖中會有圖形和數字,因此這裡先建立圖形。
在Data Source部分,此時已可選擇先前建立的Cisco Memory Pool中的ciscoMemoryPoolFree,顏色部分,請選擇自己喜歡的,Graph Item Type設定可選擇【Area】,讓其塗滿顏色,而ciscoMemoryPoolUsed就可選擇Line,讓它畫線,避免圖形重疊影響判讀,最後點選〔Create〕就完成建立,如圖20所示。
|
▲圖20 建立圖形的設定。 |
緊接著,建立文字的說明,同樣再點選〔Add〕新增一筆資料。Graph Item Type部分,此次選擇【GRPINT】以輸出文字,在Consolidation Function部分則選擇【LAST】使其輸出最後的數值,如圖21所示,而Data Source同樣使用Cisco Memory Pool中的ciscoMemoryPoolFree,目前應為預設值。
|
▲圖21 建立文字的說明。 |
在Text Format部分,可輸入Current:,由於後續還有文字,所以勾選Insert Hard Return,避免格式亂掉,如圖22所示。
|
▲圖22 設定Text Format及Insert Hard Return。 |
同樣依此要領完成ciscoMemoryPoolUsed的部分,此時畫面如圖23所示。
|
▲圖23 完成設定ciscoMemoryPoolUsed。 |
此時可以看出,Cacti在填入Graph Template Items後,自動將其載入Graph Item Inputs中,之後繪圖時就會將Data Source的Output視為Graph的Input而完成繪圖了。
修改Data Queries
再回到Collection Methods裡的Data Queries,編輯之前建立的Get Cisco Router Memory Pool。在Associated Graph Templates內點選〔Add〕。
接著,如圖24所示在Name部分輸入Cisco - Memory Usage,而Graph Template則選擇剛剛建立的【Cisco - Memory Pool】,最後點選〔Create〕建立此資料。
|
▲圖24 設定Associated Graph Templates內容。 |
繼續編輯Associated Data Templates,在上一步驟點選〔Create〕後,就會自動帶出如圖25所示的頁面,這兩個Data Source請做好對應,Free對應Free,Used則對應Used,最重要的是最後方的兩個勾選欄位務必勾選,筆者之前曾經忘了勾選而耗費許多時間在除錯。勾選之後,記得按下〔Save〕按鈕,完成儲存動作。
|
▲圖25 編輯Associated Data Templates。 |
新增對應的繪圖
最後回到Cacti的設備管理頁面,點選之前用來測試的設備,並且點選上方的Create Graphs for this Host。在Data Query欄位內,應該已經可以看到Processor及I/O兩個選項,將之勾選,勾選後的項次會變為淡黃色,最後按下〔Create〕按鈕建立繪圖。
在此亦可看出Cacti已自行取得Input值,並呈現在Description欄位內,分別為Processor和I/O,如圖26所示。
|
▲圖26 Cacti已自行取得Input值,並呈現在Description區域內。 |
將繪圖移動至Tree
回到Management裡面的Graph Management,將剛建立的圖形移至Default Tree以驗證其成效。如圖27所示,找到這兩張圖之後,加以勾選,最後選擇【Place on Tree (Default Tree)】,再點選〔Go〕按鈕。
|
▲圖27 將圖形移至Default Tree以驗證成效。 |
Cacti會詢問是否執行,點選〔Continue〕即可。Graph Title部分,由於之前在Title中已輸入|query_ciscoMemoryPoolName|,因此Cacti會自動取出其Pool Name,可以看出兩個Graph有不同的Title,較易識別。
如圖28所示,最後檢查一下繪圖,以確認是否I/O和Processor都有建立獨立的繪圖,並且是否與現值相符。若沒有意外的話,應該是相符的。
|
▲圖28 檢查繪圖結果。 |
結語
本文嘗試以SNMP Query Index建立設備記憶體使用量的繪圖。在執行過程中,僅需要建立XML檔、Data Template以及Graph Template,就會同時產出Processor與I/O Memory Pool使用及剩餘量的繪圖。
相信在有大量資訊需要以Cacti繪圖管理時,例如要查看設備中所有Process的CPU使用率或記憶體使用量,就不必手動一個一個建立,可以讓網管人員輕鬆地管理,減輕人力的負擔。
<本文作者:丁光立,在ISP工作多年。對於Cisco設備較熟悉,除此之外也研究Linux,這幾年慢慢把觸角伸到資安的領域,並會在自己的blog(http://tiserle.blogspot.com/)分享一些實務上的經驗和測試心得。>