share facebook facebook twitter menu hatena pocket slack

2012.10.24 WED

Nagiosでスワップインとスワップアウトの監視

鈴木 宏康

WRITTEN BY 鈴木 宏康

既存のプラグインを検索してみたのですが、見当たらなかったので自分で作ってみました。

下記をcheck_swap-ioのような名前で、/usr/lib64/nagios/plugins/等のutils.shがあるディレクトリに配置すれば利用できます。

#!/bin/sh

. `dirname $0`/utils.sh

WARN=0
CRIT=0

while getopts c:w: OPTNAME; do
case "$OPTNAME" in
w)
WARN="$OPTARG"
;;
c)
CRIT="$OPTARG"
;;
*)
echo "USAGE"
exit $STATE_UNKNOWN
;;
esac
done

OUT=`grep pswpout /proc/vmstat | cut -d " " -f2`
IN=`grep pswpin /proc/vmstat | cut -d " " -f2`
DATA=" | in=$IN;$WARN;$CRIT;0;$IN out=$OUT;$WARN;$CRIT;0;$OUT"

if   [ $OUT -ge $CRIT ]; then
echo "CRITICAL : Swapping Out $OUT pages" $DATA
exit $STATE_CRITICAL
elif [ $IN  -ge $CRIT ]; then
echo "CRITICAL : Swapping In $IN pages" $DATA
exit $STATE_WARNING
elif [ $OUT -ge $WARN ]; then
echo "WARNING : Swapping Out $OUT pages" $DATA
exit $STATE_WARNING
elif [ $IN  -ge $WARN ]; then
echo "WARNING : Swapping In $IN pages" $DATA
exit $STATE_WARNING
elif [ $OUT -ge 0 ] && [ $IN -ge 0 ]; then
echo "OK : Swapping In/Out $IN/$OUT pages" $DATA
exit $STATE_OK
else
echo "UNKNOWN : Cannot determine number of pages"
exit $STATE_UNKNOWN
fi

閾値はページ数を指定します。
また、スワップイン、スワップアウトのどちらかの値が閾値を超えるとアラートとなるようにしています。

NagiosのCloudWatchプラグイン(PHP版)も見直したいです。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。