ICINGA2 API未对主机进行修改
问题描述:
我对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文件。
答
最近,显然与我的收件箱和论坛(https://monitoring-portal.org/index.php?thread/37160-adding-vars-with-api/&postID=234885#post234885)中的用户相同。在此留作备注,因为它可以帮助其他人了解为什么它不起作用。该功能只是未实现,因为它涉及存储应用的更改,执行回滚并重新应用。不像听起来那么简单。
评论对这段网址: https://dev.icinga.com/issues/11501>“我们知道,你们中许多人需要这种功能,进行更改,然后自动重新评估一切。使用事务,回滚,依赖关系映射,表达式等来实现并不容易,一旦我们有时间估计和发布目标,我们将更新问题。如果有人说 - 我可以做到 - 请分享您的发现和补丁在这里进行进一步的审查/讨论。“ – user7242424