2007年3月5日 星期一

[網管] MRTG 如何做日均線的密技

有玩過 MRTG 的人就知道, 基本上這個流量是從 SNMP 抓目前開機到現在的傳輸量來計算的,
所以基本上若要去計算就是現在的資料減去上次的資料然後除上這段時間...

而在 MRTG 也有 option 說可以用 gauge, absolute 等等的資料,
但每個表只能選一種, 但若要 I(nput) 是 Incremental, 而 O(utput) 是 Gauge 呢?
只好自己寫 script 了....

下面則是一個基本變型... test.sh

#!/bin/sh
/usr/bin/wget -q -O /home/mrtg/main/test.now http://aaa.bbb.ccc/ddd.php
cat /home/mrtg/main/test.now | awk '{print $1 * 6000}'
cat /home/mrtg/main/test.log | awk '{print $2}' | sed '1,3d' | sed '289,$d' | awk '{sum=sum+$1;print sum}' | tail -1 | awk '{printf "%.0d", $1/57.6}' >> /home/mrtg/main/test.dat
echo "" >> /home/mrtg/main/test.dat
cat /home/mrtg/main/test.dat | awk '{sum1=sum1+$1;print sum1}' | tail -1 | awk '{printf "%.0d", $1 * 60}'
echo
cat /home/mrtg/main/test.now
echo
echo aaa.bbb.ccc/ddd.php

如此一來, 此時就會有個日均線, 如下圖那樣..


因此, 在一張圖中, 不只可以看到瞬間的狀況, 還可以看到平均的狀況,
就像是我常說的, 目前即時的資料是無法看出完整的事實, 唯有歷史的參考來輔助..

當然這時候的 mrtg.cfg
Target[xxxx]: `/home/mrtg/main/test.sh`

而上面有個 *6000 的這個東西, 是因為我習慣自己用 Factor, 不用 perminite,
且因為 MRTG 都是記錄整數, 若是沒乘上個 100, 還看不出差異...
所以上面那個 *60 或 *6000 可以自己調, ...

這樣就可以了...
接著日均線做出來, 接下來是週均線,
因為網路行為的瞬間是隨時在變動, 但都是依照日, 週, 年的週期性,
而這樣你會用 MRTG 做週均線了嗎?

[編按] 原作是 2007/2/13 下午 4:57, 而我到現在才按出

沒有留言:

張貼留言

熱門文章