【问题标题】:Can execute nagios ssh check manually but get 126/127 out of bounds error from nagios可以手动执行 nagios ssh 检查,但从 nagios 得到 126/127 out of bounds 错误
【发布时间】:2015-09-08 18:44:09
【问题描述】:

我的主机定义中定义了以下服务:

define service {
    use                  generic-service
    host_name            myhost.com
    service_description  swapcheck
    check_command        check_ssh_swap
}

以及 commands.cfg 中的以下内容:

define command {
    command_name check_ssh_swap
    command_line /home/nagios/bin/check_by_ssh -p port -H ip -C "/home/nagios/bin/check_swap -w 20% -c 5%"
}

两个 cfg 文件都会在加载时加载到 nagios 中。并且 nagios -v /etc/nagios/nagios.cfg 不会返回任何错误。

当我尝试执行命令时

/home/nagios/bin/check_by_ssh -p port -H ip -C "/home/nagios/bin/check_swap -w 20% -c 5%"

直接使用 nagios 用户,它可以正常工作,并且我会返回我的结果,但是当 nagios 本身运行计划检查时,我总是会得到

Return code of 126 for check of host 'host' was out of bounds

我在这里缺少什么?明明所有的路径、键等都是正确的,不然我手动执行就没有问题了。

【问题讨论】:

    标签: ssh nagios


    【解决方案1】:

    显然,nagios 不喜欢绝对路径。我切换回 $USER1$/... 作为路径,现在它可以工作了吗?

    【讨论】:

      【解决方案2】:

      Nagios 的退出代码 126 应该意味着检查已找到,但它不可执行。也许您的脚本有不正确的世界或其他权限,以至于 Nagios 无法运行它,但您可以?

      【讨论】:

        【解决方案3】:

        您的问题没有确定您使用的是哪个操作系统平台,但我猜CentOS。如果是这种情况,请检查 SELinux 是否已启用并强制执行: #getenforce Enforcing

        如果是这样,您有几个选择:

        1. 将您的脚本放在与其他工作脚本相同的位置;你可能需要做一个restorecon 以便你的脚本被适当地标记为目录
        2. 了解如何使用 audit2allow 添加到 Nagios 脚本的有效位置

        我完全不推荐但仅出于完整性考虑而提及的另一种可能性是禁用SELinux。除了快速测试之外,在执行此操作之前,请三思而后行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-05
          • 1970-01-01
          • 1970-01-01
          • 2014-01-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多