如何在Nagios中使用Python文件?

时间:2013-04-24 09:27:10

标签: python plugins nagios

我正在尝试使用以下Python代码和说明从Nagios获得响应: http://skipperkongen.dk/2011/12/06/hello-world-plugin-for-nagios-in-python/

由于某些原因,我从来没有得到Nagios的确定,它总是带回来的消息:返回代码126超出界限 - 插件可能缺失

我安装了nagiosplugin 1.0.0,但似乎仍然无法正常工作 与此同时,我有一些其他服务(不是python文件),例如, http检查,当前用户和SSH

我做错了什么?我已经尝试解决这几天了

2 个答案:

答案 0 :(得分:1)

让Nagios使用您的新插件非常简单。您应该对三个文件进行更改并重新启动Nagios - 这就是全部。

第一个文件是 /etc/nagios/command-plugins.cfg (如果你知道 ubuntu 中此文件或模拟的路径,请留下评论)。假设插件文件放在/ usr / lib / nagios / plugins /目录中:

command[check_hello_world]=/usr/lib/nagios/plugins/check_helloworld.py -m 'some message'

将一个目录下载到 /etc/nagios/objects/commands.cfg (对于ubuntu用户,应该在该目录中创建cfg文件 / etc / nagios-plugins / config / ):

define command {
    command_name    check_hello_world
    command_line    $USER1$/check_hello_world.py -m 'some message'
}

保存文件并打开 /etc/nagios/objects/localhost.cfg (在ubuntu路径中找到位于/etc/nagios3/nagios.cfg中的服务定义文件,默认情况下 cfg_dir = / etc / nagios3 / conf.d 。因此,要在ubuntu中定义新服务,用户应在该目录中创建cfg文件,例如 hello.cfg )。找到此部分:

#
# SERVICE DEFINITIONS
#

并添加新条目:

define service {
    use                 local-service ; Name of service template to use
    host_name           localhost
    service_description Check using the hello world plugin (always returns OK)
    check_command       check_hello_world
}

剩下的就是重启Nagios并验证插件是否正常工作。通过发出以下命令重新启动Nagios:

/etc/init.d/nagios restart

http://www.linux-mag.com/id/7706/

ubuntuforums.org - Thread: My Notes for Installing Nagios on Ubuntu Server 12.04 LTS

答案 1 :(得分:0)

我必须在python2.7前面添加路径,即使文件中的shebang指定了它。

在命令定义中我有这个:

command_line /usr/local/bin/python2.7 $USER1$/check_rabbit_queues.py --host $HOSTADDRESS$ --password $ARG1$

即使实际python文件的顶部有:

#!/usr/bin/env python2.7

即使脚本执行并从命令行返回得很好而没有指定解释器。

我尝试的其他任何东西似乎都没有用。