OpenNMS Ticket­system-Inte­gra­tion über E-Mail-Schnittstelle

Das IT-Moni­to­ring-System OpenNMS bietet mit dem Ticket-Daemon eine Inte­gra­tion in verschie­dene Ticket-Systeme. Hier wird aus einem Alarm im Moni­to­ring-System durch den Anwender ein Ticket in einem der unter­stützten Ticket-Systeme erzeugt - entweder auto­ma­tisch oder auf Knopf­druck. Aktuell werden die Systeme Request Tracker, OTRS, Jira und IBM Remedy unter­stützt und per Schnitt­stelle ange­spro­chen. Im Rahmen eines Kunden­pro­jekts ist das Add-On opennms-email-ticketer entstanden, mit dem eine Ticke­ter­zeu­gung per E-Mail - unab­hängig vom verwen­deten Ticket­system - erfolgen kann.

Funk­ti­ons­weise

Der opennms-email-ticketer ist als Drools-Regel­werk für den OpenNMS-Corre­lator reali­siert und verwendet Teile der OpenNMS Trouble Ticket Inte­gra­tion. Diese bietet auf der Alarm­seite die zusätz­li­chen Buttons create ticket, update ticket und close ticket an. Bei einem Klick auf einen der Buttons wird ein Event gene­riert (z.B.: uei.opennms.org/troubleTicket/create) welches die jewei­lige ID des betrof­fenen Alarms enthält. Mit den Drools-Regeln werden diese Events verar­beitet. Dabei wird zunächst der zuge­hö­rige Alarm ausge­lesen und anhand eines Templates der Inhalt der E-Mail gene­riert. Hierbei können verschie­dene Varia­blen (z.B.: Logmes­sage des Alarms, Asset-Daten des zuge­hö­rigen Nodes, ange­mel­deter OpenNMS-User) verwendet werden. E-Mail-Empfänger und Betreff­zeile werden in einer Konfi­gu­ra­ti­ons­datei hinter­legt. Für die Konfi­gu­ra­tion des Mail­ser­vers wird auf die OpenNMS-Konfi­gu­ra­ti­ons­datei javamail-configuration.properties zurückgegriffen.
Nach Aktivieren der Trouble Ticket Integration in OpenNMS sind die Buttons Create Ticket / Update Ticket / Close Ticket auf der Detailseite eines Alarms zu sehen.
 

Setup

Der opennms-email-ticketer ist auf Github zu finden. Entwick­lung und Test erfolgten für die Version OpenNMS Meri­dian 2017 - das Add-On sollte aber problemlos auch in anderen Versionen funk­tio­nieren. In den nach­fol­genden Beschrei­bungen wird davon ausge­gangen, dass sich das OpenNMS-Verzeichnis unter /opt/opennms (Stan­dard­ver­zeichnis bei allen RPM-basierten Instal­la­tionen) befindet.
Nach dem Down­load der aktu­ellen Version muss zunächst das Drools-Projekt aus dem herun­ter­ge­la­denen Repo­si­tory in das OpenNMS Konfi­gu­ra­ti­ons­ver­zeichnis kopiert werden:
cp drools-engine.d/ticketer /opt/opennms/etc/drools-engine.d
Ist OpenNMS nicht im Verzeichnis /opt/opennms instal­liert, muss in der Datei <OpenNMS-Dir>/etc/drools-engine.d/ticketer/drools-engine.xml der Pfad für die Konfi­gu­ra­ti­ons­datei ange­passt werden.
In der OpenNMS-Konfi­gu­ra­ti­ons­datei service-configuration.xml muss der OpenNMS-Corre­lator akti­viert werden. Hierzu muss das Attribut enabled="false" (blau markiert) in der Service Defi­ni­tion entfernt werden:
<service enabled="false">
<name>OpenNMS:Name=Correlator</name>
<class-name>org.opennms.netmgt.correlation.jmx.Correlator</class-name>
<invoke method="init" pass="0" at="start"/>
<invoke method="start" pass="1" at="start"/>
<invoke method="status" pass="0" at="status"/>
<invoke method="stop" pass="0" at="stop"/>
</service>

Um die Trou­ble­Ti­cket-Inte­gra­tion in OpenNMS gene­rell zu akti­vieren - erst dadurch werden in der OpenNMS Webober­fläche Buttons für die Ticket­ge­ne­rie­rung ange­zeigt - muss noch folgende Einstel­lung in der OpenNMS-Konfi­gu­ra­ti­ons­datei opennms.properties vorge­nommen werden:
opennms.alarmTroubleTicketEnabled = true
Mit einem Neustart von OpenNMS werden die Ände­rungen übernommen.

Konfi­gu­ra­tion

Der opennms-email-ticketer lässt sich über die Konfi­gu­ra­ti­ons­datei /opt/opennms/etc/drools-engine.d/ticketer/ticketer-configuration.properties anpassen. Nach­fol­gend ein Beispiel:

# mail receiver address
receiver = ticket@example.com
# mail subject (template varia­bles can be used)
subject = Inci­dent: {{node_label}}, Seve­rity: {{alarm_sev}}, {{alarm_uei}}
# file­name of the message template
message.template = /opt/opennms/etc/drools-engine.d/ticketer/mailbody.tpl

Dabei können unter anderem Empfänger und Betreff­zeile für die versen­deten E-Mails ange­geben und ein Message Template für den Inhalt der E-Mail hinter­legt werden. Ein Message Template (hier mailbody.tpl) kann wie folgt aussehen:

NEW OPENNMS ALARM
=================
Alarm ID: {{alarm_id}}
Alarm User: {{alarm_user}}
Alarm Node: {{node_label}}
Alarm Message: {{alarm_logmsg}}
Node Label: {{node_label}}
Node City: {{node_asset_city}}
Node Vendor: {{node_asset_vendor}}

Im Message Template und E-Mail-Subject können verschie­dene Template-Varia­blen (gekenn­zeichnet durch {{…}} ) verwendet werden. Diese werden durch den opennms-email-ticketer durch den jewei­ligen Wert ersetzt.
Einstel­lungen zum verwen­deten Mail­server werden in der in OpenNMS bereits vorhan­denen OpenNMS-Konfi­gu­ra­ti­ons­datei javamail-configuration.properties vorge­nommen. Alle Konfi­gu­ra­ti­ons­da­teien können zur Lauf­zeit von OpenNMS verän­dert werden und werden ohne Neustart angewendet.

Weitere Infor­ma­tionen

Das Projekt selbst befindet sich auf Github. Dort ist auch die zuge­hö­rige Doku­men­ta­tion zu finden. Ihre Fragen zu OpenNMS beant­worten wir auch gerne persön­lich - spre­chen Sie uns an!

Schreibe einen Kommentar

Cookie Einstellungen
Diese Website verwendet Cookies, um die bestmögliche Funktionalität zu gewährleisten. Mehr lesen

Akzeptiere alle Cookies Speichern