利用python实现网卡流量图表绘制!!!

项目背景:

利用python实现一个自动化的网卡流量图表绘制,这对于我们实现自动化运维平台有更深入的理解,

也会让我们对于现有的一些监控软件的一些实现都有很大的帮助。

实现环境:

虚拟机VMware Workstation 12 player

服务器:centos6.5的系统  ip:192.168.0.25

python2.6.6

rrdtool模块、time模块、psutil模块。

SecureCRT ssh远程连接软件

实验过程:

思路其实很清醒:创建rrd数据库---->数据写入rrd数据库----->根据数据画图  ok!!!完事儿

一、首先创建我们的工作目录,然后创建三个文件(create.py、update.py、graph.py)。

二、创建rrd数据库。

[[email protected] www rrdtool]# cat create.py

#!/usr/bin/env python

import rrdtool

import time

cur_time=str(int(time.time()))

rrd=rrdtool.create(‘Flow.rrd‘,‘--step‘,‘300‘,‘--start‘,cur_time,

‘DS:eth0_in:COUNTER:600:0:U‘,

‘DS:eth0_out:COUNTER:600:0:U‘,

‘RRA:AVERAGE:0.5:1:600‘,

‘RRA:AVERAGE:0.5:6:700‘,

‘RRA:AVERAGE:0.5:24:775‘,

‘RRA:AVERAGE:0.5:288:797‘,

‘RRA:MAX:0.5:1:600‘,

‘RRA:MAX:0.5:6:700‘,

‘RRA:MAX:0.5:24:775‘,

‘RRA:MAX:0.5:444:797‘,

‘RRA:MIN:0.5:1:600‘,

‘RRA:MIN:0.5:6:700‘,

‘RRA:MIN:0.5:24:775‘,

‘RRA:MIN:0.5:444:797‘)

if rrd:

print rrdtool.error()

赋予执行权限执行一下。

可以看到我们创建了一个名字是Flow.rrd的数据库文件。

三、数据写入到rrd数据库

[[email protected] www rrdtool]# cat update.py

#!/usr/bin/env python

import rrdtool

import time,psutil

total_input_traffic = psutil.net_io_counters()[1]

total_output_traffic = psutil.net_io_counters()[0]

starttime=int(time.time())

update=rrdtool.updatev(‘/home/test/rrdtool/Flow.rrd‘,‘%s:%s:%s‘ %

(str(starttime),str(total_input_traffic),str(total_output_traffic)))

print update

执行一下,数据写入~~~

四、最后一步,绘图!!!!!

[[email protected] www rrdtool]# cat  graph.py

#!/usr/bin/python

import rrdtool

import time

title="Server network  traffic flow ("+time.strftime(‘%Y-%m-%d‘,

time.localtime(time.time()))+")"

rrdtool.graph( "Flow.png", "--start", "-1d","--vertical-label=Bytes/s",

"--x-grid","MINUTE:12:HOUR:1:HOUR:1:0:%H",

"--width","650","--height","230","--title",title,

"DEF:inoctets=Flow.rrd:eth0_in:AVERAGE",

"DEF:outoctets=Flow.rrd:eth0_out:AVERAGE",

"CDEF:total=inoctets,outoctets,+",

"LINE1:total#FF8833:Total traffic",

"AREA:inoctets#00FF00:In traffic",

"LINE1:outoctets#0000FF:Out traffic",

"HRULE:6144#FF0000:Alarm value\\r",

"CDEF:inbits=inoctets,8,*",

"CDEF:outbits=outoctets,8,*",

"COMMENT:\\r",

"COMMENT:\\r",

"GPRINT:inbits:AVERAGE:Avg In traffic\: %6.2lf %Sbps",

"COMMENT:   ",

"GPRINT:inbits:MAX:Max In traffic\: %6.2lf %Sbps",

"COMMENT:  ",

"GPRINT:inbits:MIN:MIN In traffic\: %6.2lf %Sbps\\r",

"COMMENT: ",

"GPRINT:outbits:AVERAGE:Avg Out traffic\: %6.2lf %Sbps",

"COMMENT: ",

"GPRINT:outbits:MAX:Max Out traffic\: %6.2lf %Sbps",

"COMMENT: ",

"GPRINT:outbits:MIN:MIN Out traffic\: %6.2lf %Sbps\\r")

执行它,绘图!!!

可以看到我们生成了一个图片,你肯定是想看一幅漂亮的图片,而不是这个!!!!

