Powershell 通过 API 获取 Zabbix 主机
Powershell get Zabbix Hosts via API
我正在尝试使用 powershell 从 Zabbix 获取主机数据 API。
我想为主机组 15、24、26 取回以下列:
- hostid
- 主机
- 状态
- 接口id
- ip
- dns
- 使用ip
如果我使用 Postman 提交查询,我会提交以下有效的内容:
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host",
"status"
],
"groupids": [15, 24, 26],
"selectInterfaces": [
"interfaceid",
"ip",
"dns",
"useip"
]
},
"id": 2,
"auth": "xxxxxxxxxxxxx"
}
到目前为止,我有以下 powershell,其中 returns 很多信息
$params.body = @{
"jsonrpc"= "2.0"
"method"= "host.get"
"params"= @{
output = "extend"
selectHosts = "extend"
}
auth= "xxxxxxxxxxxxx"
id= 2
} | ConvertTo-Json
$result = Invoke-WebRequest @params
Write-Host $result
我无法理解如何只请求我想要的信息,我以前没有做过这样的 powershell 脚本,所以希望得到任何指导。
您需要使用您在 Postman 中使用的相同字段和选项构建您的 $params.body
:
$params.body = @{
"jsonrpc"= "2.0"
"method"= "host.get"
"params"= @{
output = @( "host", "hostid", "status" )
selectInterfaces = @( "interfaceid", "ip", "dns", "useip" )
groupids = @( "15", "24", "26")
}
auth = xxxxxxxxxxxxx
id = 2
} | ConvertTo-Json
你应该得到类似的东西:
hostid host status interfaces
------ ---- ------ ----------
10017 somehost 0 {@{interfaceid=30251; ip=192.168.10.15; dns=; useip=1}}
10051 anotherone 0 {@{interfaceid=12353; ip=10.10.10.20; dns=tanotherone.mydomain.com; useip=1}}
10054 whatisthis 0 {@{interfaceid=43262; ip=172.16.1.20; dns=; useip=1}}
我正在尝试使用 powershell 从 Zabbix 获取主机数据 API。
我想为主机组 15、24、26 取回以下列:
- hostid
- 主机
- 状态
- 接口id
- ip
- dns
- 使用ip
如果我使用 Postman 提交查询,我会提交以下有效的内容:
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host",
"status"
],
"groupids": [15, 24, 26],
"selectInterfaces": [
"interfaceid",
"ip",
"dns",
"useip"
]
},
"id": 2,
"auth": "xxxxxxxxxxxxx"
}
到目前为止,我有以下 powershell,其中 returns 很多信息
$params.body = @{
"jsonrpc"= "2.0"
"method"= "host.get"
"params"= @{
output = "extend"
selectHosts = "extend"
}
auth= "xxxxxxxxxxxxx"
id= 2
} | ConvertTo-Json
$result = Invoke-WebRequest @params
Write-Host $result
我无法理解如何只请求我想要的信息,我以前没有做过这样的 powershell 脚本,所以希望得到任何指导。
您需要使用您在 Postman 中使用的相同字段和选项构建您的 $params.body
:
$params.body = @{
"jsonrpc"= "2.0"
"method"= "host.get"
"params"= @{
output = @( "host", "hostid", "status" )
selectInterfaces = @( "interfaceid", "ip", "dns", "useip" )
groupids = @( "15", "24", "26")
}
auth = xxxxxxxxxxxxx
id = 2
} | ConvertTo-Json
你应该得到类似的东西:
hostid host status interfaces
------ ---- ------ ----------
10017 somehost 0 {@{interfaceid=30251; ip=192.168.10.15; dns=; useip=1}}
10051 anotherone 0 {@{interfaceid=12353; ip=10.10.10.20; dns=tanotherone.mydomain.com; useip=1}}
10054 whatisthis 0 {@{interfaceid=43262; ip=172.16.1.20; dns=; useip=1}}