【问题标题】:Script returns null from Nagios but not when ran localy脚本从 Nagios 返回 null 但在本地运行时不返回
【发布时间】: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 进行管道传输,所以如果有人知道我做错了什么,请告诉我:)

标签: bash nagios


【解决方案1】:

这是引号,我需要使用 " 而不是 '

【讨论】:

  • 您在哪里进行了此更改?在 bash 脚本中?在 nagios 服务定义中?
【解决方案2】:

我在 centos 6(64 位)上配置 hadoop 数据节点监控插件时遇到了这个问题。我通过以下配置解决了“nagios 状态信息为空”的问题。

在 nrpe 客户端机器上

编辑 /etc/nagios/nrpe.cfg

command[check_hadoop_datanodes]=/usr/lib64/nagios/plugins/check_hadoop_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 重启

关于这篇文章的任何建议都是可以理解的。谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2012-11-09
    • 2018-02-13
    • 1970-01-01
    • 2019-02-05
    相关资源
    最近更新 更多