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