【问题标题】:PDF report Generation in Zabbix is not workingZabbix 中的 PDF 报告生成不起作用
【发布时间】:2016-02-12 14:32:45
【问题描述】:

我正在尝试从以下 repo 将 pdf 报告生成模块添加到 zabbix:

https://github.com/SandipSingh14/Zabbix_

我已经创建了 tmp 和 report 文件夹。 看起来 PDF 没有在服务器上创建,不知道为什么!请查看以下请求的快照:

Error Snapshot

PHP 配置文件:

<?php
//CONFIGURABLE
# zabbix server info(user must have API access)
$z_server       = 'http://10.10.100.122/zabbix';
$z_user     = 'admin';
$z_pass         = 'zabbix';
# Temporary directory for storing pdf data and graphs - must exist
$z_tmp_path = '/usr/share/zabbix/zabbix-dynamic-pdf-report/tmp';
# Directory for storing PDF reports
$pdf_report_dir = '/usr/share/zabbix/zabbix-dynamic-pdf-report/report';
# Root URL to reports
$pdf_report_url = $z_server ."/zabbix-dynamic-pdf-report/report";
# paper settings
$paper_format   = 'A4'; // formats supported: 4A0, 2A0, A0 -> A10, B0 ->      B10, C0 -> C10, RA0 -> RA4, SRA0 -> SRA4, LETTER, LEGAL, EXECUTIVE, FOLIO
$paper_orientation = 'portrait'; // formats supported: portrait / landscape
# time zone - see http://php.net/manual/en/timezones.php
$timezone   = 'Asia/Calcutta';
# Logo used in PDF - may be empty
# TODO: Specify image size!
$pdf_logo   = './images/zabbix.png';
$company_name   = 'Zabbix';

//DO NOT CHANGE BELOW THIS LINE
$z_tmp_cookies  = "/tmp/";
$z_url_index    = $z_server ."index.php";
$z_url_graph    = $z_server ."chart2.php";
$z_url_api  = $z_server ."api_jsonrpc.php";
$z_login_data   = "name=" .$z_user ."&password=" .$z_pass   ."&autologin=1&enter=Sign+in";
?>

这是我在使用 index.php 中的调试时得到的结果

主机 ID:10153 报告类型:主机 时间段:3600 临时图片路径:/tmp/zabbix_report_OPt9cZ

HOSTNAME(id:10153)
CPU load(id:1289)
Memory usage(id:1290)
Disk space usage C:(id:1297)
Disk space usage E:(id:1399)
Disk space usage F:(id:1400)
Disk space usage G:(id:1401)
Report ready - available as: http://10.10.100.122/zabbix/zabbix-dynamic-pdf-  report/report/HOSTNAME.pdf

操作系统:Ubuntu Zabbix 版本:2.4.7

这里是 PHP 错误日志:

[Mon Feb 15 21:19:47.162244 2016] [:error] [pid 29796] [client 10.10.100.108:55341] PHP Warning:  Creating default object from empty value in /usr/share/zabbix/zabbix-dynamic-pdf-report/inc/ZabbixAPI.class.php on line 122, referer: http://10.10.100.122/zabbix/zabbix-dynamic-pdf-report/index.php
[Mon Feb 15 21:19:47.696413 2016] [:error] [pid 29796] [client 10.10.100.108:55341] PHP Warning:  fopen(/usr/share/zabbix/zabbix-dynamic-pdf-report/report/BLR-D-J9PSXX1.pdf): failed to open stream: Permission denied in /usr/share/zabbix/zabbix-dynamic-pdf-report/createpdf.php on line 319, referer: http://10.10.100.122/zabbix/zabbix-dynamic-pdf-report/index.php
[Mon Feb 15 21:19:47.696446 2016] [:error] [pid 29796] [client 10.10.100.108:55341] PHP Warning:  fwrite() expects parameter 1 to be resource, boolean given in /usr/share/zabbix/zabbix-dynamic-pdf-report/createpdf.php on line 320, referer: http://10.10.100.122/zabbix/zabbix-dynamic-pdf-report/index.php
[Mon Feb 15 21:19:47.696455 2016] [:error] [pid 29796] [client 10.10.100.108:55341] PHP Warning:  fclose() expects parameter 1 to be resource, boolean given in /usr/share/zabbix/zabbix-dynamic-pdf-report/createpdf.php on line 321, referer: http://10.10.100.122/zabbix/zabbix-dynamic-pdf-report/index.php

请帮我提出您的建议!

【问题讨论】:

  • 您可能需要查看 PHP 错误日志。
  • @mkaatman,您好,我已经更新了 PHP 错误日志,请看看您能否帮我解决问题!
  • 您使用的是这里的最新版本吗? github.com/confirm/PhpZabbixApi/releases 还有,PHP 是哪个版本的?
  • 我这样安装 PHP: apt-get install php5 php5-cli php5-common php5-mysql 我必须使用您发送的链接中的最新版本吗?我怎么做?对不起,我是这一切的新手!
  • 您可以在命令行中使用php -v 或在脚本中运行phpinfo(); 命令来查找特定的PHP 版本。很难确定您的安装为什么不起作用,但我怀疑是权限问题。 'ls -l /usr/share/zabbix/zabbix-dynamic-pdf-report/tmp'的输出是什么

