Icinga

Installation des Icinga-Reporting-Pakets mit JasperServer

Das Icinga-Reporting-Paket basiert auf einem IDOUtils-Backend und dem Icinga-Core.

Dies ist eine Kurzanleitung zur Installation des Icinga-Reporting mit dem JasperServer.

Voraussetzungen

Der Icinga-Core und die IDOUtils sind installiert und konfiguriert. Das Icinga-Reporting benötigt außerdem ein System mit installiertem JasperServer, sowie einen Tomcat-Server.

[Anmerkung] Anmerkung

Wenn Sie Icinga noch nicht installiert haben, folgen Sie bitte den Anweisungen in der "quickstart-idoutils"-Dokumentation.

Installation des JasperServers

Sie können das JasperServer-Installations-Binary verwenden, oder Sie nutzen das spezifische WAR-Archiv, um die Software auf einem bereits existierenden Server bereitzustellen.

Installation von Tomcat

Fedora/RHEL/CentOS/openSuSE/SLES

 #> yum install tomcat6

Debian/Ubuntu

 #> apt-get install tomcat6

Installation des JasperServer CE in Ihren Tomcat Server

Nach erfolgreicher JasperServer-Installation können Sie das Interface erreichen über: http://<IhrHost>:8080/jasperserver. Melden Sie sich an mit jasperadmin/jasperadmin. Bitte ändern Sie das Passwort so schnell wie möglich.

Falls Sie irgendwelche Fehler erhalten, konsultieren Sie bitte den JasperServer Troubleshooting Guide

Download der Templates

Installation des Icinga-Reporting-Pakets

Entpacken Sie die heruntergeladene Datei und kopieren Sie diese in Ihr JasperServer-Verzeichnis.

 #> tar xzvf icinga-reports-xxx.tar.gz
 #> cp icinga-reports-<version>/jasperreports/package/icinga-reports.zip /opt/jasperserver/scripts/
 #> cd /opt/jasperserver/scripts/

Für das Importieren des gesamten Reporting-Pakets benötigen Sie nur ein Kommando:

 #> ./js-import.sh --input-zip icinga-reports.zip

Möchten Sie ein existierendes Repository updaten, benutzen Sie bitte folgendes Kommando:

 #> ./js-import.sh --input-zip icinga-reports.zip --update

Das Icinga- Repository können Sie exportieren mit:

 #> ./js-export.sh --uris /Icinga --output-zip icinga-reports.zip
[Anmerkung] Anmerkung

Falls das Import-Skript fehlschlägt, überprüfen Sie bitte Ihre Angaben zu Benutzer und Passwort in jasperserver.xml. Sie können den Benutzer und das Passwort ändern in der Datei <jasperserver-ce-dir>/scripts/config/js.jdbc.properties.

[Anmerkung] Anmerkung

Der export-/import-Prozess ist detailliert beschrieben in Kapitel 5.12 des JasperServer CE-Install-Guide

Installieren der JAVA-Klassen für die SLA-Reports

Das automatische Generieren von monatlichen, wöchentlichen und jährlichen Reports setzt die automatische Datumsberechnung für den jeweiligen Bericht voraus. Um dieses Feature nutzen zu können, müssen Sie das icinga-reporting.jar- Archiv ( zu finden unter icinga-reports/ReportClasses/) in das lib-Verzeichnis Ihres Jasperservers installieren (kopieren). Dies sollte unter dem WEB-INF-Verzeichnis Ihrer Installation zu finden sein, z.B. /opt/jasperserver-ce-3.7.1/apache-tomcat/webapps/jasperserver/WEB-INF/lib. Bitte starten Sie nach der Installation Ihren Jasperserver neu!

Konfigurieren des Quartzscheduler

Die Verteilung der Reports erfolgt über den Quartzscheduler. Um die Absenderadresse und Ihre lokalen Gateways zu konfigurieren, editieren Sie bitte:

<tomcat_home>/webapps/jasperserver/WEB-INF/js.quartz.properties und starten Sie Ihren Tomcat neu.

 service tomcat6 restart or /etc/init.d/tomcat restart

