Editing Monitoring openvz resources using nagios and snmp
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 210: | Line 210: | ||
##################################################################################### | ##################################################################################### | ||
− | if [ $RET1 -gt $RET2 ]; then | + | if [ $RET1 -gt $RET2 ]; then |
RET=$RET1 | RET=$RET1 | ||
else | else | ||
Line 221: | Line 221: | ||
exit $RET | exit $RET | ||
</source> | </source> | ||
− | |||
=== check_vzquota Without SNMP === | === check_vzquota Without SNMP === | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
RET=0 | RET=0 | ||
− | DATA=`echo;sudo /usr/sbin/vzlist -1 | + | DATA=`echo;sudo /usr/sbin/vzlist -1 | xargs -I {} bash -c "echo {}:;sudo /usr/sbin/vzquota stat {}"` |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
echo "$DATA" | perl -n -e' | echo "$DATA" | perl -n -e' | ||
my $vid ; | my $vid ; | ||
my $ret=0 ; | my $ret=0 ; | ||
− | |||
− | |||
− | |||
while(<STDIN>){ | while(<STDIN>){ | ||
my %vid; | my %vid; | ||
Line 257: | Line 238: | ||
$softlimit=$3 ; | $softlimit=$3 ; | ||
$hardlimit=$4 ; | $hardlimit=$4 ; | ||
− | if ( $usage >= $ | + | if ( $usage >= $softlimit ){ |
− | + | print "WARNING: VZquota limit exceeded on $vid: $resource usage->$usage, softlimit->$softlimit, hardlimit->$hardlimit, time->$time, expire->$expire " ; | |
− | |||
− | |||
− | |||
$ret=1; | $ret=1; | ||
} | } | ||
− | + | print "$vid:$resource $usage/$softlimit "; | |
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
exit($ret); | exit($ret); | ||
' | ' | ||
RET=$? | RET=$? | ||
+ | echo | ||
exit $RET | exit $RET | ||
+ | |||
</source> | </source> | ||
The script calls <code>/usr/sbin/vzlist</code> by sudo. When doing this it normally needs a password, which check_nrpe will not know. Because of this it is necessary that you append a line like the following to <code>/etc/sudors</code> (user name an path should be adapted to the right ones on your system): | The script calls <code>/usr/sbin/vzlist</code> by sudo. When doing this it normally needs a password, which check_nrpe will not know. Because of this it is necessary that you append a line like the following to <code>/etc/sudors</code> (user name an path should be adapted to the right ones on your system): | ||
Line 285: | Line 258: | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
− | |||
− | |||
− | |||
− | |||
− | |||
export FILE=/tmp/check_ubc | export FILE=/tmp/check_ubc | ||
RET=0 | RET=0 | ||
+ | |||
ubc_file='/proc/user_beancounters'; | ubc_file='/proc/user_beancounters'; | ||
DATA=''; | DATA=''; | ||
Line 298: | Line 267: | ||
fi | fi | ||
if [ -z "$DATA" ]; then | if [ -z "$DATA" ]; then | ||
− | echo " | + | echo "CRITICAL - $ubc_file is not readable or empty. Maybe it is only readable for root and this script should be called by sudo."; |
exit 3; | exit 3; | ||
fi | fi | ||
Line 305: | Line 274: | ||
echo "$DATA" | perl -n -e' | echo "$DATA" | perl -n -e' | ||
use Data::Dumper; | use Data::Dumper; | ||
− | |||
my $file=$ENV{"FILE"}; | my $file=$ENV{"FILE"}; | ||
my $ret=0 ; | my $ret=0 ; | ||
Line 329: | Line 297: | ||
${beancounters{$vid}}{$resource}=[$held , $maxheld , $barrier , $limit ,$failcnt ]; | ${beancounters{$vid}}{$resource}=[$held , $maxheld , $barrier , $limit ,$failcnt ]; | ||
if ( ($held > $barrier) && ($barrier != 0) ) { | if ( ($held > $barrier) && ($barrier != 0) ) { | ||
− | print "WARNING: Limits on $vid: | + | print "WARNING: Limits on $vid: $resource held->$held , barrier->$barrier ( limit->$limit ) " ; |
$ret=1; | $ret=1; | ||
} | } | ||
Line 362: | Line 330: | ||
my $limit=$beancounters{$vmachine_id}{$resource}[3]; | my $limit=$beancounters{$vmachine_id}{$resource}[3]; | ||
if ( $failcnt_old < $failcnt ){ | if ( $failcnt_old < $failcnt ){ | ||
− | print "CRITICAL: | + | print "CRITICAL: Incrased failcnt $vmachine_id: $resource from $failcnt_old to $failcnt (held->$held , maxheld->$maxheld , barrier->$barrier , limit->$limit ) " ; |
$ret=2; | $ret=2; | ||
} | } | ||
Line 370: | Line 338: | ||
} | } | ||
− | + | ||
− | + | if ($ret == 0 ) { print "OK. \n" ; } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | if ($ret == 0 ) { print "OK | ||
# print Dumper(%beancounters_old) ; | # print Dumper(%beancounters_old) ; | ||
# print "\n"; | # print "\n"; | ||
Line 395: | Line 356: | ||
Also don't forget to consider this on your <code>nrpe.cfg</code>, so that you call the script with sudo: | Also don't forget to consider this on your <code>nrpe.cfg</code>, so that you call the script with sudo: | ||
command[check_ubc]=sudo /usr/local/nagios/libexec/check_ubc | command[check_ubc]=sudo /usr/local/nagios/libexec/check_ubc | ||
− | |||
− |