Bash 脚本从Nagios返回null,但在本地运行时不返回null
我编写了一个简单的nagios命令,用于在1秒内检查值的变化Bash 脚本从Nagios返回null,但在本地运行时不返回null,bash,nagios,Bash,Nagios,我编写了一个简单的nagios命令,用于在1秒内检查值的变化 #!/bin/bash HOSTNAME=$1 COMMUNITY=$2 OID=$3 WAITTIME=1 echo "/usr/lib/nagios/plugins/check_snmp -H $HOSTNAME -C $COMMUNITY -o $OID" > /tmp/csnmp_comand VAR1=`/usr/lib/nagios/plugins/check_snmp -H $HOSTNAME -C $COMMUN
#!/bin/bash
HOSTNAME=$1
COMMUNITY=$2
OID=$3
WAITTIME=1
echo "/usr/lib/nagios/plugins/check_snmp -H $HOSTNAME -C $COMMUNITY -o $OID" > /tmp/csnmp_comand
VAR1=`/usr/lib/nagios/plugins/check_snmp -H $HOSTNAME -C $COMMUNITY -o $OID|cut -d"=" -f2|sed 's/[a-Z]//'`
/bin/sleep $WAITTIME
VAR2=`/usr/lib/nagios/plugins/check_snmp -H $HOSTNAME -C $COMMUNITY -o $OID|cut -d"=" -f2|sed 's/[a-Z]//'`
CHANGED=`/usr/bin/expr $VAR2 - $VAR1`
BPS=`/usr/bin/expr $CHANGED / $WAITTIME`
echo "OK $BPS|bps=$BPS" > /tmp/check_snmptest
echo "OK $BPS|bps=$BPS"
exit 0
我写了一个服务调用这个脚本
define command{
command_name snmp_cps
command_line /usr/lib/nagios/plugins/check_cps '$HOSTADDRESS$' '$_HOSTSNMPCOMMUNITY$' '$ARG1'
}
当我以nagios用户的身份手动调用脚本时
OK 233|bps=233
或者类似的,但是当我调度这个命令时,它返回null并将其设置为critical
我的host.cfg也是
define host{
use generic-host
host_name asa5505.customer.local
alias Options ASA 5505
address asa5505.customer.local
_SNMPCOMMUNITY SetSecurly
}
define service {
use generic-service
host_name asa5505.customer.local
service_description Outside Interface PBS
check_command snmp_cps!1.3.6.1.2.1.2.2.1.10.16
}
在对主机名和snmpcommunity进行了一些更改后,我需要使用引号,而不是“在centos 664位上配置hadoop datanode监控插件时,我遇到了这个问题。我通过以下配置解决了nagios状态信息null的问题 在nrpe客户机上 编辑/etc/nagios/nrpe.cfg 命令[check\u hadoop\u datanodes]=/usr/lib64/nagios/plugins/check\u hadoop\u datanode.pl-H name node ip 在Nagios服务器上 编辑/etc/nagios/objects/commands.cfg 定义命令{
command_name check_nrpe
command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
编辑/etc/nagios/servers/master-hdp.cfg
定义服务{
use generic-service
host_name master-hdp
service_description check datanodes status
check_command check_nrpe!check_hadoop_datanodes
}
在此之后,重新启动nagios服务器
服务nagios重启
关于这篇文章的任何建议都是值得赞赏的。谢谢你我现在有一个工作要做,我在本地主机上使用check_by_ssh,由于某些原因,sed通过check_by_ssh给了我一些小的修改,但是在我稍微修改了它之后,它就可以工作了,我宁愿不必通过ssh进行管道传输,尽管如此,如果有人有想法的话至于我做错了什么,请让我知道:您在哪里做的更改?在bash脚本中?在nagios服务定义中?