可以看到,有没有很神奇!!!!!!!!!!!!件相当于我们自己写了一个监控软件,而且看起来还很美!!!!!

总结:通过这个项目我们可以对与监控有更清晰的认识,其实一般也就这三步:

创建rrd数据库---->数据写入rrd数据库----->根据数据画图  ok!!!完事儿

希望大家可以得到学习,谢谢,知识在于共享!!!!

时间: 2024-12-21 17:37:45

利用python实现网卡流量图表绘制!!!的相关文章

【Python运维脚本】Python监控网卡流量

#!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7 #Author: [email protected]126.com #Python监控网卡流量 """ 1.实现原理:通过SNMP协议获取系统信息,再进行相应的计算和格式化,最后输出结果 2.特别注意:被监控的机器上需要支持snmp.yum install -y net-snmp*安装 """ #!/usr/bin/pytho

graphite,python监控网卡流量

#!/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].s

rrdtool结合python统计网卡流量

import rrdtoolimport time cur_time=str(int(time.time()))rrd=rrdtool.create('Flow.rrd','--step','300','--start',cur_time, #Flow.rrd 文件名,--step表示写数据的频率,--start表示第一条记录的起始时间'DS:eth0_in:COUNTER:600:0:U', #DS定义数据源,网卡eth0入流量,counter表示递增(DST定义数据类型),后面的表示600秒

利用Python 调用turtle函数库 绘制奥运五环。

import turtle #调用turtle库绘制图像的函数库turtle.color("blue") #颜色 蓝色turtle.circle(100) #画半径100的圆 turtle.penup() #抬起笔turtle.goto(-180,0) #移动到turtle.pendown() #放笔turtle.color("red") #颜色 红色turtle.circle(100) #画半径100的圆 turtle.penup() #提起笔turtle.got

用 Python 脚本实现对 Linux 服务器的网卡流量监控

*这篇文章网上已经有相关代码,为了加深印象,我做了相关注释,希望对朋友们有帮助 工作原理:基于/proc文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,这是通过/proc 虚拟文件系统实现的./proc 文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc"),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参

查看Linux服务器网卡流量小脚本shell和Python各一例

有时我们需要较为实时的查看服务器上的网卡流量,这里我写了两个小脚本,一个用shell(先写的,一次只能查看一个网卡),另一个用Python(后写的,一次可查看多个网卡).脚本中都用了while true"死循环",每隔10s从"/proc/net/dev"中取一次值并根据10s内的差值计算10s内的平均带宽:按ctrl+c停止执行.脚本兼容centos6和7 两个脚本都不太复杂,而且脚本中注释也比较细致,所以我就不过多解释脚本内容了.直接上图上脚本: shell版-

cacti监控思科路由器网卡流量

最近刚换工作,公司40多人共用一个20M带宽的无线网络,路由器为思科R2911.老大让我整一个cacti来监控思科路由网卡流量.整了几天都获取不了snmp数据,最后要了路由权限才发现,上任运维临走把路由snmp服务关了,留下的文档写的很详细的他怎么打开并配置的snmp,心中一万个草泥马奔腾而过啊.不过庆幸有文档,可以很快的上手配置路由器.cacti监控还是很好配置,也是很好用的,对于有监控路由器流量或硬件负载的,可以研究一下. cacti是一个基于LAMP,SNMP,以及RRDTool的服务,是

利用Python进行数据分析(一)简单介绍

一.处理数据的基本内容 数据分析 是指对数据进行控制.处理.整理.分析的过程. 在这里,“数据”是指结构化的数据,例如:记录.多维数组.Excel 里的数据.关系型数据库中的数据.数据表等. 二.说说 Python 这门语言 Python 是现在最受欢迎的动态编程语言之一(还有 Perl.Ruby 等).近些年非常流行用 Python 建站,比如流行的 Python Web 框架 Django. Python 这类语言被称为脚本语言,因为它们可以编写简短粗糙的小程序,即脚本.不过这好像在说 Py

利用python进行数据分析--(阅读笔记一)

以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分代码组成:少量需要占用大部分执行时间的代码,以及大量不经常执行的“粘合剂代码”. cython已经成为python领域中创建编译型扩展以及对接c/c++代码的一大途径. 3.在那些要求延迟性非常小的应用程序中(例如高频交易系统),为了尽最大可能地优化性能,耗费时间使用诸如C++这样更低级.更低生产率的语言进行