#!/usr/bin/perl # # This script will check MSSQL Database size via check_nrpe and NSclient. returns performance data in Nagios format # Author Pall Sigurdsson # $HOSTNAME=$ARGV[0]; $databases = `/usr/lib/nagios/plugins/check_nrpe -H $HOSTNAME -t 60 -c listCounterInstances -a "SQLServer:Databases"`; @array1 = split(/\,/, $databases); #[root@nagios ~]# check_nrpe -H $HOSTNAME -c CheckCounter -a "Counter:Vanskilaskra=\SQLServer:Databases(Vanskilaskra)\Data File(s) Size (KB)"# OK all counters within bounds.|'Vanskilaskra'=30996480;0;0; $num_databases = 0; $perfdata = ""; foreach $database (@array1) { # Strip whitespace $database =~ s/^\s*(.*?)\s*$/$1/; # Call check_nrpe $dbSize = `/usr/lib/nagios/plugins/check_nrpe -H $HOSTNAME -t 60 -c CheckCounter -a 'Counter:$database=\\SQLServer:Databases($database)\\Data File(s) Size (KB)'`; # Strip everything but the performance data $dbSize =~ s/^.*\|(.*?)$/$1/; chomp($dbSize); $perfdata = $perfdata . " " . $dbSize; $num_databases = $num_databases + 1; } print "$num_databases databases found in $HOSTNAME | $perfdata \n";