Jasper Reporting – Dynamische Parameter

This entry is part 1 of 15 in the series Jasper Reporting

Jasper-ReportingSeinen Report mit Parametern zu versehen hat mehrere Vorteile. Zum einen kann man die gleiche Vorlage für verschiedene Kunden und Objekte einsetzen, zum anderen hat der Endanwender die Möglichkeit der Interaktivität. Wer auf viele Parameter setzt sollte jedoch immer für eine hohe Quote an vordefinierten Reports sorgen, da die Hürde zur Ausführung nicht zu hoch liegen sollte.

Gerade beim Vergleich von Text in einem Statement muss der eingegebene Parameter exakt übereinstimmen, da sonst keine Daten ermittelt werden können. Bei etwas längeren Attributen wie Host- oder Servicegruppen ist dies einfach zu fehleranfällig. Hier können dynamische Parameter Abhilfe schaffen, da sie dem Benutzer quasi die Summe aller Möglichkeiten anbieten und man nur noch aus dieser Menge auswählen kann.

post11_screen1Die Definition erfolgt wieder direkt auf dem JasperServer durch Anlage eines neuen “Input Controls”. Bei Eingabe des Namens bitte dringend auf die richtige Schreibweise achten, da dies im Support Fehler Nummer 1 ist, wenn der Wert nicht angenommen wird und ein Default-Wert existiert.

post11_screen2Bei der Eingabe der “Input Control Details” ist der Type Single Select Query zu wählen. Anschließend kann entweder eine globale Query aus dem Repository oder eine lokale (unser Beispiel) verwendet werden. In unserem Fall ist der Wert zur Anzeige auch der Wert zur Übergabe. Wenn z.B. Namen ausgewählt, aber Personalnummern übergeben werden sollen, sind mind. zwei Columns zu selektieren.

Das Statement zur Ermittlung der verfügbaren Hostgruppen lautet:

select alias from nagios_hostgroups where instance_id = 1

post11_screen5post11_screen3post11_screen4Als Datasource übernehmen wir auch hier wieder die lokale Definition. Anschließend muss wie bereits angedeutet noch das Value und Visible Column hinterlegt werden und die Anlage des Parameters bestätigt werden. Nach Zuordnung des Parameters zum aktiven Report, kann dieser dann auch im Webinterface ausgewählt werden.

Der entsprechende Report findet sich natürlich auch wieder bei netways.org und unserem Demo-System.

Im nächsten Post steigen wir in das Thema Host-Availability ein.

Bernd Erk

Autor: Bernd Erk

Bernd ist einer der Geschäftsführer der NETWAYS Gruppe und verantwortet das Tagesgeschäft. Da er in einem früheren Leben mit Java und Oracle Datenbanken gearbeitet hat, kümmert er sich immer noch gerne um das Thema Reporting - sowohl bei NETWAYS, als auch im Icinga Team. In seiner knappen Freizeit streitet er sich mit seinem Sohn, wer das iPad gerade benutzen darf und widmet sich der Weiterverbreitung der gehobenen fränkischen Schaschlik-Kultur.

Jasper Reporting – Eine Einführung

This entry is part 1 of 15 in the series Jasper Reporting

Jasper-Reporting

Reporting & Business Intelligence – Ein ungeliebtes Thema?

Gerade der zweite Begriff erklärt schon recht gut, wo eigentlich die Wurzeln dieser Technologien liegen. Natürlich im Business Feld, denn noch vor einigen Jahen wurden mit den entsprechenden Tools hauptsächlich betriebswirtschaftliche Zahlen analysiert und ausgewertet. Also beispielsweise Vertriebszahlen, Umsätze oder Daten aus dem Produktionsbereich. Doch in letzter Zeit sind diese Tools und Werkzeuge auch immer mehr in den IT Bereich eingedrungen. Kein Wunder, denn SLAs, Verfügbarkeitsreports und andere Statistiken, werden ziemlich ähnlich aufbereitet und errechnet.

So haben auch wir uns in den letzten Jahren immer mehr mit dem Thema Reporting beschäftigt. Zuerst natürlich in den Monitoring Projekten: Wo es früher vielleicht noch ausreichend war, einzelne Fachabteilungen hin- und wieder mit einem manuell erstellten Excel Report zu besänftigen, wird heute meistens mehr erwartet. Selbst die internen Kunden einer IT Abteilung wollen heute genau wissen, welche Leistungen erbracht wurden, wie die Hardware ausgelastet war und welche Verfügbarkeiten in der Praxis erreicht wurden. Das lässt sich nur noch sehr schwer manuell ad hoc erstellen. Aber auch unsere Managed Services Kunden wollen immer besser und aktueller informiert werden und bekommen inzwischen von uns jeden Monat eine komplette Übersicht aller Aktivitäten, wie beispielsweise Tickets, Traffic, Domains oder Auslastungswerte.

