使用python获取整月每一天的系统监控数据生成报表
2023-09-14 09:07:47 时间
1.安装阿里开源监控工具tsar
wget -O tsar.zip https://github.com/alibaba/tsar/archive/master.zip --no-check-certificate unzip tsar.zip cd tsar make && make install
安装后,您可能会看到以下文件:
/etc/tsar/tsar.conf
,这是tsar的主要配置文件;/etc/cron.d/tsar
,用来运行tsar每分钟收集信息;/etc/logrotate.d/tsar
将每月轮换tsar的日志文件;/usr/local/tsar/modules
是所有模块库(* .so)所在的目录;
用法
运行tsar -l
以查看实时监控是否有效,例如,每秒显示状态(-i 1)
- null:查看默认mods历史数据,
tsar
- --modname:指定要显示的模块,
tsar --cpu
- -L / - list:列出可用的moudule,
tsar -L
- -l / - live:显示实时信息,
tsar -l --cpu
- -i / - interval:设置报告的间隔,
tsar -i 1 --cpu
- -s / - spec:指定模块详细信息字段,
tsar --cpu -s sys,util
- -D / - detail:不要将数据转换为K / M / G,
tsar --mem -D
- -m / - merge:将multiply项合并为一,
tsar --io -m
- -I / - item:显示规格项数据,
tsar --io -I sda
- -d / - date:指定数据,YYYYMMDD或n表示n天前
- -C / - 检查:显示最后的收集数据
- -h / - help:显示帮助,
tsar -h
2.写python脚本
python 2.7.5 的环境
#!/bin/python # encoding=utf-8 # Author By:BenjaminYang import calendar import time import os date=str(input('请输入你要查询的年月:\n(格式如:201811)\n----------------\n')) print('###############################################################################################') year=int(date[0:4]) #数据切片取得年 month=int(date[4:6]) #数据切片取得月 total_days=calendar.monthrange(year,month)[1] #根据年月组合获取该月共有多少天 start_time=time.time() def report_check(): i=0 #定义开始时间 #遍历每一天的tsar监控数据 while i<total_days: if i<9: i=i+1 date=str(year)+str(month)+str(0)+str(i) else: i=i+1 date=str(year)+str(month)+str(i) os.environ['date']=date #将获取到的数据写入文件 cpu=os.popen("tsar -d $date|grep MEAN|awk '{print $2}'").read() mem=os.popen("tsar -d $date|grep MEAN|awk '{print $3}'").read() tcp=os.popen("tsar -d $date|grep MEAN|awk '{print $4}'").read() bytein=os.popen("tsar -d $date|grep MEAN|awk '{print $5}'").read() byteout=os.popen("tsar -d $date|grep MEAN|awk '{print $6}'").read() sda=os.popen("tsar -d $date|grep MEAN|awk '{print $7}'").read() sdb=os.popen("tsar -d $date|grep MEAN|awk '{print $8}'").read() load=os.popen("tsar -d $date|grep MEAN|awk '{print $9}'").read() print date print os.popen("tsar -d $date|grep MEAN").read() with open("data.csv","a+") as f: if cpu.strip()=='': f.write(str(date)+','+'have null data'+'\n') else: f.write(str(date+','+cpu+','+mem+','+tcp+','+bytein+','+byteout+','+sda+','+sdb+','+load).replace("\n","")+"\n") os.system('>data.csv') ag=['adsag','dockerag','ecsag','odpsag','opsag','ossag','rdsag','slbag'] with open("data.csv","a+") as f: f.write(str('check_date'+','+'cpu'+','+'mem'+','+'tcp'+','+'bytein'+','+'byteout'+','+'sda'+','+'sdb'+','+'load').replace("\n","")+"\n") report_check() end_time=time.time() total_time=end_time-start_time print "此次生成报表总共耗时:",total_time
3.执行效果
会生成一个data.csv的报表
将他导出到我们本地
相关文章
- pycharm所有文件中查找_python查找文件
- Python Pandas PK esProc SPL,谁才是数据预处理王者?
- Python获取时间戳_python爬虫时间戳
- 如何在Python程序中运行Unix命令
- python每天定时9点执行_python定时执行方法
- Python获取Websocket接口的数据
- 【说站】python数据形式有哪些
- python的image读取的图片是什么类型的_python读取图片数据
- python数据可视化_python中datetime用法
- python从linux下载文件_python gzip
- Python将数据写入txt文件_python将内容写入txt文件
- 数据导入与预处理-第4章-数据获取python读取docx文档
- Python Fiddler抓包工具教学,获取公众号(pc客户端)数据
- 【6】python生成数据曲线平滑处理——(Savitzky-Golay 滤波器、convolve滑动平均滤波)方法介绍,推荐玩强化学习的小伙伴收藏
- python:使用xpath获取想要的数据
- 通过Python爬虫获取【小说网站GUI】数据,保姆级教学
- Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化|附代码数据
- 新手学Python可行吗?需要什么基础?(新手学python可行吗?需要什么基础)
- Python使用platform库获取系统信息:操作系统信息、硬件信息、python环境信息
- ElasticSearch 数据导入导出Python工具详解编程语言
- python通过MySQLdb模块连接查询mysql数据详解编程语言
- python获取天气api的数据(get方法)详解编程语言
- Python编程连接MySQL:从零开始(python与mysql)
- Python修改Excel数据的实例代码
- java直接调用python脚本的例子