Nagios:在 Windows/Linux 上禁用命令行通知

Nagios:在 Windows/Linux 上禁用命令行通知

我们的例行维护要求停止服务。

问题是这些服务有 Nagios 检查,我们要么必须转到 Web 界面并禁用检查,要么获取电子邮件。

有没有办法从 Windows 和/或 Linux 客户机上的命令行禁用 Nagios 检查(或通知)并启用它?理想情况下,这将发生在我们正在执行维护的机器上,而不是 Nagios 服务器本身。

我想在维护前禁用通知/检查,并在维护后重新启用它们。

答案1

假设访客可以访问 Web 界面,则以下命令行应该可以起作用:

禁用通知

curl -d "cmd_typ=23&cmd_mod=2&host=[THE HOST]&service=[THE SERVICE]&btnSubmit=Commit" "http://[[NAGIOS SERVER]/nagios/cgi-bin/cmd.cgi"

启用通知

curl -d "cmd_typ=22&cmd_mod=2&host=[THE HOST]&service=[THE SERVICE]&btnSubmit=Commit" "http://[[NAGIOS SERVER]/nagios/cgi-bin/cmd.cgi"

根据您的设置,您可能还需要使用 curl 的 --insecure 或 --user 选项。

并且IIRC,cmd_type编号对于服务和主机组是不同的——请查看您的网络浏览器中正在使用的链接。

答案2

你可以使用以下方式启用/禁用主机通知nagios 命令命令

例如:

禁用 my-host 的所有通知

now=`date +%s`
#Check first path nagios.cmd & printf 
commandfile='/var/lib/nagios3/rw/nagios.cmd'  

/usr/bin/printf "[%lu] DISABLE_HOST_NOTIFICATIONS;my-host\n" $now > $commandfile

启用 my-host 的所有通知

now=`date +%s`
#Check first path nagios.cmd & printf 
commandfile='/var/lib/nagios3/rw/nagios.cmd'  
/usr/bin/printf "[%lu] ENABLE_HOST_NOTIFICATIONS;my-host\n" $now > $commandfile

你也可以检查这个网址Nagios 通知命令

答案3

对于此类用途,您可以编辑 nagios 服务文件,并禁用此主机上所有服务的检查,就像您在 Web 界面中所做的那样,这需要修改一些选项。
让我们举个例子,如果您需要禁用机器 nibiru 中的 DNS 服务检查,请禁用主动/被动检查,如下所示。


define service{
    host_name               nibiru
    service_description     DNS
    ...
    active_checks_enabled   0  ; set value to 0
    passive_checks_enabled  0  ; set value to 0
    ...
}

相关内容