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