OpenVZ安装vnStat流量监控
背景故事
现在已经把BGM站搬迁到自己的VPS上,虽然设置了防盗链,但是一直也没仔细查看过VPS一个月要用多少流量,为避免流量飙升导致的问题,需要一个监控流量的东西方便自己随时查看。
于是Google了一下,知晓了这个叫vnStat的东西。
安装及配置
这里说明一下,这里安装时两部分内容。
第一部分是安装vnstat,第二部分是提供一个可视化图形页面。
安装vnstat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[root@vps ~]# wget http://humdi.net/vnstat/vnstat-1.11.tar.gz [root@vps ~]# tar -zxvf vnstat-1.11.tar.gz [root@vps ~]# cd vnstat-1.11 [root@vps vnstat-1.11]# make make -C src make[1]: Entering directory `/root/vnstat-1.11/src' gcc -O2 -c -o vnstat.o vnstat.c gcc -O2 -c -o ifinfo.o ifinfo.c gcc -O2 -c -o dbxml.o dbxml.c gcc -O2 -c -o dbshow.o dbshow.c gcc -O2 -c -o dbaccess.o dbaccess.c gcc -O2 -c -o dbmerge.o dbmerge.c gcc -O2 -c -o common.o common.c gcc -O2 -c -o misc.o misc.c gcc -O2 -c -o cfg.o cfg.c gcc -O2 -c -o traffic.o traffic.c gcc vnstat.o ifinfo.o dbxml.o dbshow.o dbaccess.o dbmerge.o common.o misc.o cfg.o traffic.o -lm -o vnstat gcc -O2 -c -o vnstatd.o vnstatd.c gcc -O2 -c -o dbcache.o dbcache.c gcc vnstatd.o ifinfo.o dbaccess.o dbcache.o common.o misc.o cfg.o -lm -o vnstatd make[1]: Leaving directory `/root/vnstat-1.11/src' [root@vps vnstat-1.11]# make install Installing vnStat... Installing config to /etc/vnstat.conf install -d -m 755 /usr/bin /usr/sbin /usr/share/man/man1 /usr/share/man/man5 /var/lib/vnstat install -s -m 755 src/vnstat /usr/bin install -s -m 755 src/vnstatd /usr/sbin install -m 644 man/vnstat.1 /usr/share/man/man1 install -m 644 man/vnstatd.1 /usr/share/man/man1 install -m 644 man/vnstat.conf.5 /usr/share/man/man5 No startup script or cron entry has been installed. See the INSTALL document for instructions on how to enable vnStat. |
到这里vnstat安装完毕,现在来配置一下。
配置vnstat
我们需要配置一下vnstat监控的网卡,可以使用ifconfig来看,一般OpenVZ都是venet0,我们就监控venet0就行了。
监视venet0,并生成数据库
1 |
[root@vps vnstat-1.11]# vnstat -u -i venet0 |
检查是否存在/etc/cron.d/vnstat,如果不存在,则创建一个。
1 |
[root@vps vnstat-1.11]# touch /etc/cron.d/vnstat |
内容为:
1 2 |
0-55/5 * * * * root vnstat -u -i venet0 0-55/5 * * * * root vnstat --dumpdb -i venet0 >/var/lib/vnstat/vnstat_dump_venet0 |
这是为了生成文件供图形页面使用,也有文章指出不必dump出文件,大D尝试不生成之后是没有显示数据的。还是让它生成吧。
文件创建完毕之后,我们来修改vnstat的设置。
1 |
[root@vps vnstat-1.11]# vim /etc/vnstat.conf |
将第6行的
Interface "erh0"
改为
Interface "venst0"
安装vnStat PHP frontend模组
1 2 3 4 5 6 |
[root@vps vnstat-1.11]# cd /usr/local/apache/htdocs //这里可以选择新建一个文件夹来使用,这样就可以访问 http://www.example.com/123/来访问图形页面了 [root@vps htdocs]# mkdir 123 [root@vps htdocs]# wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz [root@vps htdocs]# tar xvzf vnstat_php_frontend-1.5.1.tar.gz [root@vps htdocs]# mv -f vnstat_php_frontend-1.5.1 /usr/local/apache/htdocs/123/ |
配置
1 2 |
[root@vps htdocs]# cd 123 [root@vps 123]# vim config.php |
将
$language = 'nl';
修改为
$language = 'en';
这是修改图形化页面显示语言,暂不支持简体中文,原始是荷兰语,改成英语。
修改数据目录,将
$data_dir='./dump';
改为
$data_dir='/var/lib/vnstat/';
若/var/lib/vnstat不存在,就创建一个。
1 |
[root@vps 123]# mkdir -p /var/lib/vnstat/ |
修改显示标题
将
$iface_title['eth0'] = 'Internal';
修改为
$iface_title['venet0'] = 'VPS';
修改图片显示格式
$graph_format='svg';
修改为
$graph_format='png';
将需要监控的网卡添加上,注释掉以下几行
// list of network interfaces monitored by vnStat
//$iface_list = array('eth0','sixxs');
//$iface_list = array('eth0',);
添加
//$iface_list = array('venet0');
这些都搞好之后,就可以通过前面设置的地址来访问量了。
番外:如果cron获取不到数据怎么办
使用vnstat的守护进程
1 2 3 4 5 6 7 8 9 |
[root@vps ]# vnstatd -d [root@vps ]cd /etc/init.d [root@vps init.d]wget http://humdi.net/vnstat/init.d/redhat/vnstat [root@vps init.d]chmod +x vnstat [root@vps init.d]chkconfig --add vnstat [root@vps init.d]chkconfig vnstat on [root@vps init.d]service vnstat restart Shutting down vnstatd: [ OK ] Starting vnstatd: [ OK ] |
已有 4 条评论
发表评论
电子邮件地址不会被公开。 必填项已标注。
沙发。。。
有vps就是幸福呢。。。
@第三人称 也就那么回事儿吧,这几天好像还有个月付10来块钱的Xen的VPS。就是内存小一点,不知道现在还能不能买。。
有了VPS,流量也是坑坑的造啊。目测一个月要35G+。。
于是你还是把电台的歌丢到VPS了
@千寻 没搞定防盗链的时候,我是肯定不会放到VPS上的,现在有个能搞定大多数用户的防盗链,于是就放到VPS上。哇咔咔。。