Konfigurieren der Datenbankverbindung

Einloggen auf http://localhost:8080/jasperserver mit jasperadmin/jasperadmin.

Nach erfolgreicher Paketinstallation finden Sie die Datasource hier:

/root/Icinga/datasource (stellen Sie sicher, dass Refine "changed by anyone" eingestellt ist).

- Editieren Sie die existierende Datasource und geben Sie Ihre Verbindungsparameter ein.

- Testen Sie die Konfiguration und speichern Sie die Verbindung.

- Alle Reporte in unserem Paket verwenden diese Datasource und sollten nun ausführbar sein.

[Anmerkung] Anmerkung

Denken Sie daran das Suchfeld zu ändern und setzen Sie die vier "Dropdowns" auf die folgenden Werte, um Ihre Datenquelle zu finden:

Wenn Sie nun den Suche-Button betätigen, sollten Sie die Datenquellen sehen.

Unterschiedliche Tabellen-Präfix

Falls Sie Ihren Tabellen-Präfix während der Installation geändert haben, können Sie den existierenden Präfix mit folgendem Skript ersetzen:

 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: Wenn Sie in Ihrem PDF-Export keine Graphen-Beschriftungen sehen, wechseln Sie von OpenJDK zu SUNJava.

Abbildung 9.1. Icinga-Reporting in Icinga-Web

Icinga-Reporting in Icinga-Web


Abbildung 9.2. Icinga-Reporting TOP10 in Icinga-Web

Icinga-Reporting TOP10 in Icinga-Web


Integration in Icinga-Web

Voraussetzungen

Installation

Der Reporting-Cronk ist voll in Icinga-Web integriert, so dass Sie nichts zusätzlich installieren müssen.

Konfiguration

Abhängig von Ihrer aktuellen Umgebung müssen Sie den Cronk konfigurieren, um den Jasper-Server-Standort und die Benutzerinformationen zu setzen. Die Konfiguration erfolgt im Reporting-Modul:

 $ 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>
 -->

Bitte passen Sie jasperconfig.default an Ihre Umgebung an und ändern Sie die Werte von jasper_url, jasper_user und jasper_pass.

Sie können mehr als einen Jasper-Server integrieren. Der Konfigurationsname wird später in den Reporting-Cronk inkludiert. Bitte wählen Sie einen eindeutigen Namen für jede Konfiguration.

Die XML-Konfiguration ist 'prefixed'. Der volle Name für 'jasperconfig.default' lautet modules.reporting.jasperconfig.default. Der lange Name ist die richtige Einstellung für die Nutzung in der Cronks-Konfiguration.

Der Default /Icinga/reports ist der Pfad für das Icinga-Reporting-Paket, aber Sie können jeden mit Jasper konfigurierten Report mit Hilfe des Cronks ausführen. Wenn Sie mehrere Benutzer für unterschiedliche Lokationen einrichten möchten, dann müssen Sie mehrere Cronks mit groups_only-Berechtigungen anlegen.

Cronk-Konfiguration

Die Jasper-Konfiguration ist erledigt. Sie benötigen nun einen Cronk, dem Sie mitteilen müssen, welche Konfiguration Sie benutzen möchten. Gehen Sie zu Ihrer Cronk-Konfiguration (cronks.xml) und fügen Sie einen neuen Cronk ähnlich dem Folgenden hinzu:

[Anmerkung] Anmerkung

Bedingt durch Konfigurationsänderungen zwischen 1.4 und 1.5 gibt es verschiedene Stellen für die Cronk-Einstellungen. Bitte werfen Sie einen Blick in die anderen Dokumente, wo das zu tun ist

 <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>

Haben Sie den Konfigurations-String bemerkt? Dies ist die Zeichenkette, die Sie in module.xml im vorigen Abschnitt eingestellt haben.

Sie können außerdem noch einige Modi für diesen Cronk aktivieren:

Wir geben Ihnen einige Beispiel-Reports an die Hand, ändern Sie diese gern auf Ihre Bedürfnisse :)