在nagios中定义和testing新服务时,我已经重新启动了nagios,然后单击服务,并尽快重新安排检查,然后等待检查发生。
有没有更有效的方法来做到这一点? 我想使用命令行来运行特定的检查并得到输出。
有时我发现搞清楚一个插件的function是非常棘手的。 为了解决这个问题,我把nagios设置成debugging模式,像这样的configuration。 debug_level=2048
在debugging模式下使用nagios,我只需简单地debuggingdebug_log
文件debug_file=/var/log/nagios3/nagios.debug
。 强制检查,你会看到如何命令正在运行。 我不会正常地保留这个设置,但它非常冗长,并且以很快的速度填满你的日志文件。
这很简单。 只要cd(或不)插入到plugins目录(这个目录的位置有所不同,取决于你如何安装它,但检查/ usr / local / nagios或/ usr / lib / nagios)。
find你想运行的插件(如果你不确定,比较你的Linux机器上的插件目录和插件位置: http : //exchange.nagios.org/directory/Plugins ,或者尝试运行“./plugin-name -h”来获得关于插件的帮助信息)。
从命令行使用任何这些“插件”的方法与任何其他Linux脚本相同:只要运行“./plugin-name”,并select合适的标志,就可以了。
我比@Zoredache采取了一个稍微暴力的方向,我login到nagios服务器,并“做到了;做ps awwlx | grep NAGIOS_CHECK_NAME;完成”,而我强制重新检查服务,NAGIOS_CHECK_NAME要么检查名称的一部分或我正在查找的服务器的IP。 通常在几秒钟之内popup完整的检查命令,然后杀死while循环并运行检查命令。
是的,这完全是蛮力的,但对我来说却是耸耸肩。
您可能还想尝试一下“捕获”插件。 它本质上和2048的debugging级别一样,但是可以在每个插件的基础上使用。 这会产生更less的输出。
去你的插件目录 – 在我的例子是
/usr/lib64/nagios/plugins/
input你的插件名称 – 在我的例子中是
check_tcp
现在运行完整的命令 – (插件名称)-H(主机名)-p(端口号)
/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080
产量
TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000
但是在这个例子中,端口号是可选的
另一个例子 –
在你的configuration文件里面,如下所示(myserver.cfg),你想从命令行运行check_cpu
define service{ use generic-service host_name myserver servicegroups windows service_description CPU contact_groups sysadmin_email_only notification_options w,c,r check_command check_nrpe!check_cpu }
即时检查(无GUI绿色或红色)
试试这个 – (插件完整path)-H(servername)-c(checkname)
/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu
输出 –
OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;
而已