python监控系统资源,,监控网卡流量1234
python监控系统资源,,监控网卡流量1234
监控网卡流量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #!/usr/bin/python importre importos #get SNMP-MIB2 of the devices defgetAllitems(host,oid): sn1=os.popen(‘snmpwalk -v 2c -c public ‘+host+‘ ‘+oid).read().split(‘\n‘)[:-1] returnsn1 #get network device defgetDevices(host): device_mib=getAllitems(host,‘RFC1213-MIB::ifDescr‘) device_list=[] foritemindevice_mib: ifre.search(‘eth‘,item): device_list.append(item.split(‘:‘)[3].strip()) returndevice_list #get network date defgetDate(host,oid): date_mib=getAllitems(host,oid)[1:] date=[] foritemindate_mib: byte=float(item.split(‘:‘)[3].strip()) date.append(str(round(byte/1024,2))+‘ KB‘) returndate if__name__==‘__main__‘: hosts=[‘192.168.30.111‘,‘192.168.30.112‘] forhostinhosts: device_list=getDevices(host) inside=getDate(host,‘IF-MIB::ifInOctets‘) outside=getDate(host,‘IF-MIB::ifOutOctets‘) print‘==========‘+host+‘==========‘ foriinrange(len(inside)): print‘%s : RX: %-15s TX: %s ‘%(device_list[i], inside[i], outside[i]) |
监控内存(swap)使用率
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #!/usr/bin/python importos defgetAllitems(host, oid): sn1=os.popen(‘snmpwalk -v 2c -c public ‘+host+‘ ‘+oid).read().split(‘\n‘)[:-1] returnsn1 defgetSwapTotal(host): swap_total=getAllitems(host,‘UCD-SNMP-MIB::memTotalSwap.0‘)[0].split(‘ ‘)[3] returnswap_total defgetSwapUsed(host): swap_avail=getAllitems(host,‘UCD-SNMP-MIB::memAvailSwap.0‘)[0].split(‘ ‘)[3] swap_total=getSwapTotal(host) swap_used=str(round(((float(swap_total)-float(swap_avail))/float(swap_total))*100,2))+‘%‘ returnswap_used defgetMemTotal(host): mem_total=getAllitems(host,‘UCD-SNMP-MIB::memTotalReal.0‘)[0].split(‘ ‘)[3] returnmem_total defgetMemUsed(host): mem_total=getMemTotal(host) mem_avail=getAllitems(host,‘UCD-SNMP-MIB::memAvailReal.0‘)[0].split(‘ ‘)[3] mem_used=str(round(((float(mem_total)-float(mem_avail))/float(mem_total))*100,2))+‘%‘ returnmem_used if__name__==‘__main__‘: hosts=[‘192.168.30.111‘,‘192.168.30.112‘] print"Monitoring Memory Usage" forhostinhosts: mem_used=getMemUsed(host) swap_used=getSwapUsed(host) print‘==========‘+host+‘==========‘ print‘Mem_Used = %-15s Swap_Used = %-15s‘%(mem_used, swap_used) |
监控系统负载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/usr/bin/python importos defgetAllitems(host, oid): sn1=os.popen(‘snmpwalk -v 2c -c public ‘+host+‘ ‘+oid).read().split(‘\n‘) returnsn1 defgetload(host,loid): load_oids=‘1.3.6.1.4.1.2021.10.1.3.‘+str(loid) returngetAllitems(host,load_oids)[0].split(‘:‘)[3] if__name__==‘__main__‘: hosts=[‘192.168.30.111‘,‘192.168.30.112‘] #check_system_load print‘==============System Load==============‘ forhostinhosts: load1=getload(host,1) load10=getload(host,2) load15=getload(host,3) print‘%s load(1min): %s ,load(10min): %s ,load(15min): %s‘%(host,load1,load10,load15) |
监控CPU
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #!/usr/bin/python importos defgetAllitems(host, oid): sn1=os.popen(‘snmpwalk -v 2c -c public ‘+host+‘ ‘+oid+‘|grep Raw|grep Cpu|grep -v Kernel‘).read().split(‘\n‘)[:-1] returnsn1 defgetDate(host): items=getAllitems(host,‘.1.3.6.1.4.1.2021.11‘) date=[] rate=[] cpu_total=0 #us = us+ni, sy = sy + irq + sirq foriteminitems: float_item=float(item.split(‘ ‘)[3]) cpu_total+=float_item ifitem==items[0]: date.append(float(item.split(‘ ‘)[3])+float(items[1].split(‘ ‘)[3])) elifitem==item[2]: date.append(float(item.split(‘ ‘)[3]+items[5].split(‘ ‘)[3]+items[6].split(‘ ‘)[3])) else: date.append(float_item) #calculate cpu usage percentage foritemindate: rate.append((item/cpu_total)*100) mean=[‘%us‘,‘%ni‘,‘%sy‘,‘%id‘,‘%wa‘,‘%cpu_irq‘,‘%cpu_sIRQ‘] #calculate cpu usage percentage result=map(None,rate,mean) returnresult if__name__==‘__main__‘: hosts=[‘192.168.30.111‘,‘192.168.30.112‘] forhostinhosts: print‘==========‘+host+‘==========‘ result=getDate(host) print‘Cpu(s)‘, #print result foriinrange(5): print‘ %.2f%s‘%(result[i][0],result[i][1]), |
监控磁盘
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #!/usr/bin/python importre importos defgetAllitems(host,oid): sn1=os.popen(‘snmpwalk -v 2c -c public ‘+host+‘ ‘+oid).read().split(‘\n‘)[:-1] returnsn1 defgetDate(source,newitem): foriteminsource[5:]: newitem.append(item.split(‘:‘)[3].strip()) returnnewitem defgetRealDate(item1,item2,listname): foriinrange(len(item1)): listname.append(int(item1[i])*int(item2[i])/1024) returnlistname defcaculateDiskUsedRate(host): hrStorageDescr=getAllitems(host,‘HOST-RESOURCES-MIB::hrStorageDescr‘) hrStorageUsed=getAllitems(host,‘HOST-RESOURCES-MIB::hrStorageUsed‘) hrStorageSize=getAllitems(host,‘HOST-RESOURCES-MIB::hrStorageSize‘) hrStorageAllocationUnits=getAllitems(host,‘HOST-RESOURCES-MIB::hrStorageAllocationUnits‘) disk_list=[] hrsused=[] hrsize=[] hrsaunits=[] #get disk_list foriteminhrStorageDescr: ifre.search(‘/‘,item): disk_list.append(item.split(‘:‘)[3]) #print disk_list getDate(hrStorageUsed,hrsused) getDate(hrStorageSize,hrsize) #print getDate(hrStorageAllocationUnits,hrsaunits) #get hrstorageAllocationUnits foriteminhrStorageAllocationUnits[5:]: hrsaunits.append(item.split(‘:‘)[3].strip().split(‘ ‘)[0]) #caculate the result #disk_used = hrStorageUsed * hrStorageAllocationUnits /1024 (KB) disk_used=[] total_size=[] disk_used=getRealDate(hrsused,hrsaunits,disk_used) total_size=getRealDate(hrsize,hrsaunits,total_size) diskused_rate=[] foriinrange(len(disk_used)): diskused_rate.append(str(round((float(disk_used[i])/float(total_size[i])*100),2))+‘%‘) returndiskused_rate,disk_list if__name__==‘__main__‘: hosts=[‘192.168.30.111‘,‘192.168.30.112‘] forhostinhosts: result=caculateDiskUsedRate(host) diskused_rate=result[0] partition=result[1] print"==========",host,‘==========‘ foriinrange(len(diskused_rate)): print‘%-20s used: %s‘%(partition[i],diskused_rate[i]) |
本文出自 “linux运维” 博客,谢绝转载!
python监控系统资源
相关内容
- 暂无相关文章
评论关闭