首頁 > 軟體

如何在 Cacti 中合併兩幅圖片

2020-06-16 17:57:56

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 系統中,執行下面的命令:

  1. # chown www-data:www-data rrdsplice.php

並更新 rrdsplice.php。查詢下面的行:

  1. chown($finrrd,"apache");

用下面的語句替換:

  1. chown($finrrd,"www-data");

在 CentOS 或 RHEL 系統中,執行下面的命令即可:

  1. # chown apache:apache rrdsplice.php

合併兩幅圖

通過不帶任何引數執行該指令碼可以獲得指令碼的使用語法。

  1. # cd /path/to/rrdsplice.php
  2. # php rrdsplice.php

  1. USAGE: rrdsplice.php --oldrrd=file --newrrd=file --finrrd=file

現在我們準備好合併兩個 RRD 檔案了。只需要指定舊 RRD 檔案和新 RRD 檔案的名稱。我們會將合併後的結果重寫到新 RRD 檔案中。

  1. # 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

--------------------------------------分割線 --------------------------------------


IT145.com E-mail:sddin#qq.com