您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

python监控网卡流量并使用graphite绘图的示例

2024/5/24 11:35:12发布21次查看
代码如下:
#!/usr/bin/env python
import sys,time
from socket import socket
def read_interface(in_file):
    with file(in_file) as f:
        return f.readlines()[2:]
def set_interface(inter_msg):
    dic={}
    for i in xrange(len(inter_msg)):
        dic[inter_msg[i].split(:)[0].strip()]={in:inter_msg[i].split(:)[1].strip().split()[0],out:inter_msg[i].split(:)[1].strip().split()[8]}
    return dic
carbon_server = '127.0.0.1'
carbon_port = 2003
delay = 3
sock = socket()
try:
    sock.connect( (carbon_server,carbon_port) )
except:
    print couldn't connect to %(server)s on port %(port)d, is carbon-agent.py running? % { 'server':carbon_server, 'port':carbon_port }
    sys.exit(1)
while true:
    now = int( time.time() )
    lines=[]
    int1=read_interface(/proc/net/dev)
    inter_dic1=set_interface(int1)
    time.sleep(1)
    int2=read_interface(/proc/net/dev)
    inter_dic2=set_interface(int2)
    print int(inter_dic2[inter_dic2.keys()[1]][in]),int(inter_dic1[inter_dic1.keys()[1]][in])
    for i in xrange(len(inter_dic1.keys())):
        lines.append(interface.%s_in %s %d % (inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]][in])-int(inter_dic1[inter_dic1.keys()[i]][in]),now))
        lines.append(interface.%s_out %s %d % (inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]][out])-int(inter_dic1[inter_dic1.keys()[i]][out]),now))
    message = '\n'.join(lines) + '\n'
    print sending message\n
    print '-' * 80
    print message
    sock.sendall(message)
    time.sleep(delay)
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product