Schön, dass parallel dazu in den letzten Jahren auch immer mehr Open Source Lösungen, wie Pentaho, Eclipse Birt und Jasper zum Thema Reporting auf den Markt gekommen sind. Einige Möglichkeiten, die diese Programme nun bieten haben wir zum einen schon im letzten Jahr auf unserer Open Source Monitoring Conference und dann auch wieder auf dem Nagios Workshop in Kassel vorgestellt und nun möchten wir unseren Lesern hier im Blog einen Einblick in dieses Thema ermöglichen und einige konkrete Einsatzszenarien auf Basis von Jasper Reporting aufzeigen.

Von der Installation der Serverkomponenten, über die Erzeugung von Reports mit dynamischer Parametrisierung und Darstellung von Informationen in Diagrammen bis hin zur automatischen Versendung der erstellten Reports, soll die Serie Hilfestellung geben und den Einstieg erleichtern. Geplante Themen sind:

  • Installation des Servers
  • Verwendung von iReport
  • Einfach Reports und Design-Tips
  • Statische und dynamische Parameter
  • Gruppierung von Daten
  • Verwendung von Diagramme
  • Anzeige von aktuellen Nagios-Daten
  • SLA-Reporting
  • Automatische Versendung
  • uvm.

Besonders Neugierige können auf unsere Website schon vorab Informationen finden und unter jasper.demo.netways.de einen Blick auf das Demo-System werfen. Wenn Sie keinen Teil dieser Serie verpassen wollen, empfehlen wie Ihnen unseren RSS Feed zu abonnieren oder uns via Twitter zu folgen.

Bernd Erk

Autor: Bernd Erk

Bernd ist einer der Geschäftsführer der NETWAYS Gruppe und verantwortet das Tagesgeschäft. Da er in einem früheren Leben mit Java und Oracle Datenbanken gearbeitet hat, kümmert er sich immer noch gerne um das Thema Reporting - sowohl bei NETWAYS, als auch im Icinga Team. In seiner knappen Freizeit streitet er sich mit seinem Sohn, wer das iPad gerade benutzen darf und widmet sich der Weiterverbreitung der gehobenen fränkischen Schaschlik-Kultur.

Jasper Reporting – Host Availability

This entry is part 2 of 15 in the series Jasper Reporting

Jasper-ReportingBisher haben wir uns lediglich den Konfigurationsdaten und dem aktuellen Status der Systeme gewidmet, aber wirklich spannend ist bei der Erstellung ja der Blick in die Vergangenheit und im Idealfall dann noch der Überblick über einen bestimmten Zeitraum.

Da die Verfügbarkeitsreports innerhalb von Nagios auf Filebasis erfolgen, müssen die Einträge in der Datenbank erst aufbereitet werden, vorausgesetzt man möchte sich nicht selbst darum kümmern.

Um eine Durchschnittsaussage über einen größeren Zeitraum durchzuführen, müssen die einzelnen Statuswechsel und die Zeiträume dazwischen analysiert und summiert werden. Das ganze kann mit Hilfe unseres Packages netMySLA erfolgen, dass genau diese Informationen in einem nächtlichen Batch ermittelt und in entsprechenden Aggregatstabellen speichert. Nach Installation dieses Packages kann unsere Abfrage wie folgt erweitert werden:

select c.alias,
  a.host_object_id,
  a.display_name,
  a.address,
  e.sla_availability_percent,
  e.sla_outage_percent,
  e.sla_period_identifier,
  d.current_state
from nagios_hosts a,
  nagios_hostgroup_members b,
  nagios_hostgroups c,
  nagios_hoststatus d,
  np_aggregate_sla e
where a.host_object_id = b.host_object_id
and b.hostgroup_id     = c.hostgroup_id
and a.host_object_id   = d.host_object_id
and a.host_object_id   = e.sla_host_objectid
and a.instance_id      = 1
and b.instance_id      = 1
and c.instance_id      = 1
and d.instance_id      = 1
and e.sla_service_name is null
and e.sla_period_name = 'month'
and e.sla_period_identifier > '2009-06-01'

