【问题标题】:Powershell, invoke-webrequest...and ZabbixPowershell、invoke-webrequest ...和 ​​Zabbix
【发布时间】:2013-08-23 14:36:14
【问题描述】:

我正在尝试使用 powershell 来自动创建报告工具。我需要获取 Zabbix (v1.8) 图形图像。由于尚无法通过 API 连接,因此我必须连接到 URL,然后获取图表。

这是我的代码:

$zabbixLoginUrl = "http://zabfront-eqx.noc.lan/zabbix/index.php?login=1"
$zabbixGraphUrl = "http://zabfront-eqx.noc.lan/zabbix/chart2.php?graphid="
$userName = "username"
$userPwd = "pwd"

$loginPostData = @{name=$userName;password=$userPwd;enter="Enter"}
$login = Invoke-WebRequest -Uri $zabbixLoginUrl -Method Post -Body $loginPostData -SessionVariable sessionZabbix

#let's see if we have a cookie set
if ($sessionZabbix.Cookies.Count -eq 0) {
    Write-Host "fail to connect"
    break
}
else {Write-Host "connected"}


#now let's retrieve the graph #4433 using the priviously established session
$graph = Invoke-WebRequest -Uri ($zabbixGraphUrl+"4433") -WebSession $sessionZabbix

我可以连接并获取 cookie:

$sessionZabbix.Cookies.GetCookies("http://zabfront-eqx.noc.lan/zabbix/index.php") | select name, value

    Name                                                                                Value                                                                              
    ----                                                                                -----                                                                              
    zbx_sessionid                                                                       b2451e6c7fd0767dec22cca46427b7c2                                                   

不幸的是 $graph 不包含“图像”属性,“内容”表示我没有连接:

$graph.Images.Count
0

$graph.Content
[...]
<span class="footer_sign">Not connected</span>

谁知道我做错了什么??

谢谢

【问题讨论】:

  • 所以,我打开了 Wireshark 广告,显然 GET 请求的 cookie 部分丢失了……我不明白……
  • 等等,也许是因为我没有使用相同的 url (/zabbix/index.php vs /zabbix/charts2.php) 所以 item.path 属性不匹配?但是我怎样才能将我的cookie用于/zabbix/charts2.php url??

标签: powershell zabbix


【解决方案1】:

所以我让它工作了: 我需要使用相同的 sessionid 为图形 URL 设置一个 cookie:

$sessionZabbix.Cookies.SetCookies("http://zabfront-eqx.noc.lan/zabbix/chart2.php", $sessionZabbix.Cookies.GetCookieHeader($zabbixLoginUrl))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2012-07-26
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多