This small PERL script will pull an image from Zenoss given the ID of the graph. I suggest you run it as a system cron every 10 - 15 minutes. This script requires the UNIX command WGET to pull the images. Thanks to all those that posted before me because they really did all of the hard work, I just put everything together in a script!
Note: this script can be made SO MUCH BETTER, I just have other projects that I have to move onto and my perl knowledge isn't all that great. Please make better and more exciting. Maybe dancing penguins on the screen as it processes???? Instructions - Save the below code into a file called "pullImage.pl" and make it system executable. - Modify the top of the file with the settings appropriate for your Zenoss config. - "BaseDir" is where the images will be exported to, usually under your webserver root. - Create a file under $basedir called images.txt and insert the "ID" of each of your graphs. (See above discussion on how to do it with Firefox) - The images.txt file can have comments (prefixed with a # char) so that you know which graph is what since the Zenoss "IDs" aren't very self explainatory. Below is also an example images.txt file. - There is also a log file for troubleshooting and seeing progress. Code: #!/usr/bin/perl $wget = '/usr/bin/wget'; $user = 'kiosk'; $password = 'password'; $RenderServer = 'http://zenoss.yourdomain.com:8080/zport/RenderServer/render'; $basedir = '/users/home/public_html/graph'; $logfile = 'last_output.log'; # First let's get to the correct place to start. # This is the directory where you want the images to be dumped to. chdir($basedir); use Getopt::Std; # use Fcntl; sub usage() { print STDERR << "EOF"; Usage: pullImage.cgi -q Command Line Arguments -q Keep the script quiet! eg. no output. EOF exit(0); } # Start the Main Program # --------------------------------------------------- # Let's get our arguments if there are any. # like the shell getopt, "d:" means d takes an argument getopts("q",\%options) or usage(); # Let's remove the old logfile. unlink($logfile); # Add a seperator in the Log file for readability. open LOGFILE, ">>$logfile" or die "cannot open logfile $logfile for append: $!"; print LOGFILE "-" x 50 ."\n"; #Load all graph ID's into an array. @pix = `cat $basedir/images.txt`; $i=0; foreach $pix (@pix) { chomp $pix; if ($pix =~ m/\s*#/i) { # ignore comment lines $pix =~ tr/#//d; # Remove the Hash mark print LOGFILE "Next graph is for: ". $pix . "\n"; print LOGFILE "-" x 50 ."\n"; next; } # Let's build our command line first. $cmdline = "-r --output-document=graph$i.png -a $logfile --post-data=\"__ac_name=$user&__ac_password=$password&submit=Submi$ #Use system command to get images from Zenoss. `$wget $cmdline`; # Add a seperator in the Log file for readability. print LOGFILE "-" x 50 ."\n"; } close LOGFILE; if(!($options{q})){ print "$i images were fetched successfully.\n"; } Below is an example images.txt file: Code: # Qwest ATM Throughput eNq1kl1rwjAUhv9KQbwZtomTiQY6KLO6gh-jc2MXgrRpUrPFVpJU58iPn3ZbbcucVzs3OYc8J-flvDGH2nS1aa4Ii1fKbkN4KHi6I8LkbM2UfawFi1l0OLdEKIYDbvIgJNwOmZJAEqzv_aexizpdmIcFG708QYx6yQwromTLYHSWqa_CuDU6XQvCyeJVD9xhCTNFsLNBJgXg6WEO-CBJKuXPsSGCggHZMkwkeCOc760dCeNszxJFREKUhdM1SCXIaxocMWc-aS8hOI1YnlJLiAhFEiLn2fWdkavv6mo2iV0V1-q1ruqYXe3Qju86tVcaEGIMIaXosIQwzZLIyEOPHnxvOq_RaOw8zhHOxAI1b6xrTpvyDPgtHAXb-CI7cV7QOng_ccX2C2P-cf3FjGUpP2dASVDuQEVg2YLiwq416bE3ddv1pxrHX0lpv4-8pORCyYYK_qcPVfKCEVX4Fyc-AYU_OEI=&drange=129600&width=500&start=end-129600s&end=now-0s&comment=2009-01-18%2022%5C%3A25%5C%3A31%5Ct%5Ct%5Ct%5Ct%20to%20%5Ct%5Ct%5Ct2009-01-20%2010%5C%3A25%5C%3A31 # Server Room Temperature eNqFjl1rwjAUhv9KQLyMiUJBDnYQZqKCDum64UVhZPVUK1FH0lYZ-fGroNgVx87N-eA5vA9VnkpP6RbzzbYI-5zXS4W2yFNtqNGfaELlp9HbXELAO0rxuiDG_RdaXZQWyYgEPNldkeFD5IkML8hYquaZWn0KWeksM8c6jH3j4ejcrdVUxsZY5Sk6Jhd91vj8aMw9a9ewdhzEu4zERPrnVkzYivQikqLt0bk4K5Vlv7wJ8ZNlNHuJ2zjMxWsMaWkT6Aa9gcm67i_yqgW62vwPL8QK9vp8B5PdD5HWjoo=&drange=129600&width=500&start=end-129600s&end=now-0s&comment=2009-01-18%2022%5C%3A26%5C%3A33%5Ct%5Ct%5Ct%5Ct%20to%20%5Ct%5Ct%5Ct2009-01-20%2010%5C%3A26%5C%3A33 # T1 Bandwidth eNq1kl1vgjAUhv8KifFmEVrYTLQJS8hER-LHgm7ZhYmB0mI3BNMW3Zb--InbEMicV-tNe9KnPW_6VB8q3VW6viYsXkvbhPBQJNmecD1hGybtouYsZtFh3hEuGQ4SPQlCktghkwIIgtW9_zh2kWlddy0IDdjqwWIgRr10hiWRoqMxOsvlV6HdaqZh3UyWL2rgDiuUzoO9DXLBQZIduoAPkmZC_ExbwikYkB3DRIDXQDJi7EkY5-8slYSnRBo424BMgGNNgwKbE86CBK4gOHVZnZYG5xGKBETOk-s7I1fdNQNtU7uer9PrXDUxu35COb7rNG5pQYgxhJSiwzOEWZ5G2nGo0YPvTRcNGo2d-QLhnC9Ru2tYCW2LM-B3cBTs4ovsxHlGm-DtxJUCSjX_a6Bss6qszzmoZDpKqGWsWig37MYhNfamrtm8qlV8TUr7feSlFREVEzX8TxV18oKLOvyLjE_jETq4&drange=129600&width=500&start=end-129600s&end=now-0s&comment=2009-01-20%204%5C%3A39%5C%3A11%5Ct%5Ct%5Ct%5Ct%20to%20%5Ct%5Ct%5Ct2009-01-21%2016%5C%3A39%5C%3A11 # Cisco CPU Load over 1 Month eNp9jt1LwzAUxf-VwdhjmqsguECF4LIpTJH6gQ8FybLbLjP9IGk7J_njjdjOPoj35XDP_XHPIUtPhCdkhzrfNfEZQFg6tI1W0hAjN2jiGq3CspE5hltbh5UYXeiBNtXh5IC_SZ7Xgs1hegnfw1TdXhS6nFxN5pDu_UIsB4tYeYhp6yw1VQijn1hWzg0SUjK6wE4rdPQdjTlGB9zk7VGXDdoSm0hVBe1fvfUaWbtlWweMv4iEr4S_HuXFo1zPE8HHRaYASgFk2anwz_jVQ3J7_zRG2Zo_BqO1KZtBdG6ymfuL6isw2eX_g3f8lRXy4xdK91_tt4ls&drange=3628800&width=500&start=end-3628800s&end=now-0s&comment=2008-12-09%2017%5C%3A09%5C%3A23%5Ct%5Ct%5Ct%5Ct%20to%20%5Ct%5Ct%5Ct2009-01-20%2017%5C%3A09%5C%3A23 # Mailserver CPU Load eNqtkV1vgjAYhf-KifGyUG-bcNEommUfWcB9XJiYWgt2KWDaAnPhx6_NBoIyx4VXzXnf856cPAWLCvgVAHvG4732phAaUTCpOSUCCLJlwjswSVmqSczMLj8YCQRPeO0WWdlMYDX3F0ip2SEPSBkelWYJkKT03FxJV2Qm1P1iaaZU_Zi0yJ2zglOm3IRw4ZRsG-dHnmomU6YdmiVuN3DTlY6UO7RTEOFXP8BLv5pddvAuK1U48HFP1TGElEIYRWc7FK7w7L5aPgd3T6ueO_SAwxWiuVyjCXSmIppMrph_uyJSxIP8j_gdJeTz5F1_dFC_KPMHtwNt4zZtcR2ydXjnVbqA66nBa-G28NrNaNSPt74aALexDkLbuP8D-0a4viFYG7dpi-tgrcM7r9IFW0_HP1hbYO3mL7D11QCwjXUQ2MbdA_YbaEqQ2g==&drange=129600&width=500&start=end-129600s&end=now-0s&comment=2009-01-19%205%5C%3A46%5C%3A43%5Ct%5Ct%5Ct%5Ct%20to%20%5Ct%5Ct%5Ct2009-01-20%2017%5C%3A46%5C%3A43 Hope thia all helps. Hope this all works! : ) -------------------- m2f -------------------- Read this topic online here: http://forums.zenoss.com/viewtopic.php?p=33652#33652 -------------------- m2f -------------------- _______________________________________________ zenoss-users mailing list zenoss-users@zenoss.org http://lists.zenoss.org/mailman/listinfo/zenoss-users