安装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 --dumpdbvnstat --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

评论已关闭