9.5. Installation von Icinga-Reporting mit JasperReports Server
Zurück | Kapitel 9. Integration mit anderer Software | Weiter

## 9.5. Installation von Icinga-Reporting mit JasperReports Server

Icinga-Reporting basiert auf dem IDOUtils-Backend und unterstützt, genau wie der Icinga-Core, alle großen Datenbankplattformen.

Hier geben wir Ihnen einige Hinweise, wie Sie das Icinga-Reporting mit JasperReports Server installieren.

### 9.5.1. Offizielle Dokumentation

Mehr Information finden Sie unter http://sourceforge.net/projects/jasperserver/files/JasperServer/JasperServer%205.0.0/JasperReports-Server-CP-Install-Guide.pdf oder http://jasperforge.org/espdocs/espbrowse.php?id=86&type=folder&group_id=112&parent=86

### 9.5.2. Voraussetzungen

- Icinga und IDOUtils

  Installiert wie in den Schnellstartanleitungen beschrieben, entweder über die Sourcen oder über Distributionspakete

  | Anmerkung
  Ab Icinga 1.8 gibt es eine Funktion in der Datenbank die alle benötigten SLA- Informationen bereitstellt. Diese Funktion muss zusätzlich zu dem Report- Paket zu in die bestehende IDOUtils Datenbank importiert werden.

  MySQL

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

  Stellen Sie bitte ebenfalls sicher, dass der Datenbank- Benutzer (hier icinga@localhost) das Recht EXECUTE besitzt.

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

- Apache Tomcat

  Nur falls Sie nicht den mit JasperReports Server gebündelten Tomcat benutzen möchten.

       #> apt-get install tomcat6

- PostgreSQL

  Nur falls Sie nicht das mit JasperServer gebündelte PostgreSQL benutzen möchten. PostgreSQL ist für die JasperReports Server interne Speicherung erforderlich.

  | Anmerkung
  Das Backend von JasperReports Server wurde ab Version 4.2.1 von MySQL nach PostgreSQL geändert! Source

- JasperReports Server

  | Anmerkung
  JasperReports Server 5.0.0 wird erst ab Icinga-Reporting 1.9 unterstützt! Für die Installation Version des Icinga-Reporting- Paketes < 1.9 , nutzen Sie bitte mindestens JasperReports Server 4.5.0.

  Abhängig von Ihrer Architektur (`uname -a`) holen Sie sich den entsprechenden Installer - hier im Beispiel 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

  - stimmen Sie der Lizenz zu

  - wählen Sie "bundled tomcat"

  - wählen Sie "bundled postgresql"

    - wählen Sie eine anderen PostgreSQL-Port, wie z.B. 5443, um nicht mit existierenden Einstellungen zu kollidieren

  - installieren Sie die Beispiel-Reports und "ireports"

  Der Installer wird automatisch die benötigte Datenbank und das Schema anlegen und die Beispiele installieren.

  | Anmerkung
  Die standardmäßig wird JasperReports Server nach /opt/jasperreports-server-cp-5.0.0/ installiert. Wenn Sie den JasperReports Server aktualisieren, versichern Sie sich mit der richtigen Version zu arbeiten!

  Start

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

  Für einzelne Komponenten

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

### 9.5.3. Icinga Reporting

Beginnend mit Icinga 1.6 liefert das Paket configure- und make-Skripte.

- Sourcen

  Laden Sie das Paket von sourceforge herunter und entpacken es. Falls Sie ein Problem haben, das ggf. in der Entwickerversion gelöst ist, dann holen Sie sich den aktuellen Entwickler-Snapshot aus git

       $> wget http://sourceforge.net/projects/icinga/files/icinga-reporting/1.9.0/icinga-reports-1.9.0.tar.gz; \
          tar xzf icinga-reports-1.9.0.tar.gz; \
          cd icinga-reports-1.9.0

  oder

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

  Falls ein Entwickler Sie gebeten hat, ihren/seinen Branch zu benutzen, dann benutzen Sie

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

- Konfigurieren

  Falls Sie den JasperReports Server vorher nicht mit dem Default-Präfix installiert haben, dann müssen Sie configure den Standort mitteilen.

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

- Make

  Rufen Sie 'make' ohne Parameter auf, um eine komplette Liste der verfügbaren Optionen zu erhalten.

  - MySQL Connector

    JasperReports Server wird mit dem PostgreSQL-Connector ausgeliefert, aber wenn Sie MySQL benötigen, dann bietet das Icinga-Reporting-Paket einen Connector zur Installation an.

         #> make install-mysql-connector

    Starten Sie den Tomcat-Server neu

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

  - Installieren

    Der JasperReports Server muss gestartet sein!

         #> make install

    Starten Sie den Tomcat-Server neu

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

### 9.5.4. Konfiguration

Öffnen Sie das Web-Interface, Standardwerte sind jasperadmin:jasperadmin

`http://127.0.0.1:8080/jasperserver`

- IDO

  Gehen Sie nach `/root/Icinga/datasource` (stellen Sie sicher, dass Refine den Wert "changed by anyone" enthält).

  Abbildung 9.1. Icinga reporting datasource ido mysql

  Abbildung 9.2. Icinga reporting

  - Editieren Sie die vorhandene "datasource" und stellen Sie Ihre Werte ein. MySQL driver: com.mysql.jdbc.Driver MySQL URL: jdbc:mysql://localhost:3306/icinga

  - Testen Sie die Konfiguration und speichern Sie die Verbindung.

  - Alle Reports in unserem Paket zeigen auf diese "datasource" und sollten lauffähig sein.

### 9.5.5. Reports

Überprüfen Sie, dass die Reports verfügbar und lauffähig sind.

Abbildung 9.3. Icinga reporting

### 9.5.6. Fehler

- Anzeigefehler

       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.

  Der Tomcat läuft als root und versucht, auf das X11-Display des Benutzers zuzugreifen. Erlauben Sie es für jeden lokalen Benutzer.

       $> xhost +local:all

- Generierungsfehler

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

  Es könnte Sun AWT sein, das versucht, auf X11-Klassen zuzugreifen, aber tatsächlich ist es die PDF-Generierung für einen Report.

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

Zurück | Nach oben | Weiter
9.4. MKLiveStatus-Integration | Zum Anfang | Kapitel 10. weitere Software

© 2009-2013 Icinga Development Team, http://www.icinga.org