gpt4 book ai didi

python - Nagios/Centreon 错误 : Return code 127 is out of bounds : Plugin may be missing

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:57 25 4
gpt4 key购买 nike

作为 IT 项目的一部分,我使用了 Nagios。为了获得温度传感器的值,我创建了一个 python 插件,它将读取数据库中的值,并在屏幕上打印出来。

问题是当我要监控基于这个插件的服务时,在Centreon web界面显示为CRITICAL错误“(Return code 127 is out of bounds ) 插件可能丢失了"。

这是我的安装总结:

  • Nagios + NDOutils (+Centreon Web Interface) 在 Debian 7.5 上安装: http://fr.scribd.com/doc/239973292/1-Installation-Manuelle-de-Nagios-Centreon-Debian#scribd

  • 我创建了一个 python 插件“cigne_plugin.py”,它将读取数据库中的值,并打印在屏幕上。

  • /usr/local/nagios/libexec

    中添加文件“cigne_python.py
  • 在文件/usr/local/nagios/etc/resource.cfg中,$USER1$宏定义在/usr/local/nagios/libexec

  • /usr/local/nagios/etc/checkcommands.cfg 中,我添加了这些行:

    define command{
    command_name arduino_temp_sensor
    command_line $USER1$/cigne_plugin.py
    }
  • /usr/local/nagios/etc/objects/commands.cfg 中,我添加了以下行:

    define command{
    command_name arduino_temp_sensor
    command_line $USER1$/cigne_plugin.py
    }
  • /usr/local/nagios/etc/objects/localhost.cfg 中:

    define service{
    use local-service
    host_name localhost
    service_description Arduino Temp
    check_command arduino_temp_sensor
    notification_enabled 0
    }
  • 在 Centreon Web 界面(配置 -> 命令)中添加命令“arduino_temp_sensor

  • 在 Centreon Web 界面(配置 -> 服务)中添加服务“Arduino Temp”

  • 检查文件权限

  • 检查脚本是否可以执行

  • 检查文件所有者

  • 检查用户和组

  • /usr/local/nagios/etc/services.cfg 中,我的服务是为“本地主机”创建的

我尝试使用注释所有代码的插件版本,它只返回“sys.exit(2)”,问题不在代码中。

最佳答案

让我们尝试构建 test_wrapper.sh shell 脚本,看看是否存在一些更普遍的问题,或者它是否只是与 python 隔离。

[joe@joeyoung.io libexec]# pwd
/usr/local/nagios/libexec
[joe@joeyoung.io libexec]# cat <<EOF >> test_wrapper.sh
> #!/bin/sh
> echo "OK"
> exit 0
> EOF
[joe@joeyoung.io libexec]# cat test_wrapper.sh
#!/bin/sh
echo "OK"
exit 0
[joe@joeyoung.io libexec]# ls -al test_wrapper.sh
-rw-r--r-- 1 joe joe 27 Aug 6 15:48 test_wrapper.sh
[joe@joeyoung.io libexec]# chmod a+x test_wrapper.sh
[joe@joeyoung.io libexec]# ls -al test_wrapper.sh
-rwxr-xr-x 1 joe joe 27 Aug 6 15:48 test_wrapper.sh
[joe@joeyoung.io libexec]# ./test_wrapper.sh
OK

“OK”表示输出正常。

[joe@joeyoung.io libexec]# echo $?
0
0

Return Code表示返回码正常。

现在让我们构建一个简单的 test_wrapper.py 来消除 python 代码内容的任何问题。

[joe@joeyoung.io libexec]# cat <<EOF >> test_wrapper.py
> import sys
>
> def main():
> print "OK"
> sys.exit(0)
>
> if __name__ == '__main__':
> main()
> EOF
[joe@joeyoung.io libexec]# cat test_wrapper.py
import sys

def main():
print "OK"
sys.exit(0)

if __name__ == '__main__':
main()
[joe@joeyoung.io libexec]# ls -al test_wrapper.py
-rw-r--r-- 1 joe joe 124 Aug 6 15:58 test_wrapper.py
[joe@joeyoung.io libexec]# chmod a+x test_wrapper.py
[joe@joeyoung.io libexec]# ls -al test_wrapper.py
-rwxr-xr-x 1 joe joe 124 Aug 6 15:58 test_wrapper.py
[joe@joeyoung.io libexec]# python test_wrapper.py
OK

“OK”表示输出正常。

[joe@joeyoung.io libexec]# echo $?
0
0

Return Code表示返回码正常。

最后让我们添加命令和服务定义,以便我们可以通过 Nagios 网络界面对其进行测试。

修改/usr/local/nagios/etc/objects/commands.cfg

注意: 我们只修改一个 commands.cfg 文件,这样我们就没有重复的命令定义来混淆 Nagios。我们暂时忽略 checkcommands.cfg

添加:

define command {
command_name sh_test_wrapper
command_line $USER1$/test_wrapper.sh
register 1
}
define command {
command_name python_test_wrapper
command_line /usr/bin/python $USER1$/test_wrapper.py
register 1
}

修改/usr/local/nagios/etc/objects/localhost.cfg

添加:

define service{
use local-service
host_name localhost
service_description sh test wrapper
check_command sh_test_wrapper
notification_enabled 0
register 1
}
define service{
use local-service
host_name localhost
service_description python test wrapper
check_command python_test_wrapper
notification_enabled 0
register 1
}

让我们验证配置文件

[joe@joeyoung.io libexec]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

然后重新启动 Nagios。

[joe@joeyoung.io libexec]# service nagios restart

让我们看看这些非常基本的检查是否有效,看看我们是否可以进一步缩小问题的范围。

关于python - Nagios/Centreon 错误 : Return code 127 is out of bounds : Plugin may be missing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31852379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com