标签: php pdf report zabbix


【解决方案1】:

zabbixdynamicpdfreport

zabbixdynamicpdfreport 模块允许我们生成 pdf 报告。实施后,我们可以选择在“小时”、“日”、“周”、“月”、“年”的时间范围内为“主机”、“主机组”生成报告。 我们可以从“旧报告”部分检索旧报告。

实施

  • 注意:仅针对 Ubuntu 或类似操作系统提及此过程。

依赖关系

  • php5curl
  • php5json

sudo apt-­get install php5­curl php5­json

克隆包含模块的git repo

cd /opt/ git clone https://github.com/SandipSingh14/Zabbix_

根据zabbixserver配置zabbixdynamicpdfreport(修改后的zabbix_​/zabbixdynamicpdfreport/config.inc.php应该是这样的)

cat Zabbix_​/zabbix­dynamic­pdf­report/config.inc.php

<?php 
//CONFIGURABLE 
# zabbix server info(user must have API access) 
$z_server = 'http://zabbix.example.com/'; 
$z_user = 'admin'; 
$z_pass = 'zabbix'; 
# Temporary directory for storing pdf data and graphs ­ must exist 
$z_tmp_path    = './tmp'; 
# Directory for storing PDF reports 
$pdf_report_dir    = './report'; 
# Root URL to reports 
$pdf_report_url    = "./report"; 
# paper settings 
$paper_format    = 'A4'; // formats supported: 4A0, 2A0, A0 ­> A10, B0 ­> B10, C0 ­> C10, RA0 ­> RA4, SRA0 ­> SRA4, LETTER, LEGAL, EXECUTIVE, FOLIO 
$paper_orientation = 'portrait'; // formats supported: portrait / lanscape 
# time zone ­ see http://php.net/manual/en/timezones.php 
$timezone    = 'Asia/Calcutta'; # Logo used in PDF ­ may be empty 
# TODO: Specify image size! 
$pdf_logo    = './images/zabbix.png'; 
$company_name   = 'Zabbix'; 
//DO NOT CHANGE BELOW THIS LINE 
$z_tmp_cookies     = "/tmp/"; 
$z_url_index     = $z_server ."index.php"; 
$z_url_graph    = $z_server ."chart2.php"; 
$z_url_api    = $z_server ."api_jsonrpc.php"; 
$z_login_data    = "name=" .$z_user ."&password=" .$z_pass ."&autologin=1&enter=Sign+in"; 
?> 
  • 注意:根据您的 zabbix 服务器更改以下提到的变量
    • z_server = http://$ZABBIX_SERVER_DOMAIN/
    • z_user = $ZABBIX_USERNAME # 这个用户必须有管理员权限
    • z_pass = $ZABBIX_PASSWORD
    • timezone = Asia/Calcutta # 如果您在印度。

更改目录并在zabbixdynamicpdfreport中创建目录

cd Zabbix_/zabbix­dynamic­pdf­report mkdir tmp report

将zabbix auth更改为登录方式,登录zabbix服务器需要。

sed ­i 's,user.authenticate,user.login,g' inc/ZabbixAPI.class.php sed ­i 's,user.authenticate,user.login,g' inc/ZabbixAPI.class.php.org

将zabbixdynamicpdfreport复制到/usr/share/zabbix/

cp ­r /opt/Zabbix_/zabbix­dynamic­pdf­report /usr/share/zabbix/

重启apache

service apache2 restart

打开生成 PDF 报告页面

http://zabbix.example.com/zabbix­dynamic­pdf­report/index.php

页面应如下所示:

现在您可以选择报告类型“HOST OR HOSTGROUP”并单击下拉菜单以选择主机名或主机组名称

【讨论】:

  • 嗨,Sandip,我遵循了所有这些步骤,但是当我点击“生成”时,它显示“未找到”
  • 这就是我得到的!在此服务器上未找到请求的 URL /zabbix/zabbix-dynamic-pdf-report/report/HOSTNAME.pdf。 Apache/2.4.7 (Ubuntu) 服务器在 10.10.100.122 端口 80
  • 我也收到了 PHP 错误,正如您在我的问题中看到的那样!
  • 嗨 Rijath,请检查您的 $z_server 变量和 apache 日志,确保 /usr/share/zabbix/zabbixdynamicpdfreport 具有 zabbix user:group 权限。
  • chmod -R 777 /usr/share/zabbix/zabbix-dynamic-pdf-report 这解决了问题! :) 非常感谢桑迪普! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 2012-06-09
相关资源
最近更新 更多