Nagios 插件无法通过 NRPE 运行命令

Nagios 插件无法通过 NRPE 运行命令

我有以下插件,其核心状态为正常。

#!/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 上。如果我用topnagios 替换 free 就可以写入该文件。

我是从这里免费下载的http://people.freebsd.org/~rse/dist/freebsd-memory。正如我所说,它在远程计算机上运行良好。我已确保 FreeBSD 上的路径正确并且可执行。

除了插件输出之外,找不到任何相关日志。

相关内容