2015-10-27 37 views
0

我是服务器管理icinga和nagios使用的初学者。我在机器上安装了icinga,并设置了所有的基础知识。我尝试的下一步是检查某些服务是否在端口8080, 8081 and 8082上运行。我为此写了一个快速的Python脚本。我将该文件放在/usr/local/lib/myscript.py之下。我做的下一步是在/etc/nagios-plugins/config/testone.cfg下创建一个命令。我的命令看起来像这样自定义插件检查icinga2

define command{ 
     command_name check_restarts 
     command_line python /usr/local/lib/myscript.py -w 3 -c 5 -p 8080 
     command_line python /usr/local/lib/myscript.py -w 3 -c 5 -p 8081 
     command_line python /usr/local/lib/myscript.py -w 3 -c 5 -p 8082 
     } 

然后我在/etc/icinga2/conf.d/services.conf下向services.conf添加了一个服务。但是当我重新启动在界面上显示消息Backend icinga not running的icinga并且当我尝试sudo service icings2 status时错误指向services.conf时,这会导致错误。

任何人都可以请指导我围绕这些步骤?

+0

我的歉意,它看起来像Icinga2与Nagios没有更多的共同代码或配置,所以我以前的建议是不正确的,所以我删除了我的答案。我不熟悉Icinga2格式,所以不能进一步帮助,但我强烈建议你看一下:http://docs.icea.org/icinga2/latest/doc/module/icinga2/toc#!/icinga2/ latest/doc/module/icinga2/chapter/configure-icinga2-first-steps #configure-icinga2-first-steps –

+0

看起来您使用旧的Icinga1语法来定义命令。 Icinga1语法与Nagios语法兼容,但Icinga1的旧.cfg语法与Icinga2的新.conf语法不兼容。此链接可能会帮助您找到定义自定义命令的正确语法:http://docs.icea.org/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/ monitoring-basics#命令 –

回答

1

要做到这一点,最简单的方法如下:

一旦你nagios安装转到/etc/nagios/nrpe.d/commands.conf(如果你没有一个commands.conf创建它)。在该文件中发生此

command[check_process] = /usr/bin/python /path/to/your/script

这里check_process可以是你想保留的任何名称。

一旦这个到位,使用check_nrpe插件检查它。它在/usr/lib/nagios/../check_nrpe地方(不要完全记住位置)

这在你的终端类型: path/to/check_nrpe -H localhost -c check_process

考虑到这是本地主机,即你运行在同一个系统我没有看到任何问题,突然出现的脚本。

下一步去/etc/icinga/conf.d/mychecks.conf(再次创建此文件,最好创建一个新的文件夹,并将其放在那里)。这应该是你的文件的内容:

apply Service "My service" { 
    import "generic-service" 
    check_command = "check_process" 

    assign where host.name == NodeName 
} 

您可以检查使用sudo /etc/init.d/icinga2 checkconfig任何问题。任何问题通常都是非常具有描述性和有益的。如果checkconfig[ok]然后重新启动icinga并设置。

+0

谢谢回答。我完全放弃了这一点。我昨晚试了一下,它完美无瑕地运行。 – newkid101