kmemsizeをnagiosで監視

Linux
kmemsize 500x49 kmemsizeをnagiosで監視


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);

コメント