Scriptüberwachung – OpenNMS

Posted: 7th März 2012 by Thorben Hemmler in OpenNMS

Backupscript, sichert Dateien via rsync von Server1 auf Backupserver.

#!/bin/sh

# OpenNMS

SEND_EVENT=/usr/local/bin/send-event.pl

ONMS_UEI_OK=uei.opennms.org/Custom/opennms/backupSuccess
ONMS_UEI_FAILED=uei.opennms.org/Custom/opennms/backupFailed
ONMS_NODEID=1234
ONMS_IF=192.168.1.1
ONMS_EVTSRV=1.2.3.4
JRB_DATA=

# Verzeichnisse synchronisieren
/usr/local/bin/rsync -aW --stats --fileflags --force-change --exclude-from=/usr/local/scripte/exclude.conf --delete rsync://server1:/alles /disk/backup-full/server1/

# OpenNMS
if [ $? -eq 0 ];
then
${SEND_EVENT} ${ONMS_UEI_OK} ${ONMS_EVTSRV} -n ${ONMS_NODEID} -i ${ONMS_IF} -x 3 -p "desc Backup-Script ${JRB_DATA} successful (backup1:/usr/local/scripte/backup_server.sh)"
else
${SEND_EVENT} ${ONMS_UEI_FAILED} ${ONMS_EVTSRV} -n ${ONMS_NODEID} -i ${ONMS_IF} -x 6 -p "desc Backup-Script ${JRB_DATA} failed (backup1:/usr/local/scripte/backup_server.sh)"
fi

Für den Fall dass ein fehlerhafter Returncode zurückgegen wird, entsteht ein entsprechendes Event.

Das ist die entsprechende Eventdatei. Diese muss unter /etc/opennms/events angelegt werden.

<events>
    <event>
        <uei>uei.opennms.org/Custom/opennms/backupSuccess</uei>
        <event-label>Custom-defined event OpenNMS backup success</event-label>
        <descr>OpenNMS backup successful</descr>
        <logmsg dest="logndisplay">OpenNMS: %parm[desc]%.</logmsg>
        <severity>Normal</severity>
    </event>
    <event>
        <uei>uei.opennms.org/Custom/opennms/backupFailed</uei>
        <event-label>Custom-defined event OpenNMS backup failed</event-label>
        <descr>OpenNMS backup failed</descr>
        <logmsg dest="logndisplay">OpenNMS: %parm[desc]%.</logmsg>
        <severity>Minor</severity>
        <alarm-data reduction-key="%uei%:%parm[desc]%" alarm-type="1" auto-clean="false" />
    </event>
</events>

Außerdem muss in der Datei /etc/opennms/eventconf.xml die neue Eventdatei eingetragen werden (siehe Ende der Datei). Danach ist ein Neustart von NMS nötig um die neuen Events zu identifizieren zu können.

  1. Stefan sagt:

    Hallo!

    Soweit verstehe ich das System – nur wenn ich das Event abschicke, sehe ich im openNMS folgendes:

    An event with no matching configuration was received from interface 192.168.0.2

    Muss ich das Event noch irgendwie mit meiner Wunschnode verknüpfen? Wenn ja: Wie?

    Danke im Voraus für eine Antwort :)

    • marcel sagt:

      Hallo Stefan,

      ich habe den Beitrag ein wenig geändert. Die Meldung die du bekommst ist ja aussagekräftig. NMS kennt das Event nicht. D.h. du hast entweder kein Event definiert oder du hast NMS nach Erstellung der Eventdatei nicht neugestartet. Das ist leider bei Eventänderungen nötig. Der Bezug zwischen Event und dem NOde geschieht durch die Variablen:
      ONMS_NODEID=1234
      ONMS_IF=192.168.1.1


      Marcel