python监控网卡流量并使用graphite绘图的示例
#!/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)
相关推荐
-
Python 绘图和可视化详细介绍
Python之绘图和可视化 1. 启用matplotlib 最常用的Pylab模式的IPython(IPython --pylab) 2. matplotlib的图像都位于Figure对象中. 可以使用plt.figure创建一个新的Figure,不能通过空Figure绘图,必须用add_subplot创建一个或多个subplot axes[0,1]可以通过sharex和sharey指定subplot应该具有相同的X轴或Y轴. 利用Figure的subplots_adjust方法可以修改间距,w
-
python使用matplotlib绘图时图例显示问题的解决
前言 matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包.在使用Python matplotlib库绘制数据图时,需要使用图例标注数据类别,但是传参时,会出现图例解释文字只显示第一个字符,需要在传参时在参数后加一个逗号(应该是python语法,加逗号,才可以把参数理解为元组类型吧),就可解决这个问题, 示例如下 import numpy as np import matplotlib.pyplot as plt from matplotlib.ticker
-
python的绘图工具matplotlib使用实例
matplotlib是功能十分强大的绘制二维图形的Python模块,它用Python语言实现了MATLAB画图函数的易用性,同时又有非常强大的可定制性.它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中.它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序.因此如果你需要绘制某种类型的图,只需要在这个页面中浏览.复制.粘贴一下,基本上都能搞定! 实例代码如下: 1. 柱状图 import matp
-
python海龟绘图实例教程
本文以实例形式介绍了python turtle模块即海龟绘图的使用方法,对于需要进行图形编程的朋友相信会有一定的借鉴价值. python turtle模块简介: python2.6版本中引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics) 1.使用海龟绘图首先我们需要导入turtle,如下所示: from turtle import * #将turtle中的所有方法导入 2.海龟绘图属性: (1)位置 (2)方向 (3)画笔(画笔的属性,颜色.画线的宽度) 3.操纵海龟
-
python 简单的绘图工具turtle使用详解
目录 1. 画布(canvas) 1.1 设置画布大小 2. 画笔 2.1 画笔的状态 2.2 画笔的属性 2.3 绘图命令 3. 命令详解 4. 绘图举例 4.1 太阳花 4.2 绘制小蟒蛇 4.3 绘制五角星 python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使用导入即可 import turtle type(turtle) >>> type(turtle) <c
-
python绘图方法实例入门
本文实例讲述了python绘图方法.分享给大家供大家参考.具体如下: # -*- coding:utf-8 -*- import matplotlib.pyplot as plt def main(): # 颜色列表 colorList = ['b','g','r','c','m','y','k'] # 共用的横坐标 threadList = [1,2,4,8,10] # 设置横坐标和纵坐标的名称 plt.xlabel('threads') plt.ylabel('concurrent') #
-
python绘图库Matplotlib的安装
本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地 进行制图.Matplotlib的安装可以参见:官网链接 http://matplotlib.org/users/installing.html 安装总结步骤如下: windows 平台上下载.exe格式 直接安装. 1.python下载安装 下载地址:http://www.python.org/download/
-
python监控网卡流量并使用graphite绘图的示例
复制代码 代码如下: #!/usr/bin/env pythonimport sys,timefrom socket import socketdef 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[int
-
一个监控网卡流量的shell脚本
实现代码: #!/bin/bash eth_in_old=$(ifconfig eth0|grep "RX bytes"|sed 's/RX bytes://'|awk '{print $1}') eth_out_old=$(ifconfig eth0|grep "RX bytes"|sed 's/.*TX bytes://'|awk '{print $1}') sleep 1 eth_in_new=$(ifconfig eth0|grep "RX byt
-
Linux服务器网卡流量查看方法 shell和Python各一枚
有时我们需要较为实时的查看服务器上的网卡流量,这里我写了两个小脚本,一个用shell(先写的,一次只能查看一个网卡),另一个用Python(后写的,一次可查看多个网卡). 脚本中都用了while true"死循环",每隔10s从"/proc/net/dev"中取一次值并根据10s内的差值计算10s内的平均带宽:按ctrl+c停止执行.脚本兼容centos6和7 两个脚本都不太复杂,而且脚本中注释也比较细致,所以我就不过多解释脚本内容了. 直接上图上脚本: shell
-
Linux使用 iftop 实时监控网卡的流量
Linux使用 iftop 实时监控网卡的流量,,具体内容如下所示: iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等. 在Linux/类Unix系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop. 安装iftop 如果采用编译安装可以到iftop官网下载最新的源码包.安装前需要已经安装好基本的编译所需的环境,比如make.gcc.aut
-
Linux用户建立脚本/猜字游戏/网卡流量监控介绍
目录 1.用户建立脚本 2.猜字游戏 3.网卡流量监控 1.用户建立脚本 (1)设计文件判断模块 (2)设计用户建立 (3)文件内容 脚本内容 #!/bin/bash USERADD(){ #用户创建函数 RN=$(sed -n '$=' $1) for ((I=1;I<=$RN;I++)) do user=`sed -n "$I"p $1` password=`sed -n "$I"p $2` id $user &>/dev/null #判断该
-
详解Linux查看实时网卡流量的几种方式
在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查看Linux服务器的实时网卡流量. 1. sar -n DEV 1 2 sar命令包含在sysstat工具包中,提供系统的众多统计数据.其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量. sar –n DEV 1 2 命令后面1 2 意思是:每一秒钟取1次值,取2次. DEV显示网络接口信息 另外,-n参数很有用,他有6个不同的开关:DEV | EDEV
-
使用Python对Syslog信息进行分析并绘图的实现
实验目的: 对设备Syslong信息进行分析记录,并写入sqlite数据库中:后续读取数据库的信息,对Syslog的严重级别分布.来源进行分析进行分析. 同时监控OSPF的状态信息,状态一旦改变,进行告警. 实验结果: 监控Syslog的严重级别分布,和日志源分布,并绘图: 监控OSPF状态信息: 实验环境: 两台CSR1000v,完成Syslog(其中一台)和OSPF的配置: logging hosy x.x.x.x /将Syslong日志信息发送给目的主机(运行python)进行处理. lo
-
python监控linux内存并写入mongodb(推荐)
(需要安装psutil 用来获取服务器资源,以及pymongo驱动)#pip install psutil #pip install pymongo #vim memory_monitory.py 文件内容如下 #!/usr/bin/env python # -*- coding: UTF-8 -*- import psutil import socket import time from pymongo import MongoClient mongodbIp = '192.168.200.1
-
统计网卡流量的两段shell脚本(使用ifconfig)
使用shell脚本计算Linux网卡流量,方法中最关键点: 复制代码 代码如下: ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}' 通过ifconfig eth0|grep bytes 得到输入输出的流量. 复制代码 代码如下: /@rac2=>dd2$ifconfig eth0|grep bytes RX bytes:1638005313300 (1.4 TiB) TX bytes:340806
-
python监控网站运行异常并发送邮件的方法
本文实例讲述了python监控网站运行异常并发送邮件的方法.分享给大家供大家参考.具体如下: 这是一个简单的python开发的监控程序,当指定网页状态不正常是通过smtp发送通知邮件 复制代码 代码如下: #!/usr/bin/env python # -*- coding: UTF-8 -*- #author libertyspy import socket import smtplib import urllib mail_options = { 'server':'smtp.qq
随机推荐
- SQL数据库的高级sql注入的一些知识
- Spring整合TimerTask实现定时任务调度
- Oracle9i的全文检索技术开发者网络Oracle
- Oracle数据完整性和锁机制简析
- python 实现插入排序算法
- 浅析BootStrap Treeview的简单使用
- PHP实现多维数组转字符串和多维数组转一维数组的方法
- 递归删除一个节点以及该节点下的所有节点示例
- PHP 变量的定义方法
- 用Eclipse连接MySQL数据库的步骤
- Android编程之判断SD卡状态的方法
- Js获取事件对象代码
- ASP.NET ASHX中获得Session的方法
- linux 检测远程端口是否打开方法总结
- jQuery中bind()方法用法实例
- python实现文本文件合并
- 利用node.js制作命令行工具方法教程(一)
- 不一样的文字闪烁 轮番闪烁
- 使用Django Form解决表单数据无法动态刷新的两种方法
- javascript实现随时变化着的背景颜色