[ FreeBSD ] VnStat 一個統計流量的軟體

租用獨立主機 ( dedicated servers )  的自由度很高,但是對於流量使用還是多少都有一些限制。以我租用的  layeredtech 方案來說,一個月的流量限制是 1500GB,這個流量看起來很大,但是如果一起使用的朋友有新的攝影作品發表時,那個流量的使用使用可是多得怕人,有時候還是深怕使用的流量超過了限制。

雖然流量超過請出信用卡就可以解決了,主機商也會提供一個很完整的流量統計讓你知道實際的使用情形,但是人總是狐疑的動物會懷疑這個流量表到底準不準,也有時你用的機器並沒有提供這些服務,這個時候你就找一些代用的方式來分析。早期我都是使用 mrtg 來偵測與分析流量,安裝與使用方式可以見阿駕哥哥 的 blog,我都是照他的步驟來處理。


MRTG 真的很好用,不但可以做最基本的流量統計,甚至連 CPU 負荷、記憶體使用、使用人數通通都可以做成圖表統計,分成「每日 圖表 (5 分鐘 平均)」、「每週 圖表 (30 分鐘 平均)」、「每月 圖表 (2 小時 平均)」與「每年 圖表 (1 天 平均)」讓你一目了然。

MRTG 的流量統計圖表

但是不知道是不是要怪自己不求精進,還是乾脆怪阿駕哥哥沒有寫教學,用了好久的 MRTG 後某天。有一次我想要找出過去 24 小時的使用總流量時,居然無法從都是使用平均值的圖表上面計算出來。

於是我就開始尋找一個可以用數據的方式來計算流量的軟體,說實話這一類的軟體在 linux 上面蠻多的,iptraf  就是一個很經典的軟體,但是在 FreeBSD 上面問了好多朋友都沒有很肯定的答案。

最後讓我找到了 VnStat 這個統計流量的軟體。

VnStat 吸引我的地方第一個當然是免費而且可以在 FreeBSD 底下執行,再者這個軟體很小,最重要的是如果你沒有 root 的權限也可以安裝。

安裝的方式很簡單,先下載最新版的 VnStat 後解開,進入目錄後首先進行編譯的動作,接著測試核心是否可以執行。

# make && make install
# vnstat --testkernel

沒有問題以後,請先找出你的網路卡代號(我使用的是 em0),確定後開始把資料寫入。

# vnstat -u -i em0

程式會在 /var/db/vnstat 寫入一個跟網路卡代號相同名稱的檔案,以我為例為 em0。

接下來請執行 vnstat 看看會不會出現類似下圖的統計資訊,沒有問題的話就可以丟到 crontab 去跑了

執行 vnstat 看看會不會出現統計資訊

VnStat 可以出現的訊息視需求分成很多種,視你的需求可以利用以下的參數來出現需要的資訊。

  • -h : 24hr 的流量統計
  • -d : 一個月每天的流量統計
  • -m : 一年每月的流量統計
  • -t : Top 10 的流量統計
  • -w : 過去七天與上週跟本週的流量總計

要看這些總計資訊有一個比較麻煩的地方,就是得 ssh 進去執行指令。但總不能老是 ssh 進來看數值吧?於是又開始尋找能不能有跟 MRTG 一樣利用網頁來呈現的 php 程式,最後找到了 vnStat PHP frontend 這個程式。

vnStat PHP frontend 就如其名是一個 VnStat 的 php 程式前端,下載後編輯壓縮檔內的 config.php,大概是改以下兩項:

  • $iface_list = array('em0'); 
    em0 請改成你的網路卡卡號
  • $data_dir = '/var/db/vnstat';
    請把 /var/db/vnstat 改成你存放資料的目錄

就可以利用瀏覽器看到跟 ssh 進去執行參數一樣的圖形介面囉!以下是一些參考抓圖。

流量總表

vnstat 總表

過去 24hr 的流量統計

過去 24hr 的流量統計

VnStat 的圖形介面

VnStat 的圖形介面

這樣看起報表就更方便囉!

備註: 

本文以 FreeBSD 說明,但是 VnStat 也可以使用於 linux 。

.

11 thoughts on “[ FreeBSD ] VnStat 一個統計流量的軟體

  1. 大大您好...我也安裝了這個東西...但是有一個問題..我的圖沒有出現說
    是不是要安裝其他的東西才能顯示啊

  2. 我知道原因了..因為我沒安裝SVG的PLUG-IN啦....裝了IE就可以看了...FIREFOX和OPERA都內建支援啦..可是另一個問題...顏色那可以修改啊

  3. 我安裝vnstat之後
    我在安裝vnStat PHP frontend之後
    我有去修改config.php內的東西
    可是我的線上流量沒有偵測到我的網路卡
    弄很久了還是沒辦法線上偵測

  4. 各位大大安安
    小弟是"VnStat 的圖形介面"跑不出來
    1.打指令說沒有vnstati
    2.apache關掉重開說正在使用中?!
    3.也有把vnstat.cgi加到cgi-bin資料夾中
    (以上都是網路搜尋出來的可能解決方式...>_<)
    都試過還是無效
    所以還請熱心大大幫忙
    感激不盡
    我的是Debian滴

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *