The Icinga-Reporting is based on the IDOUtils backend and just like the Icinga-Core, it will support all major database platforms.
Here we'll give you some instructions on how to install the Icinga-Reporting with JasperServer.
Prerequisites
You need Icinga-Core and IDOUtils installed and running. Icinga-Reporting also requires a system to run the JasperServer based on Tomcat.
![]() |
Note |
---|---|
If you don't have Icinga yet please follow the instructions given in the "quickstart-idoutils" documentation. |
Install the JasperServer
You can use the JasperServer installation binary or the specific WAR-Archive to deploy the software in an existing engine.
Install from binary
You can use the JasperServer-ce-linux-installer provided on Sourceforge with MySQL database and Tomcat server included. Just execute the installer-binary which leads you through the install process.
Install WAR-Archive
You can deploy the JasperServer-CE WAR into an existing Tomcat6 server and use the existing Icinga database for the repository. Here we describe the WAR-installation into a Tomcat6 server. Also checkout the official JasperServer Installation Guide here.
Install Tomcat using your OS repositories
Fedora/RHEL/CentOS/openSuSE/SLES
#> yum install tomcat6
Debian/Ubuntu
#> apt-get install tomcat6
Install JasperServer CE into your Tomcat Server
Download jasperserver-ce-x.x.x-bin.zip from Sourceforge/Jasper
Follow the installation documentation published on Sourceforge/Jasper (JasperServer-CE-Install-Guide.pdf)
After successful JasperServer installation the interface is reachable at http://<yourhost>:8080/jasperserver and you are able to login with jasperadmin/jasperadmin and go to the next step. Please change the default password as soon as possible.
In case of any errors consult the JasperServer Troubleshooting Guide
Download the Templates
Download the Icinga-Reporting package from Sourceforge/Icinga
Or using GIT: you can also download all templates and the current servlet implementation in our :git://git.icinga.org/icinga-reports.git/.
Take your clone from the icinga-reports.git to get a fresh branch
#> git clone git://git.icinga.org/icinga-reports.git
Or download the software using https://git.icinga.org/index?p=icinga-reports.git;a=snapshot;h=refs/heads/master;sf=tgz.
Install the Icinga-Reporting package
Unpack the downloaded file and copy it to your JasperServer directory.
#> tar xzvf icinga-reports-xxx.tar.gz #> cp icinga-reports-<-version>/jasperreports/package/icinga-reports.zip /opt/jasperserver/scripts/ #> cd /opt/jasperserver/scripts/
Importing the whole reporting package requires just one command:
#> ./js-import.sh --input-zip icinga-reports.zip
If you want to update an existing repository please use the following command:
#> ./js-import.sh --input-zip icinga-reports.zip --update
You can export the whole Icinga part of the repository with the following command:
#> ./js-export.sh --uris /Icinga --output-zip icinga-reports.zip
![]() |
Note |
---|---|
If the import scripts fails, please check your jasperserver.xml for the current user and password. You can change the default user and password in <jasperserver-ce-dir>/scripts/config/js.jdbc.properties |
![]() |
Note |
---|---|
The export-/import-process is explained in detail in chapter 5.12 of the JasperServer CE-Install-Guide |
Install the JAVA classes for SLA-Reports
Generating automatic reports for last week, last month or last year requires to calculate the dates automatically for the specific reports. To use that feature you have to install the icinga-reporting.jar archive into the Jasper lib directory. It should be in the WEB-INF folder of your installation. Please don't forget to restart your jasper-server after installation.
Configure quartz the scheduler
The reporting distribution is done via quartz scheduler. To configure the sender mail and your local gateways please edit the following file <tomcat_home>/webapps/jasperserver/WEB-INF/js.quartz.properties. Please restart the tomcat server to activate the new settings.
service tomcat6 restart or /etc/init.d/tomcat restart
Configure your database connection
Login to http://localhost:8080/jasperserver with jasperadmin/jasperadmin.
After a successful package installation you will find the datasource here:
/root/Icinga/datasource (be sure that Refine contains "changed by anyone").
- Edit the existing datasource and configure your values.
- Test the configuration and save the connection.
- All reports in our package point to this datasource and should be able to run.
![]() |
Note |
---|---|
Remember to clear the search field and set the 4 dropdowns to the following positions to find the datasource: |
"Changed by anyone" (already mentioned above)
"All"
"Any time"
"Any schedule"
After this is done, hit search to "apply" the filters. Now you should be able to see the data sources. Default for dropdown filter #2 is Visualization type, which hides data sources.
Different table prefix
If you changed your table prefix during installation you can replace the existing prefixes using the following script.
grep -l -r " icinga_" . | xargs sed -i.BAK -e 's/ icinga_/ /g' grep -l -r "icinga_" . | xargs sed -i.BAK -e 's/^icinga_//g' find . -iname "*BAK" -exec rm -f {} \;
Known Bugs: If you don't see any graph labels in a PDF export please switch from OpenJDK to SUNJava.
Integration into Icinga-Web
Prerequisites
icinga-core
mysql running
ido2db module configured and writing into the database
Icinga-Web installed
Jasper server installed and running
icinga-reporting package installed on Jasper server
Install
The reporting cronk is fully integrated into Icinga-Web so you don't have to install anything additional.
Configuration
Depending on your current environment you have to configure the cronk to set the Jasper server location and user credentials. The configuration is set in the reporting module
$ cd app/modules/Reporting/config/ $ ls autoload.xml config_handlers.xml module.xml routing.xml $ vi module.xml
<!-- Jasper configurations --> <setting name="jasperconfig.default"> <ae:parameter name="jasper_url">http://10.121.0.95:8080/jasperserver</ae:parameter> <ae:parameter name="jasper_user">jasperadmin</ae:parameter> <ae:parameter name="jasper_pass">jasperadmin</ae:parameter> <ae:parameter name="tree_root">/Icinga/reports</ae:parameter> </setting> <!-- Custom config if I have more that one --> <!-- <setting name="jasperconfig.custom1"> <ae:parameter name="jasper_url">http://127.0.0.175/jasperserver</ae:parameter> <ae:parameter name="jasper_user">custom_user</ae:parameter> <ae:parameter name="jasper_pass">custom_passwd</ae:parameter> </setting> -->
Please alter the jasperconfig.default to suit your environment and change jasper_url, jasper_user and jasper_pass.
You can integrate more than one Jasper server. The configuration name will be included into the reporting cronk later. Please select a unique name for each configuration.
The XML configuration is prefixed. The full name for 'jasperconfig.default' is modules.reporting.jasperconfig.default. The long name is the real config setting for using in the cronks configuration.
The default /Icinga/reports
is the path for the icinga-reporting package but you can run every report
configured with Jasper through the cronk. If you want to use different people for different locations you have to create more cronks with
groups_only permissions.
Cronk configuration
The Jasper config is ready. Now you need a cronk and tell it which configuration you want to use. Go to your cronk configuration
(cronks.xml
) and add a new cronk like the following:
![]() |
Note |
---|---|
Due to config changes between 1.4 and 1.5 there are several locations for the cronk settings. Please have a look in the other document resource where it could be |
<cronk name="icingaReportingDefault"> <ae:parameter name="module">Reporting</ae:parameter> <ae:parameter name="action">Cronk.Main</ae:parameter> <ae:parameter name="hide">false</ae:parameter> <ae:parameter name="description">Seamless Jasper Integration</ae:parameter> <ae:parameter name="name">Reporting</ae:parameter> <ae:parameter name="categories">reporting</ae:parameter> <ae:parameter name="image">cronks.Weather Could Sun</ae:parameter> <ae:parameter name="ae:parameter"> <ae:parameter name="jasperconfig">modules.reporting.jasperconfig.default</ae:parameter> <ae:parameter name="enable_onthefly">1</ae:parameter> <ae:parameter name="enable_repository">1</ae:parameter> <ae:parameter name="enable_scheduling">1</ae:parameter> </ae:parameter> </cronk>
Have you noticed the configuration string? This is the string you configured in the module.xml
shown in the
topic before.
You can also enable some modes for this cronk:
enable_onthefly
The "create reports on the fly" mode. It allows you to create your reports in the icinga-web,
taking previews and selecting your outputs etc ...
enable_repository
A repository view. If you have scheduled reports which create the output in the Jasper server
virtual directory. You can download Jasper resources and preview content.
Feel free to edit our sample reports with iReport and change these to your needs :)
That's all, you're done!
© 2009-2012 Icinga Development Team, http://www.icinga.org