既存のプラグインを検索してみたのですが、見当たらなかったので自分で作ってみました。
下記を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版)も見直したいです。