Nagios插件脚本无法按预期工作

时间:2013-08-07 10:14:01

标签: bash nagios

下面是我的脚本,其中我使用jvmtop.sh脚本的输出来存储在受尊重的变量中,然后在带有图形的nagios中进行处理。

在客户端服务器bash中,脚本按预期输出。但是当我在nagios中执行Test check命令时,似乎./jvmtop.sh不会在变量中存储输出。我正在“重要 - 监控过程没有运行!”

让我知道我错过了什么..

get_vals() {
current=/usr/local/nagios/libexec/
cd $current           
OLDIFS=$IFS                
IFS='\n'         
tmp_output=$(./jvmtop.sh --once | grep $process)
IFS=$OLDIFS
    if [ -z "$tmp_output" ]
    then
        echo "CRITICAL - Process to monitor is not running!"
        exit $ST_CR
    fi
PID=`echo ${tmp_output} | awk '{print $1}'`
HPCUR=`echo ${tmp_output} | awk '{print $3}' | sed 's/.$//'`
HPMAX=`echo ${tmp_output} | awk '{print $4}' | sed 's/.$//'`
NHCUR=`echo ${tmp_output} | awk '{print $5}' | sed 's/.$//'`
NHMAX=`echo ${tmp_output} | awk '{print $6}' | sed 's/.$//'`
CPU=`echo ${tmp_output} | awk '{print $7}' | sed 's/.$//' | cut -d . -f 1`
GC=`echo ${tmp_output} | awk '{print $8}' | sed 's/.$//' | cut -d . -f 1`
THREAD=`echo ${tmp_output} | awk '{print $11}'`
}

1 个答案:

答案 0 :(得分:0)

我个人认为这可能是由于第120行的jvmtop.sh的定义,我的建议是给出脚本的完整路径....

tmp_output=$(./jvmtop.sh --once | grep $process)

tmp_output=$(/path/to/jvmtop.sh --once | grep $process)

如果这没有帮助,请尝试启用调试并在nagios.cfg中定义调试级别:

debug_level=2048 
debug_file=/var/log/nagios_debug.log

完成后,请将其关闭。

E2A: 最后一件事就是在这一行(120)之后将tmp输出的结果回显给临时文件并查看其输出以查看它是否真的有效!

所以echo $ tmp_output> /tmp/observe.txt

因为我的怀疑仍然是这个 - 我上面发了一条评论也出来你的java家,因为它无法找到这个jvmtop.sh或者它是否可以不知道$ JAVA_HOME / bin / java是......