Curl 自动安排并取消Nagios中的停机时间

Curl 自动安排并取消Nagios中的停机时间,curl,command,cgi,nagios,downtime,Curl,Command,Cgi,Nagios,Downtime,我正在尝试安排和取消Nagios core 4.x中的停机时间。 我可以使用以下命令为主机安排停机时间: curl --silent --show-error --data cmd_typ=55 --data cmd_mod=2 --data host=automichost1 --data "com_data=Updating+application" --data trigger=0 --data "start_time=05-15-2016 19:00:00" --data "end_

我正在尝试安排和取消Nagios core 4.x中的停机时间。

我可以使用以下命令为主机安排停机时间:

curl --silent --show-error  --data cmd_typ=55 --data cmd_mod=2 --data host=automichost1  --data "com_data=Updating+application" --data trigger=0 --data "start_time=05-15-2016 19:00:00" --data "end_time=05-15-2016 19:15:00" --data fixed=1 --data btnSubmit=Commit --insecure http://localhost:80/nagios/cgi-bin/cmd.cgi -u "nagiosadmin:XXXXXX"
此cmd不返回生成的停机id,只返回一个html文件

但要取消计划停机时间,我需要使用以下命令

curl --silent --show-error  --data cmd_typ=78 --data cmd_mod=2 --data down_id=2  --data "com_data=Updating+application" --data btnSubmit=Commit --insecure http://localhost:80/nagios/cgi-bin/cmd.cgi -u "nagiosadmin:xxxxxxx"
在这里,我需要下一个id来取消停机。在自动化脚本中,无法从任何nagios外部命令获取此停机id。我还尝试了上面提到的以下外部命令 CMD\u DEL\u停机时间\u主机名171

但这在Nagios上不起作用,并给出消息“抱歉,您无权提交指定的命令。”


我现在陷入困境,无法前进。有人知道如何解决这个问题吗?

因为我很长时间没有得到我的问题的答案,所以我将如何解决这个问题的方法发布在这里

我在nagios客户论坛上问了同样的问题,得到了回复。JSON查询生成器对于这类事情非常方便(其中x.x.x.x是您的核心安装):

x.x.x.x/nagios/jsonquery.html

JSON查询生成器简介:

labs.nagios.com/2014/06/19/expl-7-第1部分/

如果要检查主机y.y.y.y是否有计划的停机时间,可以尝试以下查询(其中x.x.x.x是您的核心安装):

如果没有计划停机,downtimelist将为空,否则它将包含主机y.y.y.y的每个计划停机的停机id

另外,如果需要图形响应,请从正在运行的脚本中删除json:


由于很长时间我都没有得到我的问题的答案,我在这里发布我是如何解决的

我在nagios客户论坛上问了同样的问题,得到了回复。JSON查询生成器对于这类事情非常方便(其中x.x.x.x是您的核心安装):

x.x.x.x/nagios/jsonquery.html

JSON查询生成器简介:

labs.nagios.com/2014/06/19/expl-7-第1部分/

如果要检查主机y.y.y.y是否有计划的停机时间,可以尝试以下查询(其中x.x.x.x是您的核心安装):

如果没有计划停机,downtimelist将为空,否则它将包含主机y.y.y.y的每个计划停机的停机id

另外,如果需要图形响应,请从正在运行的脚本中删除json:


我已使用以下命令成功删除/取消Centos服务器上从251到348的“停机id”:

for i in `seq 251 348`; do /bin/printf "[%lu] DEL_SVC_DOWNTIME;$i\n" `date +%s` > /var/spool/nagios/cmd/nagios.cmd; done

我已使用以下命令成功删除/取消Centos服务器上从251到348的“停机id”:

for i in `seq 251 348`; do /bin/printf "[%lu] DEL_SVC_DOWNTIME;$i\n" `date +%s` > /var/spool/nagios/cmd/nagios.cmd; done