如何从命令行手动运行 nagios 检查?

如何从命令行手动运行 nagios 检查?

在 nagios 中定义和测试新服务时,我一直在重新启动 nagios,然后单击该服务,并尽快重新安排检查,然后等待检查完成。

有没有更有效的方法来做到这一点?我想使用命令行来运行该特定检查并获取输出。

答案1

有时我发现弄清楚插件到底在做什么很棘手。为了弄清楚这一点,我将 nagios 设置为调试模式,配置如下。 debug_level=2048 在 nagios 处于调试模式时,我只需跟踪文件debug_logdebug_file=/var/log/nagios3/nagios.debug强制检查,您将确切看到命令的运行方式。不过,我通常不会保留此设置,因为它非常冗长,并且会快速填满您的日志文件。

答案2

这很简单。只需 cd(或不 cd)进入插件目录(此目录位置会有所不同,具体取决于您的安装方式,但请检查 /usr/local/nagios 或 /usr/lib/nagios)。

找到您想要运行的插件(如果您不确定,请将您在 Linux 机器上的插件目录中看到的内容与位于此处的插件进行比较:http://exchange.nagios.org/directory/Plugins,或者尝试运行“。/plugin-name -h”来获取有关插件的帮助信息)。

从命令行使用这些“插件”的方法与任何其他 Linux 脚本相同:只需运行“./plugin-name”并加上您想要检查的适当标志,就可以了!

答案3

我采取了比 @Zoredache 更暴力的方向,我登录到 nagios 服务器并执行“while true; do ps awwlx | grep NAGIOS_CHECK_NAME; done”,同时我强制重新检查服务,其中 NAGIOS_CHECK_NAME 是检查名称的一部分或我正在寻找的服务器的 IP。通常在几秒钟内就会弹出完整的检查命令,然后我会终止 while 循环并运行检查命令。

是的,这完全是蛮力,但是<耸肩>它对我来说有效。

答案4

转到你的插件目录 - 在我的示例中它是

/usr/lib64/nagios/plugins/

输入你的插件名称 - 在我的例子中它是

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

但是在这个例子中,端口号是可选的

另一个例子 -

在你的配置文件中,它看起来像下面这样(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 绿色或红色)

试试这个 - (插件完整路径) - H (服务器名称) -c (检查名称)

/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;

就是这样

相关内容