[rrd-users] corrupted PNG files coming out of cacti/apache
C. Falconer
cfalconer at totalteam.co.nz
Mon Nov 22 03:50:45 CET 2010
Hi all.
I've had a problem for the past couple of months and its not obvious
what's at fault. I'm reasonably sure its not rrdtool though.
-----------
Problem: Cacti shows no graphs.
If I get the rrdtool command line out of cacti's "graph debug" section,
and run that at the command line then I get the file at
http://criggie.dyndns.org/crap/cacti-good.png
RRDTool Command:
/usr/bin/rrdtool graph - --imgformat=PNG --start=-86400 --end=-300
--title='testhing for CF 3T - Ping Latency' --base=1000 --height=120
--width=800 --alt-autoscale-max --lower-limit=0
--vertical-label='milliseconds' --slope-mode --font TITLE:9: --font
AXIS:8: --font LEGEND:8: --font UNIT:8:
DEF:a="/var/www/html/cacti/rra/testhing_for_cf_3t_ping_1053.rrd":ping:AVERAGE
AREA:a#FFF200FF:""
GPRINT:a:LAST:"Current\:%8.2lf %s" GPRINT:a:AVERAGE:"Average\:%8.2lf %s"
GPRINT:a:MAX:"Maximum\:%8.2lf %s"
RRDTool Says:
OK
So this works fine when pasted to a command line, and produces a valid
PNG file.
-------------------------------------
When I do a wget on the file
wget -c
"http://192.168.100.198/cacti/graph_image.php?local_graph_id=821&rra_id=0&view_type=tree&graph_start=1290388765&graph_end=1290390565"
-O cacti-bad.png
I get the file at
http://criggie.dyndns.org/crap/cacti-bad.png
Which is an invalid PNG file
-----------------------------------
Now, the two output PNGs differ
cacti-bad.png
PNG image data, 1212437084 x 811347971, 135-bit
cacti-good.png
PNG image data, 903 x 202, 8-bit/color RGBA, non-interlaced
$ ls -la *png
-rw-r--r-- 1 cfalconer Domain Users 22180 Nov 19 13:34 cacti-bad.png
-rw-r--r-- 1 cfalconer Domain Users 22860 Nov 19 13:35 cacti-good.png
I've put an od -a at
http://rrdtool.pastebin.ca/1998463
to show the differences.
Now if I replace "\0" with nul in that file, its better but still not right.
$ cat cacti-bad.png | sed "s/\\\0/\x00/g" > cacti-sed.png
$ file cacti-sed.png
PNG image data, 903 x 230, 8-bit/color RGBA, non-interlaced
Therefore something is futzing with the data after it is generated by
rrdtool.
------------------------------------
Other diagnostics:
I have duplicated the entire cacti install to another host which is
similarly configured. It works perfectly and shows the graphs fine.
------------------------------------
Details:
Linux, Centos 5.5 running on an IBM x3250 in 32 bit mode
# uname -srmopi
Linux 2.6.18-194.8.1.el5.centos.plusPAE i686 i686 i386 GNU/Linux
# rpm -q rrdtool cacti php-gd httpd php
rrdtool-1.2.23-1.el5.rf
cacti-0.8.7f-1.3t
php-gd-5.1.6-27.el5
httpd-2.2.3-43.el5.centos.3
php-5.1.6-27.el5
-------------------------------------
Firstly I do not think rrdtool is the cause. I suspect its something to
do with the way apache's httpd is getting the data back
I have access to other servers configured basically the same way, and
they're all working fine.
Cacti is continuing to poll correctly in the background.
The problem seems to be rrdtool's output being fiddled before it hits
the end-user's browser.
Any advice for fixing this would be appreciated.
--
Craig Falconer
The Total Team - Secure Networks for Serious Business
Office: 0800 888 326 / +643 974 9128
Email: workorder at totalteam.co.nz
Web: http://www.totalteam.co.nz/
More information about the rrd-users
mailing list