debian下vnstat详细配置
安装ServerStatus探针中,各商家服务器修改流量统计数据配置vnstat会出现各种奇形怪状的问题,所以单独拎出来写一遍详细配置过程。
环境debian 虚拟化KVM 网卡eth0
只是为了ServerStatus统计流量数据,所以直接apt安装就好了。
安装
apt install update
apt install vnstat
安装完成默认已经启动,接下来修改配置文件,如果主机默认网卡是eth0
可以直接看ServerStatus后端配置了。
首先ifconfig
查看需要记录的网卡,然后修改配置文件监控指定网卡,当然也可以直接命令行创建监控指定网卡命令vnstat -u -i eth0
配置文件修改:vim /etc/vnstat.conf
Interface "eth0" #设置默认网络接口
修改完后重启下服务systemctl restart vnstat
查看当月数据vnstat -m
由于数据并不是实时刷新,如果只输出了网卡却没有流量数据,先跑点大流量行为,例如油管、下载等等...
稍等几分钟重新查看即可。
ServerStatus
修改客户端文件,找到def liuliang():
函数改为Vnstat统计,先分别执行vnstat --dumpdb
和vnstat --oneline b
,都没有报错,优先使用vnstat --oneline b
方式,近期重装发现似乎没有版本限制。
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
如果是编译安装Vnstat,版本大于2.0,应使用下面的
def liuliang():
NET_IN = 0
NET_OUT = 0
vnstat=os.popen('vnstat --oneline b').readline()
mdata=vnstat.split(";")
NET_IN=int(mdata[8])
NET_OUT=int(mdata[9])
return NET_IN, NET_OUT
其它
自启与启动
systemctl enable vnstat.service
service vnstat start
查看状态
systemctl status vnstat
删除网卡数据库
vnstat --delete --force -i eth0
标签:vnsta, ServerStatus