Ich habe keinen blassen Schimmer von der Programmierung eines Perl Moduls für OTRS, daher habe ich erstmal, quasi als Machbarkeitsstudie ein kleines Bash script geschrieben, dass ein SQL statement ausführt um die Nagiosmeldung mit dem entsprechenden CI zu verbinden.
Code: Select all
#!/bin/bash
mysql -u "otrs" -pXXXXXXXXX otrs -e "INSERT INTO link_relation SET source_object_id='1', target_object_id='2', source_key='$2', target_key=(SELECT c.id FROM configitem c, configitem_version v WHERE c.last_version_id = v.id AND v.name=(SELECT v.value_text FROM otrs.dynamic_field d, otrs.dynamic_field_value v WHERE d.id = v.field_id AND v.object_id = '$2' AND d.name = 'TicketFreeText1')), type_id='7', state_id='1', create_time=NOW(), create_by='1';"
Wenn jemand ein gutes Tutorial oder auch nur eine Befehlsreferenz zur Programmierung eines OTRS Moduls / Plugins bzw zur Nutzung der entsprechenden Objekte kennt, dann wäre ich sehr erfreut über einen Link. Dann könnte ich das Ganze ein wenig sauberer programmieren. Momentan ist es nur ein "dirty hack" der
nur zum testen dient.
Zur Funktionsweise:
- 1) es wird eine MySQL Konsole mit dem User otrs und dem Passwort XXXXXXXXX geöffnet
2) Der Tabelle link_relations wird ein neuer Link hinzugefügt: Quelle der Verknüpfung ist vom Typ 1 (Ticket) Ziel der Verknüpfung ist vom Typ 2 (ITSMConfigItem), Quelle wird durch die Ticket ID identifiziert, die vom GernericAgent übergeben wird. Das Ziel wird identifiziert durch die ID des ConfigItems. Dazu müssen zunächst nur die aktuellen Einträge betrachtet werden (JOIN über configitem und configitem_version)
3) Weiterhin muss der Name des CIs gleich dem TicketFreeText1 value des Tickets sein. Dieses wird durch das Monitoring Modul gesetzt.
Ich kann nicht garantieren, dass es so auch bei anderen funktioniert, da viele IDs fest eingestellt sind, ich mir aber nicht sicher bin, ob dieses bei einer anderen Installation identisch sein müssen.
Vllt kann jemand was mit dem Schnippsel anfangen. Wenn ja würde ich mich freuen, wenn Ihr kurz bescheid sagt, da ich evtl falls ich einen Zugang zum Thema finde das ganze als Modul einbinde. Dann könnte ich das zur Verfügung stellen.