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