Das Datum ist hier fälschlicherweise fest Codiert und muss in Realität entweder parametrisiert oder via Datums-Parameter gefüllt werden. Mit diesem Statement bekommen wir anschließend sowohl den aktuellen Status als auch den prozentualen Anteil der Verfügbarkeit in dem angegebenen Monatszeitraum.

post12_screen1Da die Darstellung unter Verwendung eines Kuchendiagramms erfolgen soll, ist dieses über die Palette in den Detailbereich des Reports einzufügen.

Die Datenübergabe an das Diagramm erfolgt wie in den vorhergehenden Beispielen mittels Kontextmenü. Wichtig ist, dass das Kuchendiagramm mit zwei Serien bestückt wird.

Serie Availability:
Key expression: “Availability”
Value expression:

$F{sla_availability_percent}

Serie Outage:
Key expression: “Outage”
Value expression:

$F{sla_outage_percent}

post12_screen2Wenn das Diagramm korrekt im Detailbereich platziert worden ist, wird die entsprechende Verfügbarkeit nun pro definiertem Service dargestellt. Um bei der Anzeige mit Ausfallkandidaten zu beginnen, genügt es dem Statement noch ein “order by e.sla_outage_percent” anzuhängen.

Hier kann der erstellte Beispielbericht wie gewohnt geladen werden. Die Vorlage gibt es bei netways.org und auf unserem Demo-System.

Der nächste Teil der Serie ergänzt das Thema Verfügbarkeit noch mit der Integration des Business Process Addons for Nagios.

Bernd Erk

Autor: Bernd Erk

Bernd ist einer der Geschäftsführer der NETWAYS Gruppe und verantwortet das Tagesgeschäft. Da er in einem früheren Leben mit Java und Oracle Datenbanken gearbeitet hat, kümmert er sich immer noch gerne um das Thema Reporting - sowohl bei NETWAYS, als auch im Icinga Team. In seiner knappen Freizeit streitet er sich mit seinem Sohn, wer das iPad gerade benutzen darf und widmet sich der Weiterverbreitung der gehobenen fränkischen Schaschlik-Kultur.

Jasper Reporting – Die Installation

This entry is part 2 of 15 in the series Jasper Reporting

Jasper-ReportingDie Installation des JasperServers, also der Serverkomponente für die Erzeugung und den automatischen Versand der Berichte, ist durch die verfügbare Linux-Installation ein Kinderspiel. Zwar sind die Komponenten auch ohne Tomcat und MySQL paketiert auf JasperForge.org verfügbar, jedoch empfiehlt sich für den Einstieg der Download des Linux-Installers.

Leicht gekürzt erfolgt die Installation des Installers in etwa so:

chmod +x jasperserver-3.5.0-linux-installer.bin
./jasperserver-3.5.0-linux-installer.bin

Auswahl des Installationsverzeichnisses:

Please specify the directory where JasperServer 3.5.0 will be installed.

Installation directory: [/opt/jasperserver-3.5.0]:

Integration in einen bestehenden Tomcat-Server:

[1] I wish to use the bundled Tomcat
[2] I wish to use an existing Tomcat

Please choose an option [1] :

Verwendung einer vorhandenen Datenbank:

[1] I wish to use the bundled MySQL database
[2] I wish to use an existing MySQL database

Please choose an option [1] :

Nach Angabe der Ports für Tomcat können Optional noch die Demo-Schemas und Reports installiert werden. Das empfilet sich insbesonderen aller Jasper Neulingen, da dadurch ein guter Überblick über die vorhandenen Features gegeben wird. Die Installation von iReports empfiehlt sich nur, wenn der entsprechender Server z.B. auch die Linux-Workstation ist. Allen anderen sollten sich iReport lokal auf ihrer Workstation installieren und später die Reports durch den Wizard auf den Server deployen.

Sobald die Installation beendet ist, ist der Server unter folgender URL erreichbar und die Demo-Reports stehen zur Verfügung.

http://servername:8080/jasperserver/login.html

Um den Zugriff auf den Server zu erleichtern, ist auch die Anbindung via Apache und Einsatz der Module mod_proxy und mod_rewrite möglich. Hier ein Beispiell:

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

RewriteEngine on
RedirectMatch ^/$ http://servername/jasperserver

