Browse Source

Added CIFS users and stats checks

Signed-off-by: Sven Velt <sven@velt.de>
Sven Velt 14 years ago
parent
commit
2121ccf5fc
1 changed files with 54 additions and 0 deletions
  1. 54 0
      check_naf.py

+ 54 - 0
check_naf.py

@@ -47,6 +47,18 @@ class CheckNAF(SNMPMonitoringPlugin):
 			'Cluster_InterconnectStatus': '.1.3.6.1.4.1.789.1.2.3.8.0',
 			'Cluster_CannotTakeOverCause': '.1.3.6.1.4.1.789.1.2.3.3.0',
 
+			'CIFS_Connected_Users': '.1.3.6.1.4.1.789.1.7.2.9.0',
+			'CIFS_Total_Ops': '.1.3.6.1.4.1.789.1.7.3.1.1.1.0',
+			'CIFS_Total_Calls': '.1.3.6.1.4.1.789.1.7.3.1.1.2.0',
+			'CIFS_Bad_Calls': '.1.3.6.1.4.1.789.1.7.3.1.1.3.0',
+			'CIFS_Get_Attrs': '.1.3.6.1.4.1.789.1.7.3.1.1.4.0',
+			'CIFS_Reads': '.1.3.6.1.4.1.789.1.7.3.1.1.5.0',
+			'CIFS_Writes': '.1.3.6.1.4.1.789.1.7.3.1.1.6.0',
+			'CIFS_Locks': '.1.3.6.1.4.1.789.1.7.3.1.1.7.0',
+			'CIFS_Opens': '.1.3.6.1.4.1.789.1.7.3.1.1.8.0',
+			'CIFS_DirOps': '.1.3.6.1.4.1.789.1.7.3.1.1.9.0',
+			'CIFS_Others': '.1.3.6.1.4.1.789.1.7.3.1.1.10.0',
+
 			'CPU_Arch': '.1.3.6.1.4.1.789.1.1.11.0',
 			'CPU_Time_Busy': '.1.3.6.1.4.1.789.1.2.1.3.0',
 			'CPU_Time_Idle': '.1.3.6.1.4.1.789.1.2.1.5.0',
@@ -178,6 +190,46 @@ class CheckNAF(SNMPMonitoringPlugin):
 		return 3
 
 
+	def check_cifs(self, target='', warn='', crit=''):
+		if target == 'users':
+			cifsConnectedUsers = long(self.SNMPGET(self.OID['CIFS_Connected_Users']))
+			returncode = self.value_wc_to_returncode(cifsConnectedUsers, warn, crit)
+			output = "%s connected users" % cifsConnectedUsers
+			perfdata = [{'label':'nacifs_users', 'value':cifsConnectedUsers, 'unit':'', 'warn':warn, 'crit':crit, 'min':0},]
+
+		elif target == 'stats':
+			cifsTotalOps = self.SNMPGET(self.OID['CIFS_Total_Ops'])
+			cifsTotalCalls = self.SNMPGET(self.OID['CIFS_Total_Calls'])
+			cifsBadCalls = self.SNMPGET(self.OID['CIFS_Bad_Calls'])
+			cifsGetAttrs = self.SNMPGET(self.OID['CIFS_Get_Attrs'])
+			cifsReads = self.SNMPGET(self.OID['CIFS_Reads'])
+			cifsWrites = self.SNMPGET(self.OID['CIFS_Writes'])
+			cifsLocks = self.SNMPGET(self.OID['CIFS_Locks'])
+			cifsOpens = self.SNMPGET(self.OID['CIFS_Opens'])
+			cifsDirOps = self.SNMPGET(self.OID['CIFS_DirOps'])
+			cifsOthers = self.SNMPGET(self.OID['CIFS_Others'])
+
+			returncode = self.RETURNCODE['OK']
+			output = 'CIFS statistics'
+			perfdata = []
+			perfdata.append({'label':'nacifs_totalcalls', 'value':cifsTotalCalls, 'unit':'c', 'min':'0'})
+			perfdata.append({'label':'nacifs_badcalls', 'value':cifsBadCalls, 'unit':'c', 'min':'0'})
+			perfdata.append({'label':'nacifs_getattrs', 'value':cifsGetAttrs, 'unit':'c', 'min':'0'})
+			perfdata.append({'label':'nacifs_reads', 'value':cifsReads, 'unit':'c', 'min':'0'})
+			perfdata.append({'label':'nacifs_writes', 'value':cifsWrites, 'unit':'c', 'min':'0'})
+			perfdata.append({'label':'nacifs_locks', 'value':cifsLocks, 'unit':'c', 'min':'0'})
+			perfdata.append({'label':'nacifs_opens', 'value':cifsOpens, 'unit':'c', 'min':'0'})
+			perfdata.append({'label':'nacifs_dirops', 'value':cifsDirOps, 'unit':'c', 'min':'0'})
+			perfdata.append({'label':'nacifs_others', 'value':cifsOthers, 'unit':'c', 'min':'0'})
+
+		else:
+			returncode = self.RETURNCODE['UNKNOWN']
+			output = 'Unknown CIFS check/target: "%s"' % target
+			perfdata = []
+
+		return self.remember_check('cifs', returncode, output, perfdata=perfdata, target=target)
+
+
 	def check_cpu(self, warn='', crit=''):
 		cpu_arch = self.SNMPGET(self.OID['CPU_Arch'])
 		cpu_timebusy = int(self.SNMPGET(self.OID['CPU_Time_Busy']))
@@ -761,6 +813,8 @@ def main():
 			result = plugin.check_global()
 		elif check == 'cluster':
 			result = plugin.check_cluster()
+		elif check == 'cifs':
+			result = plugin.check_cifs(target=target, warn=warn, crit=crit)
 		elif check == 'cpu':
 			result = plugin.check_cpu(warn=warn, crit=crit)
 		elif check == 'disk':