vnStat是一個應用於Linux或BSD平台,對網卡流量做監控。 因為並非是基於網絡包嗅探的方式而是基於/proc的分析。現在vnStat已經有出vnstat PHP frontend 擴展了,可以以PHP腳本的形式直接調用vnStat監測的數據。
如下圖所示:
下面說一下具體的安裝步驟:
下載:
wget http://soft.vpser.net/status/vnstat/vnstat-1.9.tar.gz
解壓:
tar xvzf vnstat-1.9.tar.gz
進入目錄:
cd vnstat-1.9
編譯安裝:
make
make install
如果64位平台上編譯的話用make 64bit命令
這樣vnstat 就安裝好了。
下面講vnstat的工作運行配置:
下載最新版vnstat PHP frontend,
地址:http://www.sqweek.com/sqweek/fil … ontend-1.4.1.tar.gz
解壓文件夾改名為vnstat,然後上傳到某個網站根目錄下,這樣就可以以http://www.mydomain.com/vnstat 來訪問到,就出來頁面了,但此時沒有數據,因為還要使系統生成數據。
建立流量數據庫:
ifconfig 指令查看需要監控的網卡,假設只有eth0
然後生成數據庫:
/usr/local/bin/vnstat -u -i eth0
然後定時更新數據庫,通過cron的方式:
實際上在安裝vnstat時,已經在系統裡安裝好了vnstat的cron,crontab內容在/etc/cron.d/vnstat
內容為:
# /etc/cron.d/vnstat: crontab entries for the vnstat package
0-55/5 * * * * root if [ -x /usr/bin/vnstat ] && [ `ls /var/lib/vnstat/ | wc -l` -ge 1 ]; then /usr/bin/vnstat -u
; fi
0-55/5 * * * * root /usr/bin/vnstat –dumpdb -i eth0 >/data/vnstat/vnstat_dump_eth0
第一行為安裝時自動指定的.
第二行是為了更新eth0的數據後,dump出來一個文件,給 php訪問接口訪問.
這裡dump出來的vnstat_dump_eth0 文件名是有規定的。
在vnstat_php_frontend-1.4.1.tar.gz 包裡的config.php 裡有說明。
最後,編輯 vnstat/config.php 這個文件,將數據目錄改為 /data/vnstat
即:
$data_dir = ‘/data/vnstat’;
將要監控的網卡指定為1個:
// list of network interfaces monitored by vnStat
//$iface_list = array(’eth0′, ‘eth1′, ’sixxs’);
$iface_list = array(’eth0′,);
// will be displayed instead
//
$iface_title['eth0'] = ‘Internal’;
//$iface_title['eth1'] = ‘Internet’;
//$iface_title['sixxs'] = ‘SixXS IPv6′;
這一切都搞好後,現在用 www.mydomain.com/vnstat/訪問,就會發現有流量統計了,統計的數據更新是5分鐘刷新一次。