分类: Web
php页面调用vnstat显示机器网卡流量

在php页面上实时显示网卡流量,调用的是vnstat,可以实时、按小时、按月份统计网卡流量
通用安装

debian/ubuntu安装
apt-get install vnstat -y
/etc/init.d/vnstat start
update-rc.d vnstat enable

RHEL/CentOS安装:
yum install vnstat -y
/etc/init.d/vnstat start
chkconfig vnstat on

vnstat基本使用命令

vnstat -i eth0 -l #实时流量情况
vnstat -i eth0 -h #按小时查询流量情况
vnstat -i eth0 -d #按天数查询流量情况
vnstat -i eth0 -m #按月数查询流量情况
vnstat -i eth0 -w #按周数查询流量情况
vnstat -i eth0 -t #查询TOP10流量情况
vnstat -i eth0 -q #查询vnstat数据库流量情况

更多命令帮助信息可以 vnstat --help 进行查看。

在页面上显示,将下面代码保存,直接运行即可,效果如下图:

<style>
h1{text-align:center;}
*{background-color:#218868; color:#fff;}
pre{margin:10px;padding:10px;border:1px solid #fff; color:#fff;}
</style>
<h1>real time network status !</h1>
<pre>
<h3>hour</h3>
<?php
echo passthru("vnstat -i seth0 -h");
?>
<h3>day</h3>
<pre>
<?php
echo passthru("vnstat -i seth0 -d");
?>
</pre>
<h3>week</h3>
<pre>
<?php
echo passthru("vnstat -i seth0 -w");
?>
</pre>

<h3>month</h3>
<pre>
<?php
echo passthru("vnstat -i seth0 -m");
?>
</pre>

net.png
php.ini的disable_functions里面不能禁用passthru函数。

也可以使用vnStat PHP frontend图形查看流量,效果如下图:
sum.png
hours.png

安装方法:
wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz 下载
解压文件,改名为vnstat,然后上传到某个网站根目录下,这样就可以以/vnstat/ 来访问到,就出来页面了。

在vnstat_php_frontend-1.5.1.tar.gz 包里的config.php 里有说明。

最后,编辑 vnstat/config.php 这个文件,将数据目录改为 /var/lib/vnstat/,如果不存在此目录,需要使用

mkdir -p /var/lib/vnstat/ 创建此目录。
即:
$data_dir = '/var/lib/vnstat/';

指定显示标题

$iface_title['eth0'] = 'eth0';

下面设置以什么图片格式显示,可以是svg或png,一般选择png就可以,svg在IE下需要安装插件,Firefox不需要;如果用png在IE、Firefox下均能直接显示。

$graph_format='png';

指定vnstat的安装目录,如果是安装上述方法安装,直接按下面填写即可。

$vnstat_bin = '/usr/bin/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';

修改语言为英语:$language = 'nl'; 将nl替换为en 保存。

同时修改一下vnstat网站目录下的vnstat.php,将里面的vnstat_dump_删除。

这一切都搞好后,现在用https://www.abc.com/vnstat/访问,就会发现有流量统计了,统计的数据更新是5分钟刷新一次,php.ini的disable_functions里面不能禁用popen函数。


相关博文:

发表新评论