NagiosプラグインはNRPEを介してコマンドを実行できません。

NagiosプラグインはNRPEを介してコマンドを実行できません。

コア状態がOKの次のプラグインがあります。

#!/usr/local/bin/bash

if [ "$1" = "-w" ] && [ "$2" -lt "101" ] && [ "$3" = "-c" ] && [ "$4" -lt "101" ] ; then
  warn=$2
  crit=$4

  AVAILMEMPERC=$(free -m | grep mem_avail | awk '{print $7}'| tr -d %])

  if [ ${AVAILMEMPERC} -gt $warn ] && [ ${AVAILMEMPERC} -gt $crit ];then
    echo "OK - Available Memory = $AVAILMEMPERC% | Available memory=$AVAILMEMPERC%;$warn;$crit;0;100"
    exit 0
  elif [ ${AVAILMEMPERC} -lt $warn ] && [ ${AVAILMEMPERC} -gt $crit ]; then
    echo "WARNING - Available Memory = $AVAILMEMPERC% | Available memory=$AVAILMEMPERC%;$warn;$crit;0;100"
    exit 1
  else
    echo "CRITICAL - Available Memory = $AVAILMEMPERC% | Available memory=$AVAILMEMPERC%;$warn;$crit;0;100"
    exit 2
  fi
else
  echo "$0 - Nagios Plugin for checking the available memory in a Linux system"
  echo ""
  echo "Usage:    $0 -w <warnlevel> -c <critlevel>"
  echo "  = warnlevel and critlevel is warning and critical value for alerts."
  echo ""
  echo "EXAMPLE:  $0 -w 10 -c 5 "
  echo "  = This will send warning alert when available memory is less than 10%, and send critical when it is less than 5%"
  echo ""
  exit 3
fi

リモートコンピュータでローカルで実行すると正常に動作します。正しい出力を取得します。しかし、Web GUIを見ると、Nagiosが変AVAILMEMPERC数値を抽出できないことがわかります。

たとえば、プラグインを次のように単純化すると、

#!/usr/local/bin/bash

warn=$2
crit=$4

AVAIL_MEM_PERCENTAGE="$(free -m)"

echo "OK - ${AVAIL_MEM_PERCENTAGE}"

GUIに表示される唯一の出力は次のとおりです。

OK -

コマンドラインでこれを実行すると、出力free -m全体が表示されます。

以下を試しましたが、何も書きません。 /tmp とファイルに 777 権限を付与しました。

free -m > /tmp/check_avail_memory.out

権限の問題だと思いますか?しかし、Nagios Coreで動作します。 freeをnagiosに置き換えると、topファイルに書き込むことができます。

私はここから無料でダウンロードしました。http://people.freebsd.org/~rse/dist/freebsd-memory。私が言ったように、リモートコンピュータでうまく動作します。 FreeBSDのパスが正確で実行可能であることを確認しました。

プラグイン出力以外に関連ログが見つかりません。

ベストアンサー1

おすすめ記事