如何采用Python zabbix_api 获取性能数据

# 最近领导需要一份数据,OpenStack ,VMware,物理机之间的性能报告,在撰写报告之前需要数据支撑,我们采用的是zabbix 监控,需要采取一周内的历史数据作为对比,那数据如何获取,请看以下章节

#/usr/bin/env python
#-*-coding:UTF-8
"""
    wget http://doc.bonfire-project.eu/R4.1/_static/scripts/fetch_items_to_csv.py
    http://doc.bonfire-project.eu/R3/monitoring/bonfire_monitoring_data_to_csv.html
"""

import os,sys,time

users=u‘admin‘
pawd = ‘admin‘

exc_py = ‘/data/zabbix/fetch_items_to_csv.py‘

os.system(‘easy_install zabbix_api‘)
os.system(‘mkdir -p /data/zabbix/cvs/‘)

if not os.path.exists(exc_py):
    os.system("mkdir -p /data")
    os.system("wget http://doc.bonfire-project.eu/R4.1/_static/scripts/fetch_items_to_csv.py -O /data/zabbix/fetch_items_to_csv.py")

def show_items(moniter, dip):
    items = dict()
    items[‘io_read_win‘] = "perf_counter[\\2\\16]"
    items[‘io_write_win‘] = "perf_counter[\\2\\18]"
    items[‘io_read_lin‘] = "iostat[,wkB\/s]"
    items[‘io_write_lin‘] = "iostat[,rkB\/s]"

    items[‘cpu_util‘] = "system.cpu.util"

    items[‘net_in_linu_vm‘] = "net.if.in[eth0]"
    items[‘net_out_lin_vm‘] = "net.if.out[eth0]"

    items[‘net_in_win_vm‘] = "net.if.in[Red Hat VirtIO Ethernet Adapter]"
    items[‘net_in_win_vm_2‘] = "net.if.in[Red Hat VirtIO Ethernet Adapter #2]"
    items[‘net_in_win_vm_3‘] = "net.if.in[Red Hat VirtIO Ethernet Adapter #3]"

    items[‘net_out_win_vm‘] = "net.if.out[Red Hat VirtIO Ethernet Adapter]"
    items[‘net_out_win_vm_2‘] = "net.if.out[Red Hat VirtIO Ethernet Adapter #2]"
    items[‘net_out_win_vm_3‘] = "net.if.out[Red Hat VirtIO Ethernet Adapter #3]"

    items[‘net_in_phy_web‘] = "net.if.in[bond0]"
    items[‘net_out_phy_web‘] = "net.if.out[bond0]"

    items[‘net_in_phy_db‘] = "net.if.in[bond0]"
    items[‘net_out_phy_db‘] = "net.if.out[bond0]"

    items[‘net_in_phy_web‘] = "net.if.in[TEAM : WEB-TEAM]"
    items[‘net_out_phy_web‘] = "net.if.in[TEAM : WEB-TEAM]"

    items[‘net_in_phy_db‘] = "net.if.in[TEAM : DB Team]"
    items[‘net_out_phy_db‘] = "net.if.out[TEAM : DB Team]"

    items[‘iis_conntion‘] = "perf_counter[\\Web Service(_Total)\\Current Connections]"
    items[‘tcp_conntion‘] = "k.tcp.conn[ESTABLISHED]"

    for x,y in items.items():
        print x,y,dip
        os.system(‘mkdir -p /data/zabbix/cvs/%s‘ % dip)
        cmds = """ 
        python /data/zabbix/fetch_items_to_csv.py -s ‘%s‘ -n ‘%s‘ -k ‘%s‘ -u ‘%s‘ -p ‘%s‘ -t1 ‘2015-06-23 00:00:01‘ -t2 ‘2015-06-30 00:00:01‘ -o /data/zabbix/cvs/%s/%s_%s.cvs""" %(moniter,dip,y,users,pawd,dip,dip,x)
         
        os.system(cmds)

def work():
    moniter=‘192.168.1.1‘
    ip_list = [‘192.168.1.11‘,‘192.168.1.2‘,‘192.168.1.3‘,‘192.168.1.10‘]
    for ip in ip_list:
        show_items(moniter,ip )

