3、python自动化运维——定制业务质量报表

通过psutil和rrdtool模块相结合绘制网卡网络流量

实例代码:


./cretea.py

#!/usr/bin/python
 
import time
  import rrdtool
 
  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())


./update.py

import time,psutil   import rrdtool total_input_traffic=psutil.net_io_counters()[1] total_output_traffic=psutil.net_io_counters()[0] starttime=int(time.time()) update=rrdtool.updatev('/root/Scripts/rrdtools/Flow.rrd','%s:%s:%s' % (str(starttime),str(total_input_traffic),str(total_output_traffic)))   print(update)

./graph.py

import time,psutilimport rrdtool

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")

实现TCP探测目标路由轨迹

所需安装包:ImageMagick(转换图片格式工具),graphviz(绘制图形工具)

通过scapy的traceroute方法查询到路由轨迹,然后调用graph()方法进行路由轨迹的绘制,中间调用ASN映射查询IP地理信息并生成svg流程文档,最后使用ImageMagic工具转换svg格式为png格式。


import logging,warnings
  import sys,os,subprocess
  import time
 
  warnings.filterwarnings("ignore",category=DeprecationWarning)

#屏蔽scapy 无用信息
  logging.getLogger("scapy.runtime").setLevel(logging.ERROR)     
  #屏蔽模块IPV6多余告警
  from scapy.all   import traceroute
  domains=raw_input("please input you   domain name:\n")

#接受输入的域名或IP
  target=domains.split(" ")
  dport = [80]
 
  if len(target) >=1 and target[0]!='':
     res,unans =traceroute(target,dport=dport,retry=-2)#启动路由跟踪
     res.graph(target="> test.svg")    #生成svg图片
     time.sleep(1)
     subprocess.Popen("/usr/bin/convert test.svg test.png",shell=True)
  else:
     print("IP/domain name Error")

时间: 2024-08-02 07:51:51

3、python自动化运维——定制业务质量报表的相关文章

电子书 Python自动化运维:技术与最佳实践.pdf

本书在中国运维领域将有"划时代"的重要意义:一方面,这是国内一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的作者是中国运维领域的"偶像级"人物,本书是他在天涯社区和腾讯近10年工作经验的结晶.因为作者实战经验丰富,所以能高屋建瓴.直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息.服务监控.数据报表.系统安全等基础模块,而且深入讲解了自动化操作.系统管理.配置管理.集群管理及大数据应用等高级功能.重要的是,完整重现了4个

Python自动化运维开发活动沙龙(2015-07-11周六)

Python自动化运维开发活动沙龙 2015-07-11(周六) 场地限制,最多仅限50人参加,报名从速! 亲,已是2015年了,做为运维工程师的你还在手动装机器.配服务.看监控.帮开发人肉上线么?还在发愁如何把每天重复的工作自动化起来么?还在想对开源软件进行二次开发定制却无能为力么?还在对开发人员提出的各种无理需求想进行反驳却因为自己不懂开发却被人鄙视么?还在为自己天天努力工作.到处救火却每月只能挣个十来K而感到不爽么? Maybe yes,maybe no! 但是不要不爽了,你的工资不高是因

python自动化运维之路~DAY7

python自动化运维之路~DAY7 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.客户端/服务器架构 C/S 架构是一种典型的两层架构,其全称是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据:另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信. C/S 架构也可以看做是胖客户端架构.因为客户端需要实现绝大多数的业务

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

Python自动化运维课程学习--Day2

本文为参加老男孩Python自动化运维课程第二天学习内容的总结. 大致内容如下: 1.python模块初识 2.python程序运行流程 3.python数据类型(只讲了numbers, bool, strings, bytes, list, tuple, dict, set) 4.python数据运算 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 --Python IDE: PyCharm

python自动化运维之路~DAY10

python自动化运维之路~DAY10 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

python自动化运维之集中病毒扫描

1.因为我linux的python是2.6.6,所以因为有些模块是2.7的,先进行升级. 步骤地址:http://www.linuxidc.com/Linux/2014-07/104555.htm 2.安装pyclamd yum install -y clamav clamd clamav-update 安装clamavp的相关程序包 chkconfig --level 235 clamd on /usr/bin/freshclam pyClamd-0.3.15.tar.gz安装包安装 3.vi

(转)Python自动化运维之13、异常处理及反射(__import__,getattr,hasattr,setattr)

Python自动化运维之13.异常处理及反射(__import__,getattr,hasattr,setattr) 一.异常处理 python异常: python的运行时错误称作异常 (1)语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 (2)逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成.计算或者输出结果需要的过程无法执行等 python异常是一个对象,表示错误或意外情况 (1)在python检测到一个错误时,将触发一个异常 python可以通常异常传导机

Python自动化运维Django入门

随着IT运维技术日益更新,近几年运维自动化越来越火,而且学习python的人非常的火爆,尤其是python自动化运维开发,得到了很多前辈的推崇,尤其是老男孩培训中心.老男孩老师.Alex老师等,在这里非常感谢你们. 这里我也记录一下以前学习Django的一点点心得和方法,方便以后自己查阅,如果能帮助初学者是最好的了!好的,其他不多说了,博文滴走起. 一.系统实战环境 系统版本:CnetOS6.5 x86_64 Django版本:Django-1.5.8 MySQL版本:MySQL-5.1.73