f.zz.de
posts /

Icinga1 und custom bulk actions

Posted Tue Sep 26 16:16:48 2017 Florian Lohoff in

Icinga1 ist ja ein wenig in die Jahre gekommen und trotzdem gibt es noch reichlich installationen. Nicht nur wegen des elendigen mod_perl removals in icinga2.

Leider lässt sich in der Classicui wenig modifizieren weil der gesamte code/html aus C Programmen erzeugt wird. Hier hat man in der Vergangenheit auf templating verzichtet. Wenn man jetzt nicht Wild im C Code hacken will bleibt einem nicht viel andere über als einen Umweg zu gehen.

Dazu bietet es sich an einfach den mitgelieferten javascript code zu erweitern. Am einfachsten ist es skinnytip.js das bei einem aktuellen Debian unter /usr/share/icinga/htdocs/js/skinnytip.js liegt zu ergänzen.

Ein einfacher Hack um einen zusätzlichen Button zu bekommen wäre dieses:

$(document).ready(function() { $(".serviceTotalsCommands").append('<button id="mybutton" type="submit">Ack with RT</button>'); $("#mybutton").click(function() { $("#tableformservice").attr("action", "/cgi-bin/ackwithrt.cgi"); $("#tableformservice").submit(); e.preventDefault(); }); });

skinnytip.js wird schon im Body der Seite durch status.cgi geladen, dennoch verwenden wir jquerys ready Funktion um aufgerufen zu werden sobald die Seite vollständig ist, und fügen dann über dem Drop down der Actions noch einen Button ein. Sollte dieser geklickt werden wird die action url der Form geändert und submitted. Das ganze ist das ein POST und bekommt alle geklickten Services übermittelt.

Der bekommt dann als Parameter im POST:

hostservice: "pax.zz.de^Current+Load"
hostservice: "pax.zz.de^Current+user"

Hier sieht man das das erste der Hostname ist, getrennt durch eine Tilde ^ und den jeweiligen Service.

Damit kann man dann zum Beispiel eine Liste der Tickets anzeigen die zulest eröffnet worden sind, und diese Services damit Acknowledgen, bzw die damit Acknowledgten Services als comment ins Ticket packen. Alternativ kann man ein neues Ticket eröffnen. Nicht selten ist der Workflow ja das nachträglich Events auftreten die zu einem vorherigen Ticket gehören. Schon sind im Incident handling wieder 10 Klicks und Übertragungsfehler eliminiert.