java调用zabbix api 添加代理

java 添加主动式代理时官方文档中给的请求格式为:

{
    "jsonrpc": "2.0",
    "method": "proxy.create",
    "params": {
        "host": "Active proxy",
        "status": "5",
        "hosts": [
            {
                "hostid": "10279"
            }
        ]
    },
    "auth": "ab9638041ec6922cb14b07982b268f47",
    "id": 1
}

然后图形界面添加agent代理程序时:

java调用zabbix api 添加代理

图中可以看见还需要一个代理地址,但查找官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/api/reference/proxy/object后发现没有这个字段,现在我们就到它的数据库中查看一下:

java调用zabbix api 添加代理

图中用线画出来的是我通过图形界面添加的代理,发现它的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);

java调用zabbix api 添加代理

成功添加!!!

注:如果官方文档中没有的字段,然后图形界面中有,可以去数据库查看一下