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

下記を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)監修のもと掲載しています。
元記事は、こちら