Keywords: Supervision, Icinga, Nagios, Linux

9.5. Installation of the Icinga Reporting with JasperReports Server
Prev | Chapter 9. Integration With Other Software | Next

## 9.5. Installation of the Icinga Reporting with JasperReports Server

### 9.5.1. Introduction

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 JasperReports Server.

### 9.5.2. Official Docs

For more information, please refer to http://sourceforge.net/projects/jasperserver/files/JasperServer/JasperServer%205.0.0/JasperReports-Server-CP-Install-Guide.pdf or http://jasperforge.org/espdocs/espbrowse.php?id=86&type=folder&group_id=112&parent=86

### 9.5.3. Requirements

- Icinga and IDOUtils

  Installed via sources or packages.

  | Note
  Starting with Icinga 1.8 there is a database function providing all needed sla-informations. This function needs to be imported into your existing IDOUtils database additional to the Icinga Reporting package.

  MySQL

      #> /usr/bin/mysql icinga < icinga-reports-1.10.0/db/icinga/mysql/availability.sql

  Please make sure your database user (here icinga@localhost) has the correct GRANT for EXECUTE.

      #> /usr/bin/mysql -u root -p <password> icinga
      mysql> GRANT EXECUTE ON icinga.* TO 'icinga'@'localhost' ;
      quit

- Apache Tomcat

  Only if you don't want to use the bundled one from JasperServer

       #> apt-get install tomcat6

- PostgreSQL

  Only if you don't want to use the bundled one from JasperServer. PostgreSQL is required for JasperServer's internal storage.

  | Note
  JasperServer changed their backend from MySQL to PostgreSQL in 4.2.1! Source

- JasperReports Server

  | Note
  The new JasperReports Server 5.0.0 is only supported starting with Icinga Reporting 1.9. If you want to use an older version of the Icinga Reporting- package, please use at least JasperReports Server 4.5.0.

  Depending on your architecture (`uname -a`), fetch the appropriate installer - below is x64

       $> wget http://sourceforge.net/projects/jasperserver/files/JasperServer/JasperServer%205.0.0/jasperreports-server-cp-5.0.0-linux-x64-installer.run

       $> chmod +x jasperreports-server-cp-5.0.0-linux-x64-installer.run
       $> sudo ./jasperreports-server-cp-5.0.0-linux-x64-installer.run

  - Agree to license

  - select bundled tomcat

  - select bundled postgresql

    - select a different postgresql port, like 5433, not to interfere with existing setups

  - install sample reports and ireports

  The installer will automatically create the needed database, create the schema and install samples.

  | Note
  The default installation location will be /opt/jasperreports-server-cp-5.0.0/, so make sure to work on the correct JasperReports Server if you are doing an upgarde!

  Start

       #> cd /opt/jasperreports-server-cp-5.0.0/
       #> ./ctlscript.sh start

  For individual components

       #> ./ctlscript.sh postgresql start|stop
       #> ./ctlscript.sh tomcat start|stop

### 9.5.4. Icinga Reporting

As from Icinga 1.6 on, the package provides configure and make scripts.

- Sources

  Download from sourceforge and extract. If you have an issue which might be solved in the developer version then get the latest developer snapshot from git

       $> wget https://github.com/Icinga/icinga-reports/releases/download/v1.10.0/icinga-reports-1.10.0.tar.gz \
          tar xzf icinga-reports-1.10.0.tar.gz; \
          cd icinga-reports-1.10.0

  or

       $> git clone git://git.icinga.org/icinga-reports.git ; \
          cd icinga-reports

  If a developer told you to use his/her branch, check that out with

       $> git branch localbranch origin/devhead/devbranch
       $> git checkout localbranch
       $> git log

- Configure

  If you did not install the JasperReports Server into the default prefix before, you need to tell configure the location.

       $> ./configure --with-jasper-server=/opt/jasperreports-server-cp-5.0.0

- Make

  Invoke 'make' without params to get a full list of available options.

  - MySQL Connector

    JasperReports Server natively ships with the PostgreSQL Connector, but if you require MySQL, the Icinga Reporting package provides one for install.

         #> make install-mysql-connector

    Restart the Tomcat server

         #> cd /opt/jasperreports-server-cp-5.0.0
         #> ./ctlscript.sh stop tomcat
         #> ./ctlscript.sh start tomcat

  - Install

    JasperReports Server must be running!

         #> make install

    Restart the Tomcat server

         #> cd /opt/jasperreports-server-cp-5.0.0
         #> ./ctlscript.sh stop tomcat
         #> ./ctlscript.sh start tomcat

### 9.5.5. Configuration

Open the webinterface, default credentials are jasperadmin:jasperadmin

`http://127.0.0.1:8080/jasperserver`

- IDO

  Go to `/root/Icinga/datasource` (be sure that Refine contains "changed by anyone").

  Figure 9.1. Icinga reporting datasource IDO

  - edit the existing datasource and configure your values. MySQL driver: com.mysql.jdbc.Driver MySQL URL: jdbc:mysql://localhost:3306/icinga

    Figure 9.2. Icinga reporting datasource ido mysql

  - test the configuration and save the connection.

  - all reports in our package point to this datasource and should be able to run.

### 9.5.6. Reports

Verify that the reports are available and working.

Figure 9.3. Icinga reporting

### 9.5.7. Errors

- Display Errors

       org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.InternalError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.

  The tomcat being run as root, trying to access the users x11 display. Allow it for everyone locally.

       $> xhost +local:all

- Generation Errors

       org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser

  It could be Sun AWT trying to connect to X11 classes, but actually it's the PDF generation on a report.

       $> sudo apt-get install msttcorefonts
       $> cd /opt/jasperreports-server-cp-5.0.0
       $> sudo sh ctlscript.sh stop
       $> sudo sh ctlscript.sh start

Prev | Up | Next
9.4. MKLiveStatus Integration | Home | Chapter 10. Additional software

© 1999-2009 Ethan Galstad, 2009-2017 Icinga Development Team, https://www.icinga.com