if __name__ == "__main__":
    sc = work()
时间: 2024-08-02 06:57:46

如何采用Python zabbix_api 获取性能数据的相关文章

python pandas 获取列数据的几种方法及书写形式比较

pandas获取列数据位常用功能,但在写法上还有些要注意的地方,在这里总结一下: ''' author: zilu.tang 2015-12-31 ''' import pandas as pd data1 = pd.DataFrame(...) #任意初始化一个列数为3的DataFrame data1.columns=['a', 'b', 'c'] 1. data1['b'] #这里取到第2列(即b列)的值 2. data1.b #效果同1,取第2列(即b列) #这里b为列名称,但必须是连续字

Python监控进程性能数据并画图保存为PDF文档

引言 利用psutil模块(https://pypi.python.org/pypi/psutil/),可以很方便的监控系统的CPU.内存.磁盘IO.网络带宽等性能參数,下面是否代码为监控某个特定程序的CPU资源消耗.打印监控数据,终于画图显示,而且保存为指定的 PDF 文档备份. 示范代码 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Copyright (C) 2015 By Thomas Hu. All rights reserved.

通过Python SDK 获取tushare数据

导入tushare import tushare as ts 这里注意, tushare版本需大于1.2.10 设置token ts.set_token('your token here') 以上方法只需要在第一次或者token失效后调用,完成调取tushare数据凭证的设置,正常情况下不需要重复设置.也可以忽略此步骤,直接用pro_api('your token')完成初始化 初始化pro接口 pro = ts.pro_api() 如果上一步骤ts.set_token('your token'

性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据

基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据   by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展示 实现功能 无需在被监控主机上安装代理,一键对Linux远程服务器不同主机执行性能监控.性能数据采集命令,并实时展示 支持跨堡垒机收集实时性能数据(注:定制化开发,非通用) 支持docker容器(因为程序实现是从docker容器内部获取性能数据,所以目前仅支持 CPU,内存,I/O) 使用前提 可

原 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)

大家都说反射耗性能,但是到底有多耗性能,哪些反射方法更耗性能:这些问题却没有统一的描述. 本文将用数据说明反射各个方法和替代方法的性能差异,并提供一些反射代码的编写建议.为了解决反射的性能问题,你可以遵循本文采用的各种方案. 本文内容 反射各方法的性能数据 反射的高性能开发建议 创建类型的实例 反射获取 Attribute 反射调用公共 / 私有方法 使用预编译框架 附本文性能测试所用的代码 所有反射相关方法 IsDefined 和 GetCustomAttribute 的专项比较 参考资料 反

使用python获取webservice数据并输出到文件

上头要求设置TCP备案检查,给了个WEBSERVICE接口.查了2天,才确认还是python比较好用,我这水平也就写个脚本把数据导出,过滤检索还是用的shell.写此文备忘.WEBSERVICE接口脚本如下: #! /usr/bin/python #coding:utf-8 import codecs import suds def main(file_name, out_file): url = 'http://121.14.4.210:8088/icpautobj/ws/getIcp?wsd

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据

我曾经在系列文章中的<C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍>中介绍了微信菜单里面的重定向操作,通过这个重定向操作,我们可以获取一个code值,然后获取用户的openID,进而就能获取到更多的用户信息,这个在会员信息的场景里面用的很多,本篇介绍在网站中迅速配置这样的菜单链接,并介绍如何在后台获取相关的用户信息,实现页面数据个性化的展现操作. 我们知道,微信的自定义菜单分为两大类,分别对应Click类型和View类型的,而重定向属于View类型的一种,如下所示. 1.微信重

利用python获取股票数据

一.利用pandas API接口 Pandas库提供了专门从财经网站获取金融数据的API接口,可作为量化交易股票数据获取的另一种途径,该接口在urllib3库基础上实现了以客户端身份访问网站的股票数据. 通过查看Pandas的手册可以发现,第一个参数为股票代码,苹果公司的代码为"AAPL",国内股市采用的输入方式“股票代码”+“对应股市”,上证股票在股票代码后面加上“.SS”,深圳股票在股票代码后面加上“.SZ”.DataReader可从多个金融网站获取到股票数据,如“Yahoo! F