VPSで運用している環境にて、kmemsizeの制約にひっかかり、いきなりOSが止まってしまいました。
それを回避するためにnagiosでこのkmemsizeを監視するスクリプトを書きました。
kmemsizeは/proc/user_beancountersに仮想ファイルとして出力されています。
このファイルはrootしか読めないため、/etc/sudoersへnagiosを実行しているユーザを追加する必要があります。
#!/usr/bin/perl
use strict;
## add folloing lines to /etc/sudoers
# Defaults:nagios !requiretty
# nagios ALL=(ALL) NOPASSWD: /bin/cat
my $CRITICAL = 0.8;
my $WARNING = 0.7;
my $kmem_line = `sudo cat /proc/user_beancounters 2> /dev/null | grep kmem`;
chomp $kmem_line;
$kmem_line =~ /([0-9]+) +([0-9]+) +([0-9]+) +([0-9]+)/;
my $current_kmemsize = $1;
my $max_kmemsize = $4;
my $status = "OK";
if($max_kmemsize * $CRITICAL < $current_kmemsize){
$status = "CRITICAL";
}elsif($max_kmemsize * $WARNING < $current_kmemsize){
$status = 'WARNING';
}
print $status;
print " - ";
print $current_kmemsize;
print " | ";
print $kmem_line;
print "\n";
exit(0);



Comments