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

print


监控内存(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)

print


监控系统负载

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]),

print

print

监控磁盘

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

print


本文出自 “linux运维” 博客,谢绝转载!

python监控系统资源

相关内容

    暂无相关文章

评论关闭