BMC BEM: Wie kann man Daten aus externen Programmen im Regelwerk nutzen?

Bei der Eventverarbeitung im Regelwerk ist es manchmal notwendig, zusätzliche Daten aus externen Quellen zu beschaffen. Um externe Programme auszuführen und deren Daten zurück in das Regelwerk zu leiten, nutzt man Interfaces.

a) BAROC Datei für die Interface Daten-Struktur:
Die Struktur eines Interface wird in einer BAROC-Datei definiert, mit dem Schlüsselwort MC_INTERFACE :

1
2
3
4
5
6
7
8
MC_INTERFACE: AUSSENSENSOR
DEFINES {
    ort:            STRING;
    temperatur:     STRING;
    rel_feuchte:    STRING;
    abs_feuchte:    STRING;
};
END

Nach dem Laden der Definitionen (mcontrol -n CELL_NAME reload kb ) steht die Daten-Struktur in der Zelle zur Verfügung.

b) Das externe Programm:
Die durch das externe Programm zu liefernden Daten, werden an die Interface-Instanz übergeben. Diese Instanz ist leider keine FIFO, sondern eine ASCII-Datei, die nur über einen kurzen Zeitraum existiert. Konkret nur während die aufrufende Refine-Regel aktiv ist und auf die Daten aus dem externen Programm wartet. Als Beispiel liefert das externe Programm /usr/bin/get_sensor_data.pl folgende Daten an das Interface/FIFO und damit in das Regelwerk:

1
2
3
4
5
6
AUSSENSENSOR;
     ort = "Terrasse";
     temperatur = "23.45 °C";
     rel_feuchte = "66.4 %";
     abs_feuchte = "71.2 %";
END

In dem Output des externen Programms finden wir die Struktur unseres definierten Interface wieder.

c) Im Regelwerk:
Mit einer Refine-Rule wird mit get_external das externe Programm aufgerufen und die externen Daten in der definierten Interface-Struktur dem Regelwerk zur Verfügung gestellt:

1
2
3
4
get_external('/usr/bin/get_sensor_data.pl',['Sensor_Terrasse'],AUSSENSENSOR,$SEN);
$EV.sensorort = $SEN.ort;
$EV.value_temperatur = $SEN.temperatur;
$EV.value_feuchte = $SEN.rel_feuchte;

Nur während der Ausführung der Refine-Rule stehen die Daten aus der Interface-Struktur zur Verfügung. Hier wurden sie in einem Event zugeordnet und gespeichert.
Ebenso ist es im weiteren möglich, die Daten in einem global record zu speichern und zu einem späteren Zeitpunkt darauf zuzugreifen.

Interface Instances – siehe auch die Handbücher:
BMC Knowledge Base Development Reference Guide,
BMC Impact Solutions Knowledge Base Development Reference Guide

schnelle Hilfe - Dank bester Eventverarbeitung und gezielter Eskalation ( Ticket & Alarmierung )

schnelle Hilfe – Dank bester Eventverarbeitung und gezielter Eskalation ( Ticket & Alarmierung )


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert