【发布时间】:2015-12-17 15:07:33
【问题描述】:
我写了一个简单的 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 $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 并将其设置为关键
我的 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)
【问题讨论】:
-
我现在有一个工作区,我在本地主机上使用 check_by_ssh,做了一些小的修改(由于某种原因 sed 通过 check_by_ssh 给了我问题)但是在我稍微修改它之后它工作了,我宁愿不必通过 ssh 进行管道传输,所以如果有人知道我做错了什么,请告诉我:)