我们的例行维护需要服务必须被降低。
问题是这些服务有Nagios检查,我们要么去Web界面,并禁用检查或获取电子邮件。
有没有从Windows和/或Linux客户端命令行的方式来禁用Nagios检查(或通知),并启用它? 理想情况下,这将发生在我们正在执行维护的机器上,而不是Nagios服务器本身。
我想禁用通知/检查预维护,并重新启用后维护。
假设客人可以访问networking界面,下面的命令行应该工作:
禁用通知
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"
根据您的设置,您可能还需要使用curls的–insecure或–user选项。
而IIRC,服务和主机组的cmd_type号码是不同的 – 查看你的网页浏览器中使用了哪些链接。
哟可以使用nagios.cmd命令启用/禁用主机通知
例如:
禁用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
为我的主机启用所有通知
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
你也可以检查这个URL Nagios通知命令
对于这样的使用,你可以编辑你的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 ... }