本文是在cacti版本0.8.8f進行,不同版本可能會有設定不同請自行轉換這邊只介紹概念

在 cacti 繪製圖表時會先以 rrdtool create RRD 檔進行儲存,而 create RRD 主要的參數設定則是在 Date Sources 底下選單 RRAs 內。在未修改下頁面預設共五筆用來create檔案的資訊,分別是

  • Hourly (1 Minute Average)
  • Daily (5 Minute Average)
  • Weekly (30 Minute Average)
  • Monthly (2 Hour Average)
  • Yearly (1 Day Average)

這五筆資訊的設定,主要是影響在RRD檔內 Primary Data Points (PDPs) 被匯聚成 consolidated data point 的相關行為,該行為簡述就是我們通過 snmp 問到的 sample data 在繪製不同時間軸的圖表時會依照需求將這些 sample data 進行合併省空間並讓圖表較好閱讀。這些資訊實際引用繪圖則是可以在 Data templates -> Data Source -> Associated RRA's 中進行修改調整時間軸。

接下來對直接影響到圖表資料呈現至關重要的RRAs 資訊進行解說,下圖是使用 Data Source Debug mode 下可以看到完整的 RRD 檔建立指令,以 RRAs 內參數設定會造成影響的是紅框框起來的部分。

每一項的組成皆是以 RRA:{AVERAGE | MIN | MAX | LAST}:xff:steps:rows 進行

  • {AVERAGE | MIN | MAX | LAST}:代表在進行PDPs 匯聚成 consolidated data point 時會是使用哪種方式

    Prefilling currently only works reliably for RRAs using one of the classic consolidation functions, that is one of: AVERAGE, MIN, MAX, LAST.

  • xff:全名 X-Files Factor,定義當多少比例的PDPs遺失時匯聚成 consolidated data point 會將其當作 Unknown,該值預設是 0.5 會介於 0 ~ 1 之間,e.g. 5個PDPs要被匯聚成 consolidated data point 只要其他有超過 0.5 X 5 = 2.5 個PDPs是遺失的,那 consolidated data point 會是 Unknown

    xff The xfiles factor defines what part of a consolidation interval may be made up from UNKNOWN data while the consolidated value is still regarded as known. It is given as the ratio of allowed UNKNOWN PDPs to the number of PDPs in the interval. Thus, it ranges from 0 to 1 (exclusive).

  • steps:定義多久/多少個 PDPs會被匯聚成 consolidated data point

    steps defines how many of these primary data points are used to build a consolidated data point which then goes into the archive.

  • rows:保留多少個根據 Steps 產生的數據

    rows defines how many generations of data values are kept in an RRA.

PS. 我這邊已經將snmp poller設成使用 cacti-spine 每分鐘進行,所以在上面 Data Source Debug mode 圖中紫框可以看到 --step 60 這個代表是以60秒作為一個單位做成一個PDPs

下圖是點進每小時項目的樣子

補充說明 Timespan 代表在產生的圖(時間軸)中要繪製多少秒 (該值會是rrdtool graph使用)


接下來更仔細地說明這些RRAs設定會產生怎樣不同的圖表,我們用下圖內的設定做一個解說

首先第一項每小時的設定中,我們將 steps 設定成1代表我們是使用每分鐘 (該值其實是參照上面PS內說的step,如果未經修改step會是300秒代表是每5分鐘當作一個單位) 取到的snmp data 直接當成PDPs,然後我們會保留其60個,也就是我們只會保留1個小時,超過這個時間後就只能看到這些PDPs被匯聚成更長時間軸用的資料點,那我們定義一個小時是14400秒。第二項則是每天的設定,這裡我們設定每5分鐘繪製成一個點,我們保留288個每5分鐘的資料點,也就是代表我們只留剛好一天的5分鐘版本資料點,超過1天就只能用更長時間軸使用的資料點以此類推,下圖是範例。

當我們仍在一個小時內時可以看到我們資料點是每一分鐘繪製一個點 (此圖擷取時間是2021/07/08 23:03:57)

當我們往前看超過一個小時前的圖就會發現繪製出來的圖表裡面資料表已經是使用每5分鐘匯聚的資料點就如同前面所述

假如我們現在所看的圖表剛好介於一部分每分鐘資料點還留存一部分已經只剩5分鐘資料點,那該圖則會用比較長時間軸的資料點進行繪製

小結

這邊簡單介紹rrdtool 內 RRA 相關資訊以及每個值設定可能使圖表的變化,有關詳細設定則等之後進行描述。

Reference:

#Cacti #rrdtool #網管







你可能感興趣的文章

SQL For Loop, Using Cursor

SQL For Loop, Using Cursor

AI輔導室|靈活運用鏡射工具

AI輔導室|靈活運用鏡射工具

用 Nest.js 開發 API 吧 (三) - Controller

用 Nest.js 開發 API 吧 (三) - Controller






留言討論