2021-05-12 14:32:11
如何在 Cacti 中合併兩幅圖片
Cacti 是一個很棒的開源網路監視系統,它廣泛使用於圖形化地展示網路元素,例如頻寬、儲存、處理器和記憶體使用。使用它的基於Web 的介面,你可以輕鬆地建立和組織各種圖表。然而,它預設並沒有提供一些高階功能,例如合併圖片、使用多個來源建立聚合圖形、遷移 Cacti 到另一台伺服器。使用 Cacti 的這些功能你還需要一些經驗。在該教學中,我們會看到如何在將兩幅 Cacti 圖片合併為一幅。
看看這個例子。在過去的 6 個月中,用戶端 A 連線到了交換機 A 的埠 5。埠 5 發生了錯誤,因此用戶端遷移到了埠 6。由於 Cacti 為每個介面/元素使用不同的圖,用戶端的頻寬歷史會分成埠 5 和埠 6。結果是對於一個用戶端我們有兩幅圖片 - 一幅是 6 個月的舊資料,另一幅儲存了後續的資料。
在這種情況下,我們實際上可以合併兩幅圖片將舊資料加到新的圖中,使得用一個單獨的圖為一個使用者儲存歷史的和新資料。本教學將會解釋如何做到這一點。
Cacti 將每幅圖片的資料儲存在它自己的 RRD(round robin database,迴圈資料庫)檔案中。當請求一幅圖片時,根據儲存在對應 RRD 檔案中的值生成圖。在 Ubuntu/Debian 系統中,RRD 檔案儲存在 /var/lib/cacti/rra
,在 CentOS/RHEL 系統中則是 /var/www/cacti/rra
。
合併圖片背後的思想是更改這些 RRD 檔案使得舊 RRD 檔案中的值能追加到新的 RRD 檔案中。
情景
一個用戶端的服務在 eth0 上執行了超過一年。由於硬體損壞,用戶端遷移到了另一台伺服器的 eth1 介面。我們想展示新介面的頻寬,同時保留超過一年的歷史資料。該用戶端希望只在一幅圖中顯示。
確定圖的 RRD 檔案
圖合併的首個步驟是確定與圖相關聯的 RRD 檔案。我們可以通過以偵錯模式開啟圖檢查檔案。要做到這點,在 Cacti 的選單中: 控制台 > 管理圖 > 選擇圖 > 開啟圖偵錯模式。
舊圖:
新圖:
從樣例輸出(基於 Debian 系統)中,我們可以確定兩幅圖片的 RRD 檔案:
- 舊圖: /var/lib/cacti/rra/oldgraphtrafficin8.rrd
- 新圖: /var/lib/cacti/rra/newgraphtrafficin10.rrd
準備指令碼
我們會用一個 RRD 剪接指令碼 來合併兩個 RRD 檔案。下載該 PHP 指令碼,並安裝到 /var/lib/cacti/rra/rrdsplice.php (Debian/Ubuntu 系統) 或 /var/www/cacti/rra/rrdsplice.php (CentOS/RHEL 系統)。
下一步,確認 Apache 使用者擁有該檔案。
在 Debian 或 Ubuntu 系統中,執行下面的命令:
# chown www-data:www-data rrdsplice.php
並更新 rrdsplice.php。查詢下面的行:
chown($finrrd,"apache");
用下面的語句替換:
chown($finrrd,"www-data");
在 CentOS 或 RHEL 系統中,執行下面的命令即可:
# chown apache:apache rrdsplice.php
合併兩幅圖
通過不帶任何引數執行該指令碼可以獲得指令碼的使用語法。
# cd /path/to/rrdsplice.php
# php rrdsplice.php
USAGE: rrdsplice.php --oldrrd=file --newrrd=file --finrrd=file
現在我們準備好合併兩個 RRD 檔案了。只需要指定舊 RRD 檔案和新 RRD 檔案的名稱。我們會將合併後的結果重寫到新 RRD 檔案中。
# php rrdsplice.php --oldrrd=old_graph_traffic_in_8.rrd --newrrd=new_graph_traffic_in_10.rrd --finrrd=new_graph_traffic_in_10.rrd
現在舊 RRD 檔案中的資料已經追加到了新 RRD 檔案中。Cacti 會將任何新資料寫到新 RRD 檔案中。如果我們點選圖,我們可以發現也已經新增了舊圖的周、月、年記錄。下面圖表中的第二幅圖顯示了舊圖的周記錄。
總之,該教學顯示了如何簡單地將兩幅 Cacti 圖片合併為一幅。當服務遷移到另一個裝置/介面,我們希望只處理一幅圖片而不是兩幅時,這個小技巧非常有用。該指令碼非常方便,因為它可以不管源裝置是不是相同都可以合併圖片,例如 Cisco 1800 路由器和 Cisco 2960 交換機。
希望這些能對你有所幫助。
--------------------------------------分割線 --------------------------------------
RHEL6.4中使用Cacti+Spine監控主機實現傳送郵件報警 http://www.linuxidc.com/Linux/2013-11/92795.htm
RHEL6.4中使用Cacti+Spine監控遠端主機 http://www.linuxidc.com/Linux/2013-11/92796.htm
CentOS 5.5完整安裝Cacti+Spine http://www.linuxidc.com/Linux/2011-12/49701.htm
CentOS 6下Cacti搭建文件 http://www.linuxidc.com/Linux/2013-06/86595.htm
RHEL5.9下Cacti監控部署詳解 http://www.linuxidc.com/Linux/2013-06/85427.htm
CentOS 6.3 下Cacti 安裝詳解 http://www.linuxidc.com/Linux/2013-05/84279.htm
CentOS Linux下快速安裝設定Cacti中文版 http://www.linuxidc.com/Linux/2013-03/81627.htm
--------------------------------------分割線 --------------------------------------
相關文章