我正在尝试使用Zabbix API获取路由器的序列号。我使用以下代码:
from pyzabbix import ZabbixAPI
username = "myuser"
password = "mypasswd"
servername = "https://10.10.1.1/zabbix/api_jsonrpc.php"
zapi = ZabbixAPI(servername)
zapi.session.verify = False
zapi.login(username, password)
payload = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"host"
],
"selectInventory": [
"serialno_a"
],
"searchInventory": {
"oob_ip": "174.145.27.15"
}
},
"id": 2
}
hosts = zapi.host.get(payload)
print(hosts)
因此,此代码打印Zabbix中的每个主机以及主机对象中的每个项目属性。我想要的是打印一个属于主机库存对象属性的值。另外,我想限制我的代码只获取与该IP地址174.145.27.15相关的序列号。据我所知,这段代码应该这样做。
以下是Zabbix API官方参考的示例语法。
按主机广告资源搜索
在主机清单“操作系统”字段中检索包含“Linux”的主机。
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"host"
],
"selectInventory": [
"os"
],
"searchInventory": {
"os": "Linux"
}
},
"id": 2,
"auth": "7f9e00124c75e8f25facd5c093f3e9a0"
}
以下是官方API文档的链接,您可以在其中看到主机和主机广告资源
的属性https://www.zabbix.com/documentation/3.0/manual/api/reference/host/object
我真的迷失在这里,无法通过Google搜索找到任何帮助。另外,我真的不明白“id”的意思是什么:2 因为无论价值是多少,我都会得到相同的结果。