Gnocchi: Metriken und Metadaten

Gnocchi LogoGnocchi kann im Vergleich zu anderen Timeseries Datenbanken auch Metadaten zu einzelnen Ressourcen hinzufügen. Somit kann man Metriken einfach mit Informationen versehen die wiederum für so spannende Dinge wie Accounting und Reporting verwendet werden können. Eine konkrete Metrik, z.B. der aktuelle Speicherverbrauch eines Servers, wird in Gnocchi immer zu einer Ressource (z.B. mein-db-server1) gespeichert. Eine Ressource hat einen Typ, z.B. Server. Der Typ Server gibt die Attribute/Metadaten vor, welche zu meiner Ressource mein-db-server1 gespeichert werden können.
Also nochmal in kurz: Eine Metrik gehört zu einer Ressource. Eine Ressource hat einen Typ. Ein Typ hat Metadaten.
Ein neuer Ressourcetyp, z.B. Server,  mit den Attributen Name und Kundenummer ist mit folgenden HTTP Post an den Endpunkt /v1/resource_type schnell erstellt:

{
  "Name": "Server",
  "attributes": {
    "name": {
    "required": true,
    "type": "string"
  },
  "Kundennummer": {
    "max": 8,
    "min": 8,
    "type": "number",
    "required": true
  }
}

Um nun eine konkrete Ressource mein-db-server1 anzulegen, sendet man unten stehendes Json an den Endpunkt /v1/resource/server:

{
"Kundennummer": "12345678",
"Name": "mein-db-server1"
}

Zu der neuen Ressource kann man beliebige Metriken (z.B. CPU, Memory, Traffic etc.) hinzufügen und natürlich lassen sich auch die Filter der Suche auf die Kundennummer anpassen. Folgender HTTP Post an /v1/search/resource/server findet alle meine Server wieder:

{
  "=": {
    "Kundennummer": "12345678"
  }
}

Gnocchi gibt einem alles an die Hand um die eigenen Metriken mit Metadaten zu versorgen. Damit ist es ein Leichtes seine Reporting und Accounting Tools mit Daten zu befüllen, wie z.B. unser Cost Explorer.

Achim Ledermüller
Achim Ledermüller
Lead Senior Systems Engineer

Der Exil Regensburger kam 2012 zu NETWAYS, nachdem er dort sein Wirtschaftsinformatik Studium beendet hatte. In der Managed Services Abteilung ist unter anderem für die Automatisierung des RZ-Betriebs und der Evaluierung und Einführung neuer Technologien zuständig.

Graphite Reporting mit der Render-API

Vor kurzem durfte ich mich damit beschäftigen, wie man schnell und halbwegs vernünftig eine Art Reporting für Performance-Daten für Icinga 2 umsetzen kann. Um solche Daten entsprechend aufzubereiten bedarf es weiterer Open-Source-Software. Meiner Meinung nach eignet sich Graphite hierzu am besten. Ich möchte heute einen kurzen Einblick in die Möglichkeiten geben.
Graphite ist ein Werkzeug, welches aus drei Komponenten besteht: Carbon-Cache als Datensammler, Whisper als Storage-Backend und Graphite-Web um die Graphen visuell und als API bereitzustellen. Icinga 2 schreibt die Performance-Daten mit dem “graphite”-Feature direkt an den Carbon-Cache-TCP-Socket. Welche Möglichkeiten habe ich als Anwender nun, diese historischen Daten für meine Zwecke in Reporting zu verwenden?
Eigentlich ganz einfach: Graphite liefert eine eigene Render-API. Diese bietet die Möglichkeit, die Daten als Graph, csv , json, pdf und einige weitere Formate zu generieren. Der Anwender kann diese Daten als REST-API Aufruf im Browser oder beispielsweise curl in der Shell abholen. Dabei können verschieden Metriken und Aggregationen auf Graphen angewandt und unterschiedliche Werte gebündelt abgerufen werden.
 

Wie fange ich an?

Generell wird die URL wie folgt aufgebaut:
http://grtaphite.ip/render?target=icinga2..services.*.*.perfdata.*.value
Im gezeigten Beispiel kann man für die “target”-Metriken auch Wildcards verwenden, um etwa mehrere Services gleichzeitig abzufragen. Dies entspricht dem Dateipfad im Whisper-Backend. Man kann allerdings auch Listen oder Arrays angeben, um gezielt bestimmte Werte abzufragen.
Es gibt unterschiedliche Möglichkeiten, die Daten für die entsprechenden Ausgaben weiterzuverarbeiten. Die wohl wichtigsten sind &from für die Zeit und &format für die Formatierung der Daten.
 

Metrik “Baum”

Um die Werte für die CPU-Load abzufragen, muss der entsprechende Service in Icinga 2 definiert sein und Performance-Daten nach Graphite schreiben. Im Screenshot sieht man im Baum “services” – “load”, letzterer stellt den Service-Namen dar. Der Sub-Knoten “load” liefert die Information, dass hier das “load” CheckCommand verwendet wurde. Tip an dieser Stelle: Lässt sich etwa für Dashboard-Templates als eindeutiger Schlüssel verwenden in Grafana.

Performance-Daten liefern zum einen “perfdata”, worin einzelne Metriken mit ihrem Namen abgelegt werden, etwa “load1” und darunter “value” als Wert und Thresholds, etwa “crit” und “warn”, sofern definiert. Zusätzlich können auch Metadaten von Icinga 2 geschrieben werden, die man aber explizit in der Konfiguration einschalten muss (“metadata”).
 

Einzelne Metrik abfragen

Im folgenden interessiert uns aber lediglich der Wert der Metrik “load1” als einzelner Wert. Um eine ordentliche Ausgangsbasis zu erhalten, wählen wir den Zeitraum der letzten 3 Stunden. Tip: Es sind relative und absolute Zeitangaben möglich.
http://192.168.100.101/render?target=icinga2.icinga3op_foreman_local.services.load.load.perfdata.load1.value&height=800&width=600&from=-3hours

 

Mehrere Metriken zusammenfassen

Man kann diese Abfrage auch erweitern, indem man mehrere Werte gleichzeitig abfrägt:
http://192.168.100.101/render?target=icinga2.icinga3op_foreman_local.services.load.load.perfdata.{load1,load15,load5}.value&height=800&width=600&from=-3hours

 

Mehrere Hosts mit der gleichen Metrik abfragen

Eine Abfrage mit verschiedenen Servern für “load15” als Metrik könnte so aussehen:
http://192.168.100.101/render?target=icinga2.icinga*op_foreman_local.services.load.load.perfdata.load15.value&height=800&width=600&from=-3hours

Formatierung

Die Darstellung der Daten setzt immer eine &height und eine &width als Parameter voraus. Es ist auch möglich hier Tortendiagramme mit verschiedenen Funktionen für Mittelwerte und Summen aufzurufen.
Man kann die erhaltenen Daten auch als CSV-Werte formatieren und dann beispielsweise mit curl abspeichern. Alternativ kann man sich diese Werte auch direkt im Browser anzeigen lassen.

[root@icinga1op ~]# curl 'http://192.168.100.101/render/?target=icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value&from=-3hours&format=csv'
icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value,2017-06-16 06:30:00,0.24
icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value,2017-06-16 06:31:00,0.21
icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value,2017-06-16 06:32:00,0.17
icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value,2017-06-16 06:33:00,0.15
icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value,2017-06-16 06:34:00,0.16
icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value,2017-06-16 06:35:00,0.13
icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value,2017-06-16 06:36:00,0.12
....

Wie bereits erwähnt lassen sich die Daten auch im JSON-Format anzeigen. Dies kann wieder über den Browser oder mittels curl erfolgen.
Das folgende Beispiel rendert alle erhaltenen Datenpunkte als JSON-Format:

[root@icinga1op ~]# curl 'http://192.168.100.101/render/?target=icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value&from=-3hours&format=json'
[{"target": "icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value", "datapoints": [[0.13, 1497595140], [0.11, 1497595200], [0.15, 1497595260], [0.13, 1497595320], [0.1, 1497595380], [0.08, 1497595440], [0.07, 1497595500], [0.06, 1497595560], [0.06, 1497595620], [0.05, 1497595680], [0.04, 1497595740], [0.07, 1497595800], [0.05, 1497595860], [0.04, 1497595920], [0.05, 1497595980], [0.04, 1497596040], [0.08, 1497596100], [0.06, 1497596160], [0.07, 1497596220], [0.06, 1497596280], [0.06, 1497596340], [0.05, 1497596400], [0.04, 1497596460], [0.04, 1497596520], [0.03, 1497596580], [0.05, 1497596640], [0.04, 1497596700], [0.05, 1497596760], [0.04, 1497596820], [0.09, 1497596880], [0.07, 1497596940], [0.06, 1497597000], [0.06, 1497597060], [0.05, 1497597120], [0.04, 1497597180], [0.04, 1497597240], [0.03, 1497597300], [0.02, 1497597360], [0.02, 1497597420], [0.01, 1497597480], [0.01, 1497597540], [0.01, 1497597600], [0.01, 1497597660], [0.01, 1497597720], [0.01, 1497597780], [0.07, 1497597840], [0.06, 1497597900], [0.07, 1497597960], [0.08, 1497598020], [0.07, 1497598080], [0.06, 1497598140], [0.04, 1497598200], [0.04, 1497598260], [0.03, 1497598320], [0.14, 1497598380], [0.14, 1497598440], [0.13, 1497598500], [0.12, 1497598560], [0.1, 1497598620], [0.09, 1497598680], [0.09, 1497598740], [0.07, 1497598800], [0.06, 1497598860], [0.07, 1497598920], [0.1, 1497598980], [0.1, 1497599040], [0.08, 1497599100], [0.06, 1497599160], [0.05, 1497599220], [0.04, 1497599280], [0.04, 1497599340], [0.03, 1497599400], [0.02, 1497599460], [0.05, 1497599520], [0.04, 1497599580], [0.03, 1497599640], [0.03, 1497599700], [0.04, 1497599760], [0.05, 1497599820], [0.04, 1497599880], [0.04, 1497599940], [0.04, 1497600000], [0.04, 1497600060], [0.03, 1497600120], [0.03, 1497600180], [0.02, 1497600240], [0.01, 1497600300], [0.01, 1497600360], [0.01, 1497600420], [0.04, 1497600480], [0.04, 1497600540], [0.03, 1497600600], [0.03, 1497600660], [0.02, 1497600720], [0.04, 1497600780], [0.04, 1497600840], [0.03, 1497600900], [0.03, 1497600960], [0.02, 1497601020], [0.01, 1497601080], [0.01, 1497601140], [0.01, 1497601200], [0.01, 1497601260], [0.01, 1497601320], [0.01, 1497601380], [0.01, 1497601440], [0.01, 1497601500], [0.01, 1497601560], [0.01, 1497601620], [0.63, 1497601680], [1.29, 1497601740], [1.87, 1497601800], [2.4, 1497601860], [2.74, 1497601920], [2.36, 1497601980], [1.93, 1497602040], [1.58, 1497602100], [1.29, 1497602160], [1.7, 1497602220], [2.26, 1497602280], [2.77, 1497602340], [3.1, 1497602400], [3.37, 1497602460], [3.09, 1497602520], [2.56, 1497602580], [2.09, 1497602640], [1.71, 1497602700], [1.4, 1497602760], [1.16, 1497602820], [0.95, 1497602880], [0.78, 1497602940], [0.63, 1497603000], [0.52, 1497603060], [0.42, 1497603120], [0.35, 1497603180], [0.28, 1497603240], [0.23, 1497603300], [0.19, 1497603360], [0.16, 1497603420], [0.13, 1497603480], [0.12, 1497603540], [0.1, 1497603600], [0.08, 1497603660], [0.07, 1497603720], [0.05, 1497603780], [0.07, 1497603840], [0.06, 1497603900], [0.05, 1497603960], [0.04, 1497604020], [0.03, 1497604080], [0.03, 1497604140], [0.02, 1497604200], [0.02, 1497604260], [0.01, 1497604320], [0.01, 1497604380], [0.01, 1497604440], [0.01, 1497604500], [0.01, 1497604560], [0.01, 1497604620], [0.01, 1497604680], [0.01, 1497604740], [0.01, 1497604800], [0.01, 1497604860], [0.04, 1497604920], [0.05, 1497604980], [0.06, 1497605040], [0.08, 1497605100], [0.06, 1497605160], [0.07, 1497605220], [0.06, 1497605280], [0.04, 1497605340], [0.05, 1497605400], [0.04, 1497605460], [0.03, 1497605520], [0.03, 1497605580], [0.02, 1497605640], [0.02, 1497605700], [0.01, 1497605760], [0.01, 149760

Um die Daten leserlich in der Konsole aufzubereiten, empfiehlt es sich “python -m json.tool” als Formatierungshilfe zu verwenden.

curl 'http://192.168.100.101/render/?target=icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value&from=-3hours&format=json' | python -m json.tool

Um die JSON-Daten in der Console zu visualisieren kann man Zach Holman’s Spark verwenden:

[root@graphite ~]# curl 'http://192.168.100.101/render/?target=icinga2.icinga3op_foreman_local.services.load.load.perfdata.load5.value&from=-3hours&format=json' | python -mjson.tool | grep ',' | grep -v '\]' | spark
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3695 0 3695 0 0 230k 0 --:--:-- --:--:-- --:--:-- 240k
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▃▅▅▅▃▃▃▃▅▅███▅▅▃▃▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁


 

Conclusio

Das war nur ein kleiner und rudimentärer Überblick was über die Render-API möglich ist. Jedoch bietet sie genügend Anregung um mehr mit Graphite, Icinga 2 und Metriken zu machen. Die Render-APi bietet zudem die Möglichkeit, programmatisch in Scripts darauf zuzugreifen. Mir hat es zumindest Lust auf mehr gemacht und ich denke, dass ich noch weitere Blogposts zu diesem Thema schreiben werde 🙂
Falls ihr nicht warten könnt, hier nochmal der Link zur Doku. Oder ihr schaut einfach mal bei uns in der Graphite-Schulung vorbei und lernt die Render-API am praktischen Beispiel kennen.

Daniel Neuberger
Daniel Neuberger
Senior Consultant

Nach seiner Ausbildung zum Fachinformatiker für Systemintegration und Tätigkeit als Systemadministrator kam er 2012 zum Consulting. Nach nun mehr als 4 Jahren Linux und Open Source Backup Consulting zieht es ihn in die Welt des Monitorings und System Management. Seit April 2017 verstärkt er das Netways Professional Services Team im Consulting rund um die Themen Elastic, Icinga und Bareos. Wenn er gerade mal nicht um anderen zu Helfen durch die Welt tingelt geht er seiner...

Neues vom Reporting

Jaspersoft Studio
Lange Zeit war iReport die führende Lösung, wenn es daran ging Reportingaufgaben für Icinga im speziellen und im Allgemeinen zu übernehmen. Dieses Kapitel wird allerdings im kommenden Monat geschlossen, da iReport  ab Ende Dezember nicht mehr aktiv weiterentwickelt wird. Das bedeutet zwar nicht, dass iReport sofort verschwindet, aber mehr als ein paar Bugfixes für bestehende Probleme wird es nicht mehr geben.
Eine gute Gelegenheit also, sich mal das nächste Tool zum erstellen und managen von Reports anzuschauen.
Der designierte Nachfolger von iReport nennt sich Jaspersoft Studio und weist ein paar unterschiede zu iReport auf.
Während iReport auf der IDE Netbeans basierte, basiert Studio auf Eclipse. Beide Programme kann man zwar als Bundle herunterladen, es lohnt sich aber gerade bei Eclipse sich die Software über den integrierten Marketplace zu besorgen, weil man so eine neuere Version von Eclipse erhält.
Einige Verbesserungen von Studio sind der übersichtlichere SQL-Designer und eine bessere Integration von Bibliotheken und Subreports. Neuerdings muss man nur noch auf speichern klicken, und der einmal publizierte Report wandert in aktualisierter Form direkt wieder auf den JasperServer.
Und zum Schluss die wichtigste Verbesserung: Alle Buttons sind jetzt beschriftet und mit Quicktips erklärt!

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

NETWAYS startet mit 3 Webinaren in 2014!

Auch 2014 ist NETWAYS wieder aktiv mit Webinaren vertreten. Starten werden wir Mitte Februar 2014, um einen Vorgeschmack auf die CeBIT zu ermöglichen.
Aktuelle Themen sind:

Logstash Open Source Log-Management
20. Februar 2014 – 10:30 Uhr
Icinga Web 2 Icinga Web in neuem Design
25. Februar 2014 – 10:30 Uh
Icinga 2 Entwicklungsstand 2014
05. März 2014 – 10:30 Uhr

Logstash
Ziel der Webinare ist es, unter anderem das Thema Logstash weiter zu vertiefen. Hierbei handelt es sich um eine schlanke Open Source Lösung, welche es ermöglicht Logs von hunderten von Systemen zu erfassen und in einem Webfrontend mit wenigen Klicks auszuwerten. Die Skalierbarkeit spielt hierbei ebenfalls eine entscheidende Rolle, da durch die schlanke Architektur das Setup auf mehrere Komponenten aufgeteilt werden kann.
Das Webinar hierzu findet am 20. Februar 2014 um 10:30 Uhr statt. Zur Registrierung.
Natürlich darf auch im neuen Jahr Icinga 2 nicht fehlen. Hierzu sind gleich zwei Webinare geplant.
Icinga Web 2
Zuerst wollen wir natürlich das neue und verbesserte Icinga Web 2 vorstellen, welches nicht nur in der Performance deutlich optimiert wurde, sondern auch ein komplett neues Design bekommt, um noch intuitiver zu werden. Weitere Infos gibt es auf unsere Webinarseite und während des Webinars.
Dieses findet am 25. Februar 2014 um 10:30 Uhr statt. Zur Registrierung.
Icinga 2
Als letzten Punkt wollen wir vor der CeBIT noch den aktuellen Entwicklungsstand zu Icinga 2 zeigen und auf alle bisher eingebauten Änderungen eingehen. Anhand einer Demo veranschaulichen wir dann die Unterschiede zu Nagios / Icinga und die Neuheiten von Icinga 2. Zum Schluss gibt es dann noch einen Ausblick auf den nächsten Milestone mit Version 0.0.8.
Das Webinar findet am 05. März 2014 um 10:30 Uhr statt. Zur Registrierung.
Wer unsere bisherigen Webinare verpasst hat, hat die Chance sich über unseren YouTube-Channel alle Webinar-Videos anzusehen. Eine detaillierte Übersicht findet sich inklusive der Slides in unserem Webinar-Archiv.
Wir freuen uns wieder auf eine rege Teilnahme!
Übrigens: Wer eine persönliche Beratung wünscht, kann gerne mit uns Kontakt aufnehmen.
Cebit BlogAlternantiv bietet sich natürlich auch ein Besuch auf unserem CeBIT Stand an. Vertreten sind wir, wie jedes Jahr, im Open Source Park. Diesmal in Halle 6, an Stand E16 (310). Um uns schneller zu finden, gibt es natürlich auch eine Wegbeschreibung.

Christian Stein
Christian Stein
Lead Senior Account Manager

Christian kommt ursprünglich aus der Personalberatungsbranche, wo er aber schon immer auf den IT Bereich spezialisiert war. Bei NETWAYS arbeitet er als Senior Sales Engineer und berät unsere Kunden in der vertrieblichen Phase rund um das Thema Monitoring. Gemeinsam mit Georg hat er sich Mitte 2012 auch an unserem Hardware-Shop "vergangen".

Weekly Snap: AwStats Reporting, Perl for Programming & CSS Frameworks

26 – 30 December bid 2011 farewell with handy tools for reporting and programming.
Ronny took a look at report generation with AwStats. The well known tool can generate static PDF reports when combined with htmldoc. From classic log files such as web, ftp or mail servers to network traffic. All that AwStats needs is a log file like source from which it can process according to parameters given in its configuration. Corporate branding of reports with images, styles and HTML links is of course also possible.
Following on, Christoph glorified Perl as his language of choice in writing monitoring plugins. Nagios and Icinga offer complete freedom in this regard, so operating system portability plays a more important role. Java, Python and Perl win points here, especially when interpreters are available. Nonetheless Christoph’s preference is Perl thanks to the flexibility CPAN provides. Language aside, the Nagios development guidelines are important to abide by, and modules for Perl such as Nagios::Plugin::Threshold or Nagios::Plugin::Range are particularly useful. For database interfaces, he recommended DBD::Sybase, DBD::mysql and Win32::OLE.
Continuing with the programming thread, Marius signed off by sharing the Swiss Army knives of CSS. In creating web designs what work with all browsers, he recommended various CSS frameworks. Reset CSS from both Eric Meyer or YUI allow developers to “reset” the pre-defined formatting of a browser for a fresh start, and BluePrint goes a step further to offer help in structural design, typography and columns. From there, he picked out  960 Grid System for tables, sketchbooks and templates for use with Inkscape, Gimp, Illustrator or even Photoshop. Finally, for a complete all-in-one solution Marius recommended HTML5 Boilerplate.

Reportgenerierung mittels AwStats

AwStats wird ja den meisten Leuten ein Begriff sein, daher werde ich im einzelnen nicht direkt auf das Tool eingehen, sondern nur die Funktion beschreiben, mit der sich statische PDF-Reports generieren lassen. Diese Möglichkeit gibt es ja nun schon seit einigen Versionen und ist mit der Zeit gereift. Damit sie umgesetzt werden kann, benötigt man neben dem AwStats nur noch das Tool htmldoc, um die Statistik-Seiten auszuwerten und als PDF exportieren zu können.
Ist beides gegeben, kann man hiermit recht schlicht und einfach Reports für interne oder externe Zwecke erstellen. Die Nutzung der Auswertung ist hier sehr vielseitig, sie geht von den klassischen Logfiles wie Web-,FTP- oder Mailserver bis hin zu reinem Netzwerktraffic wie z.B. Nameserveranfragen. Man benötigt nur ein Art ‘Logfile’ welche das AwStats nach gewissen Vorgaben auswerten kann. Für die Verarbeitung kann die Dokumentation in der AwStats Konfiguration selbst hergenommen werden oder man erkundigt sich nach evtl. schon fertigen Parsern im Internet.
Der nötige Feinschliff für externe Repots (z.B. an Kunden) kann mittels Optionen für Corporate Identity geschaffen werden. Damit lassen sich die Bilder und Styles bearbeiten und man kann auch zus. HTML Inhalte vor der PDF Generierung in die Seiten einpflegen.

Jasper Reporting im Technical Review

jasper_reporting
Vor einigen Tagen ist im Linux Technical Review ein Artikel zum Thema Jasper Reporting von mir erschienen. In dem Artikel geht es um den allgemeinen Aufbau des Reporting-Frameworks, sowie Tipps & Tricks rund um iReport und Auswahl der verwendeten Daten. Ich freu mich, dass es nach langer Zeit mal wieder geklappt hat einen Artikel zu vervollständigen und arbeite schon am nächsten.
Alle Interessierten sei die Online-Ausgabe des Technical Review als Quelle für detailreiche Berichte und Artikel wärmstens empfohlen.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startet er das wöchentliche Lexware-Backup und investiert seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinem Sohn.

Jasper Reporting – Die Installation

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
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startet er das wöchentliche Lexware-Backup und investiert seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinem Sohn.

Jasper Reporting – Eine Einführung

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
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startet er das wöchentliche Lexware-Backup und investiert seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinem Sohn.