2016-08-23 26 views
0

我对ICINGA2的API有问题。ICINGA2 API未对主机进行修改

我试图用POST调用添加新的变量, 我得到所需的结果,

但ICINGA2没有添加新的变种。

根据文档: http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/icinga2-api

与下列API,我创建了我们的所有主机维也纳:

curl -k -s -u root:icinga -H 'Accept: application/json' -X PUT 'https://localhost:5665/v1/objects/hosts/server.example.com' \ 
-d '{ "templates": [ "generic-host" ], "attrs": { "zone": "Vienna", "address": "180.33.1.123", "check_command": "hostalive", "vars.os" : "Linux", "vars.agent" : "ssh" } }' \ 
| python -m json.tool 

虽然这部分正常工作,

的问题是一旦主机创建,我需要为不同的服务器添加各种变量。

例如 添加变量:“vars.servicename”:“DHCP_Servers”

如果我要回到文档,下面的API,将需要执行:

curl -k -s -u root:icinga -H 'Accept: application/json' -X POST 'https://localhost:5665/v1/objects/hosts/server.example.com' \ 
-d '{ "templates": [ "generic-host" ], "attrs": { "zone": "Vienna", "address": "180.33.1.123", "check_command": "hostalive", "vars.os" : "Linux", "vars.agent" : "ssh", "vars.servicename" : "DHCP_Servers" } }' \ 
| python -m json.tool 

,当我跑的API,如预期我恢复:

{ 
    "results": [ 
     { 
      "code": 200.0, 
      "name": "server.example.com", 
      "status": "Attributes updated.", 
      "type": "Host" 
     } 
    ] 
} 

但没有改变的是发生在ICINGA /小时ost文件。

回答

0

最近,显然与我的收件箱和论坛(https://monitoring-portal.org/index.php?thread/37160-adding-vars-with-api/&postID=234885#post234885)中的用户相同。在此留作备注,因为它可以帮助其他人了解为什么它不起作用。该功能只是未实现,因为它涉及存储应用的更改,执行回滚并重新应用。不像听起来那么简单。

​​

+0

评论对这段网址: https://dev.icinga.com/issues/11501>“我们知道,你们中许多人需要这种功能,进行更改,然后自动重新评估一切。使用事务,回滚,依赖关系映射,表达式等来实现并不容易,一旦我们有时间估计和发布目标,我们将更新问题。如果有人说 - 我可以做到 - 请分享您的发现和补丁在这里进行进一步的审查/讨论。“ – user7242424