ProxyPass /jasperserver http://servername:8080/jasperserver
ProxyPassReverse /jasperserver http://servername:8080/jasperserver

Der nächste Post widmet sich der Installation von iReport und der Erstellung eines Demoberichts.

Bernd Erk

Autor: Bernd Erk

Bernd ist einer der Geschäftsführer der NETWAYS Gruppe und verantwortet das Tagesgeschäft. Da er in einem früheren Leben mit Java und Oracle Datenbanken gearbeitet hat, kümmert er sich immer noch gerne um das Thema Reporting - sowohl bei NETWAYS, als auch im Icinga Team. In seiner knappen Freizeit streitet er sich mit seinem Sohn, wer das iPad gerade benutzen darf und widmet sich der Weiterverbreitung der gehobenen fränkischen Schaschlik-Kultur.

Jasper Reporting – Business Process Reporting

This entry is part 3 of 15 in the series Jasper Reporting

Jasper-ReportingUnterschiedliche Nutzer haben unterschiedliche Anforderungen an ein Überwachungssystem und damit auch an die Reports: Während für die Gruppe der Administratoren oder Applikationsbetreuer bereits der Ausfall eines redundanten Netzteils relevant sein kann, ist dies für den Nutzer eines Services ohne Bedeutung – zumindest solange der Dienst weiterläuft.

post13_screen1Komplexer wird die Aufgabenstellung, wenn mehrere Server und Komponenten an dem Gesamtprozess beteiligt sind und nur das korrekte Zusammenspiel, aber vielleicht auch nur der Ausfall mehrerer Komponenten einen Einfluss auf die Serviceverfügbarkeit hat. Hier stellt sich dem Betreuer der System Management Lösung die Aufgabenstellung, entsprechende Prozessdefinitionen einzuholen oder gar selbst zu definieren und diese in eine technische Lösung umzusetzen. Ohne Definition eines Services kann kein Geschäftsprozessmonitoring und somit auch ein nachgelagertes Reporting erfolgen!

Zur Umsetzung dieser Definitionen kann für Nagios oder Icinga das Business Process Addon verwendet werden. Es aggregiert die Zustände verschiedener Host & Services und verknüpft deren Zustand nach definierbaren Regeln. So auch kann auch in komplexen Systemen die Verfügbarkeit eines Services überwacht werden. Da die ermittelten Gesamtwerte wieder als Services eines virtuellen Hosts in die Datenbank gespeichert werden können, lassen sich sich dann auch wieder im Rahmen von Reports auswerten.

Auf unserem Demo-System schränken wir hierfür die Auswahl auf die Service-Objekte des Business Process Hosts ein.

select a.service_object_id,
  a.display_name,
  c.sla_created,
  c.sla_availability_percent,
  c.sla_outage_percent,
  c.sla_period_identifier,
  b.current_state
from nagios_services a,
  nagios_servicestatus b,
  np_aggregate_sla c,
  nagios_hosts d
where a.service_object_id      = b.service_object_id
and a.service_object_id     = c.sla_service_objectid
and a.host_object_id        = d.host_object_id
and a.instance_id           = 1
and b.instance_id           = 1
and c.sla_period_name       = 'month'
and c.sla_period_identifier > '2009-01-01'
and c.sla_period_identifier < '2009-03-01'
and d.display_name = 'business_processes'

Nach Update des Reports auf dem Server, werden die Verfügbarkeiten der Geschäftsprozesse angezeigt und können mit zusätzlichen Filtern für Start- und Endedatum sowie der gewünschten Auswertungsperiode versehen auch in komplexeren Berichten weiterverarbeitet werden.

Hier kann der erstellte Report eingesehen oder die Vorlage bei netways.org heruntergeladen werden.

Der nächste und letzte Teil dieser Serie widmet sich der automatischen Erstellung und Versendung von Reports mit Hilfe des JasperServers.

Bernd Erk

Autor: Bernd Erk

Bernd ist einer der Geschäftsführer der NETWAYS Gruppe und verantwortet das Tagesgeschäft. Da er in einem früheren Leben mit Java und Oracle Datenbanken gearbeitet hat, kümmert er sich immer noch gerne um das Thema Reporting - sowohl bei NETWAYS, als auch im Icinga Team. In seiner knappen Freizeit streitet er sich mit seinem Sohn, wer das iPad gerade benutzen darf und widmet sich der Weiterverbreitung der gehobenen fränkischen Schaschlik-Kultur.