2016-05-16 47 views
0

我正在尝试计划并取消Nagios核心4.x中的停机时间。自动化计划并取消Nagios中的停机时间

我可以使用下面的CMD调度主机的停机时间:

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" 

在这里,我需要down_id要取消停机。在自动化脚本中,无法从任何nagios外部命令获取此宕机时间标识。我也试过在http://docs.icinga.org/latest/en/cgiparams.html CMD_DEL_DOWNTIME_BY_HOST_NAME 171

提到的以下外部命令,但是这是不工作的Nagios的,并给出消息“对不起,您无权提交指定的命令。”

我现在卡住了,不能前进。有谁知道如何实现这个目标?

回答

1

由于它很长,我没有得到我的查询的答案,我张贴如何解决它。

我在nagios客户论坛上问了同样的问题,并得到了答复。该JSON查询生成器是这样的事情(其中xxxx是你的核心安装)超灵便:

XXXX/nagios的/ jsonquery.html

简要介绍到JSON查询生成:

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

如果你想检查是否主机YYYY已计划的停机时间,你可以试试下面的查询(其中xxxx是你的核心安装):

http://x.x.x.x/nagios/cgi-bin/statusjson.cgi?query=downtimelist&formatoptions=whitespace&hostname=y.y.y.y&downtimeobjecttypes=host&downtimetimefield=starttime

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

此外,如果你想要一个图形化的响应,下降从脚本JSON你正在运行:

http://x.x.x.x/nagios/cgi-bin/status.cgi?query=downtimelist&formatoptions=whitespace&hostname=y.y.y.y&downtimeobjecttypes=host&downtimetimefield=starttime