java调用zabbix api 添加代理
java 添加主动式代理时官方文档中给的请求格式为:
{
"jsonrpc": "2.0",
"method": "proxy.create",
"params": {
"host": "Active proxy",
"status": "5",
"hosts": [
{
"hostid": "10279"
}
]
},
"auth": "ab9638041ec6922cb14b07982b268f47",
"id": 1
}
然后图形界面添加agent代理程序时:
图中可以看见还需要一个代理地址,但查找官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/api/reference/proxy/object后发现没有这个字段,现在我们就到它的数据库中查看一下:
图中用线画出来的是我通过图形界面添加的代理,发现它的ip的字段名称为:proxy_address 然后我们就将这个字段添加进去
Map<String, Object> params = new HashMap<String, Object>();
params.put("host", "proxy_test"); //agent代理程序名称
params.put("status", "5"); //系统代理程序模式,5:主动代理 6:被动代理
params.put("proxy_address", "192.168.1.162"); //代理地址
List<Map<String, Object>> hosts = new ArrayList<>();
Map<String, Object> host = new HashMap<String, Object>();
host.put("hostid", "10266");
hosts.add(host);
params.put("hosts", hosts);
data = zabbixService.createProxy(params);
成功添加!!!
注:如果官方文档中没有的字段,然后图形界面中有,可以去数据库查看一下