centos使用vnStat监控VPS流量

2018年3月22日星期四

centos使用vnStat监控VPS流量


听到熊猫大佬的话用来AWS的机器,5刀一个月的,BUT,这玩意儿尽然没法看流量用了好多,所以又问了熊猫大佬,大佬说用vnstat,所以到处去找了一下,发现了一篇帖子,然后我就搬过来啦~


[v_error]注意:昨天我装好之后一直出现500错误,问了大佬之后发现是php扩展的问题,安装完php之后要删掉popen[/v_error]

安装vnStat



首先我们要安装源,然后再来安装vnStat,我个人觉得安装源最方便最简单。

安装源



目前可以直接通过执行命令: yum install epel-release 直接进行安装,如果此命令无法安装可以尝试以下方法

CentOS/RHEL 5 :


rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-5.noarch.rpm


CentOS/RHEL 6 :


rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm


CentOS/RHEL 7 :


rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm


Ok,源安装完毕。

安装vnStat




centos执行命令:

yum install vnstat -y


Fedora安装命令:

yum install vnstat 或 dnf install vnstat


Debian/Ubuntu安装命令:

apt-get install vnstat



使用yum或apt-get安装vnstat基本上不需要设置,默认基本上就能正常用。vnstat的配置文件在/etc/vnstat.conf 自己可以根据需要修改配置文件。
可以ifconfig看看自己的网卡是否是eth0,一般情况下Xen、KVM的VPS都是eth0 有多个IP可能还有eth1等,OpenVZ的是venet0,如果不是eth0,调整配置文件里的 Interface "eth0" 即可。

执行一下:vnstat -u -i eth0 创建上对应网卡的数据库,eth0根据前面的说明自己修改网卡。CentOS的话还需要调整 /etc/sysconfig/vnstat 配置文件里面的网卡名称。

设置开机启动并启动daemon自动记录数据

CentOS:

chkconfig --add vnstat && chkconfig vnstat on


Debian/Ubuntu:

update-rc.d vnstat enable



启动vnstat daemon:/etc/init.d/vnstat start

设置完成,vnstat已经在后台工作了。

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 --help 进行查看。

vnstat PHP图形查看


还是要有GUI查看起来方便点,不然每次都要用命令去查看,好麻烦的。
首先使用lnmp搭建好nginx+php环境,然后再来安装GUI。

yum -y install wget screen
screen -S lnmp
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp #如果不用来做网站,就只需要nginx和php就行了

安装好了nginx+php接着进入正题,安装PHP图形界面。

wget https://file.digac.cc/Linux/vnstat/vnstat_php_frontend-1.5.1.zip
#wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz 这是官方的下载地址


解压文件,改名为vnstat,然后上传到某个网站根目录下,这样就可以以http://你的网站或IP/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'] = 'VPSer-Linode';

下面设置以什么图片格式显示,可以是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_删除。

这一切都搞好后,现在用 www.mydomain.com/vnstat/访问,就会发现有流量统计了,统计的数据更新是5分钟刷新一次.

原文链接


原文链接

3 条评论 :

  1. 请问我在centos下,安装的vnstat,为啥不自动更新流量?总需要 vnstat -u 一下才可以?还必须是root权限下才行。而且有时候就算vnstat -u也不能更新数据,数据库和网卡检查了,是对应的 eth0 。请问还有哪里需要注意的?

    回复删除
  2. 有可能是系统把杀死了进程,我也遇到过几次,设置一个守护可以解决。

    回复删除
  3. 已经解决了,是权限问题。

    回复删除