警告:用于检查服务的返回码127超出范围。确保您尝试运行的插件确实存在

时间:2018-09-21 12:57:01

标签: nagios

我正在尝试将phanton-js插件用于Nagios: https://github.com/hggh/phantomjs-nagios

但是尽管我仔细检查了设置,但我得到了 “返回码127超出范围:插件可能丢失”

插件文件位于plugins文件夹中:

# stat /usr/lib64/nagios/plugins/check_http_load_time.rb
  File: `/usr/lib64/nagios/plugins/check_http_load_time.rb'
  Size: 9108            Blocks: 24         IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 275201      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

我可以在本地对nagios用户执行以下操作:

-bash-4.1$ whoami
nagios
-bash-4.1$ /usr/lib64/nagios/plugins/phantomjs-nagios/check_http_load_time.rb -u https://google.com -w 2 -c 3
OK: https://google.com load time: 0.43

这是在checkcommands.cfg文件中定义的方式:

define command {
        command_name    check_web_page_load_time
        command_line    $USER1$/check_http_load_time.rb -u $ARG1$ -w $ARG2$ -c $ARG3$
        }

这是服务定义

define service {
  use                   generic-service
  host_name             test_host
  service_description   https://google.com web load time
  check_command         check_web_page_load_time!https://google.com!2!3
  contact_groups        support-emails
}

我已经重新启动了nagios并确认配置检查通过。

我缺少明显的东西吗?

编辑:

插件文件位于2个文件夹中:

/usr/lib64/nagios/plugins/check_http_load_time.rb

/usr/lib64/nagios/plugins/phantomjs-nagios/check_http_load_time.rb

这两个文件是相同的,两个文件都可以由nagios用户成功执行,并且两个位置都不能与命令定义一起使用。我尝试使用完整路径和$ USR1 $变量来调用它,该变量指向所有其他插件所在的标准位置

/usr/lib64/nagios/plugins/

1 个答案:

答案 0 :(得分:0)

经过努力最终解决。该错误消息不是很有帮助,因为nagios用户的环境变量存在问题。 原始脚本具有以下shebang:

#!/usr/bin/env ruby

将其更改为ruby二进制文件的实际位置后,脚本将起作用:

#!/usr/local/rvm/rubies/ruby-2.5.1/bin/ruby

仍然感到惊讶的是,当它被Nagios用户使用时。

相关问题