Icinga Availability ReportGute Neuigkeiten habe ich heute für Freunde von SLA Reports. Und natürlich auch für all jene, die die Anforderungen derjeniger ausbaden dürfen, die ebensolche Reports haben wollen. Ein neues Reporting-Package für Icinga ist auf dem Weg und steht unter dem Feature-Request #2972 “Proposal – new SLA reporting strategy” bereits in einer kleinen Vorschau zum Testen bereit.
Kern des Ganzen ist eine neue Funktion für die Datenbank, welche versucht die Komplexität des Themas vor den SQL-Abfragen die uns eigentlich interessieren zu verbergen. Um die Funktionsweise des Ganzen zu veranschaulichen, klaue ich am Besten meine Beispiel-Abfrage aus dem Feature-Request:

SELECT
  name1 AS host,
  COALESCE(name2, 'Host availability') AS service,
  icinga_availability(object_id, '2012-01-01 00:00:00', NOW()) AS sla
 FROM icinga_objects
WHERE is_active = 1
  AND objecttype_id IN (1, 2)
ORDER BY host, objecttype_id, service;

Das Ergebnis dieser einfachen Abfrage kann dann wie folgt aussehen:

host service sla
c1-db1 Host availability 91.5496
c1-db1 MySQL 91.5700
c1-db1 PING 91.5696
c1-db2 Host availability 91.5569
c1-db2 MySQL 100.0000
c1-db2 PING 91.5689

Jeder hat so seine eigenen Vorstellungen, wie sein SLA-Reporting ticken soll. Manche wollen Filter auf Hostgruppen-Ebene, andere per CustomVariable – und wieder andere werfen lieber gleich ein paar eigene Tabellen mit in die Query.
Auch speziellere Abfragen sind nun möglich, so z.B. jene nach allen Services, deren Verfügbarkeit im Juli besser als im Juni war. Und noch viel, viel mehr! Berücksichtigt werden jetzt auch Downtimes – was wunderbare Möglichkeiten zum nachträglichen “Feintunen” der SLA-Werte eröffnet.
Das Unterfangen war recht anspruchsvoll, und wurde durch kleinere Bugs in Icinga/IDO sowie älteren MySQL-Versionen nicht gerade erleichtert. Um möglichst viele Spezialfälle abdecken und korrekt behandeln zu können deshalb hier mein Appell: bitte runterladen und auf Herz und Nieren testen! Weiterführende Infos samt aller benötigten Komponenten finden sich im bereits erwähnten Icinga-Ticket.
Und jetzt viel Spaß damit – ich freue mich auf Feedback aller Art!

Thomas Gelf
Thomas Gelf
Principal Consultant

Der gebürtige Südtiroler Tom arbeitet als Principal Consultant für Systems Management bei NETWAYS und ist in der Regel immer auf Achse: Entweder vor Ort bei Kunden, als Trainer in unseren Schulungen oder privat beim Skifahren in seiner Heimatstadt Bozen. Neben Icinga und Nagios beschäftigt sich Tom vor allem mit Puppet.