Zabbix导出图形(.PNG)文件

Mad*_*d-D 10 php linux curl zabbix

我的目标:

我想以.png格式提取与主机相关的图形.我的GOOGLE研究表明,我们没有Zabbix API来完成这项任务.因此很少有博客建议使用Chart2.php和CURL.有人可以解释一下如何去做(详细步骤)?

注意:对不起从未在php上工作过,也从未在curl上工作

我试过的时候

curl https://example.com/zabbix/chart2.php?graphid=1552&width=300&height=300
Run Code Online (Sandbox Code Playgroud)

得到了这个,但链接不起作用

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="/zabbix/openid?graphid=1552&amp;modauthopenid.referrer=https%3A%2F%2Fexample.com%2Fzabbix%2Fchart2.php%3Fgraphid%3D1552">here</a>.</p>
<hr>
<address>Apache/2.2.3 (Red Hat) Server at example.com Port 80</address>
</body></html>
Run Code Online (Sandbox Code Playgroud)

我怎样才能将这个与我的zabbix api(JAVA)电话合并?

Mic*_*sky 11

这适用于正常的密码身份验证,您需要将其调整为openid,我不使用,而且大多数情况下您必须更改此选项才能使用curl.

1. wget --save-cookies=z.coo -4 --keep-session-cookies -O - -S --post-data='name=(a zabbix username)&password=(password)&enter=Enter' 'http://example.com/zabbix/index.php?login=1'

2. wget -4 --load-cookies=z.coo -O result.png 'http://example.com/zabbix/chart2.php?graphid=410&width=1778&period=102105&stime=20121129005934'

第一个发布身份验证并保存cookie.第二个加载相同的cookie文件并检索png.

您当然希望在不使用shell的情况下实现它,但是使用的是您喜欢的语言和zabbix的JSON-RPC API,其中已经有很多客户端库.

虽然AFAIK你仍然需要像这样登录才能获得图形的图像.至少目前是这样.

编辑:https://support.zabbix.com/browse/ZBXNEXT-562是一个投票(或开始工作)


Art*_*bun 6

除此之外,如果您使用的是Zabbix 2.0,则cURL POST数据会略有变化.

替换以下内容:

1. wget --save-cookies=z.coo -4 --keep-session-cookies -O - -S --post-data='name=(a zabbix username)&password=(password)&enter=Enter' 'http://example.com/zabbix/index.php?login=1'

具有以下内容:

1. wget --save-cookies=z.coo -4 --keep-session-cookies -O - -S --post-data='name=(a zabbix username)&password=(password)&enter=Sign in&autologin=1&request=' 'http://example.com/zabbix/index.php?login=1'