2010-06-02 10:45:45 +02:00
|
|
|
#!/usr/bin/env python
|
|
|
|
"""Thomas R. N. Jansson (tjansson@tjansson.dk)
|
|
|
|
16-MAY-2010
|
|
|
|
"""
|
|
|
|
|
|
|
|
# The SNMP traps for the NetApp filer can be found in
|
|
|
|
# /net/netappfiler/vol0/etc/mib/traps.dat if the filer is
|
|
|
|
# NFS automounted mounted on server.
|
|
|
|
# Example: the SNMP id for cpuBusyTimePerCent is
|
|
|
|
# snmp.1.3.6.1.4.1.789.1.2.1.3.0
|
|
|
|
# and retrival of this value is done by
|
|
|
|
# snmpget -v 1 -c public netappfiler 1.3.6.1.4.1.789.1.2.1.3.0
|
|
|
|
#
|
|
|
|
# Requires snmpget and assumes public community.
|
|
|
|
|
|
|
|
import commands
|
|
|
|
import sys
|
|
|
|
|
|
|
|
# Provided a servername and a snmpid it returns the value stripped of bogus information.
|
|
|
|
def snmpget(iservername,isnmpid):
|
|
|
|
runcmd = 'snmpget -v 1 -c public ' + iservername + ' ' + isnmpid
|
|
|
|
output = commands.getoutput(runcmd)
|
|
|
|
return output.split()[3]
|
|
|
|
|
|
|
|
snmpid = "1.3.6.1.4.1.789.1.2.1.3.0"
|
|
|
|
warning = 80
|
|
|
|
critical = 95
|
2012-08-29 02:07:36 +02:00
|
|
|
servername = sys.argv[0].split('_')[1]
|
2010-06-02 10:45:45 +02:00
|
|
|
|
|
|
|
if len(sys.argv) == 2 and sys.argv[1] == "config":
|
|
|
|
print 'graph_title CPU usage on', servername
|
|
|
|
print 'graph_args --base 1000 -r --lower-limit 0 --upper-limit 100'
|
|
|
|
print 'graph_vlabel %'
|
|
|
|
print 'graph_scale no'
|
|
|
|
print 'graph_info This graph shows how CPU time is spent.'
|
|
|
|
print 'graph_period second'
|
|
|
|
print 'graph_category netapp'
|
|
|
|
|
|
|
|
print 'usage.label cpu_usage '
|
|
|
|
print 'usage.draw STACK'
|
|
|
|
print 'usage.warning ', warning
|
|
|
|
print 'usage.critical ', critical
|
|
|
|
print 'usage.info CPU time spent by normal programs and daemons'
|
|
|
|
sys.exit(0)
|
|
|
|
|
|
|
|
# Gathers info from the servers and gathers data
|
|
|
|
print 'usage.value '+snmpget(servername,snmpid)
|