小计:
更新:现在新版的已经有显示当月流量显示了
最近装上了ServerStatus中文版,监控了自己的vps起来,但是有些主机需要每个月重置流量。
于是就有了本文
安装ServerStatus中文版
GitHub地址:
[github.com](https://github.com/cppla/ServerStatus)
vnstat 探测流量与流量重置
1,安装vnstat
1.首先,您将需要为您的Linux版本启用EPEL存储库包
yum -y install epel-release
yum -y update
2.安装VnStat。
使用yum命令行实用程序在您的系统上安装vnstat包:
yum -y install vnstat
3,安装完成后重启下服务,获取接口信息
service vnstat restart
4,输入命令查看接口流量(默认5分钟刷新流量)
vnstat -q
如图所示:
也可以直接输入 vnstat -u
手动刷新流量显示值,然后输入 vnstat -q
查看新的流量
2.修改探针文件
1,修改client-linux.py
文件
将下列内容
def liuliang():
NET_IN = 0
NET_OUT = 0
with open('/proc/net/dev') as f:
for line in f.readlines():
netinfo = re.findall('([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)', line)
if netinfo:
if netinfo[0][0] == 'lo' or 'tun' in netinfo[0][0] \
or 'docker' in netinfo[0][0] or 'veth' in netinfo[0][0] \
or 'br-' in netinfo[0][0] or 'vmbr' in netinfo[0][0] \
or 'vnet' in netinfo[0][0] or 'kube' in netinfo[0][0] \
or netinfo[0][1]=='0' or netinfo[0][9]=='0':
continue
else:
NET_IN += int(netinfo[0][1])
NET_OUT += int(netinfo[0][9])
return NET_IN, NET_OUT
替换为
def liuliang():
NET_IN = 0
NET_OUT = 0
vnstat=os.popen('vnstat --dumpdb').readlines()
for line in vnstat:
if line[0:4] == "m;0;":
mdata=line.split(";")
NET_IN=int(mdata[3])*1024*1024
NET_OUT=int(mdata[4])*1024*1024
break
return NET_IN, NET_OUT
重启ServerStatus 生效
如果安装的 vnstat 版本不是 v1.x 而是新的 v2.x.替换为以下代码
def liuliang():
NET_IN = 0
NET_OUT = 0
vnstat=os.popen('vnstat --oneline').readlines()
for line in vnstat:
mdata=line.split(";")
NET_IN=str(mdata[8])
NET_IN=re.findall('\d+\.\d*', NET_IN)
NET_IN=int(float(NET_IN[0])*1024*1024*1024)
NET_OUT=str(mdata[9])
NET_OUT=re.findall('\d+\.\d*', NET_OUT)
NET_OUT=int(float(NET_OUT[0])*1024*1024*1024)
return NET_IN, NET_OUT
3,配置vnstat刷新时间和流量重置时间
修改文件/etc/vnstat.conf
配置文件
1,默认每月流量重置时间为 1 号
# on which day should months change
MonthRotate 1
2,默认流量刷新时间为5分钟
# how often (in minutes) bandwidth detection is redone when
# BandwidthDetection is enabled (0 = disabled)
BandwidthDetectionInterval 5
提示
修改了每月重置流量不是当月生效的,是下月生效。
如果不生效可以手动清除流量
rm -r /var/lib/vnstat/.*
rm -r /var/lib/vnstat/*
重启vnstat
service vnstat restart
参考/感谢
1.https://zbttl-github-io.vercel.app/fu-wu-qi-tan-zhen-yu-liu-liang-chong-zhi/