OpenNMS: Auto-Zuord­nung von Geodaten

Seit der OpenNMS-Version 1.12 können die von OpenNMS über­wachten Nodes - also die am Netz­werk ange­schlos­senen Geräte - auf einer geogra­fi­schen Karte darge­stellt werden, die unter dem Menü­punkt Maps -> Geogra­phical verfügbar ist. Die Plat­zie­rung der Nodes auf der Karte kann über die Angabe von Adress­in­for­ma­tionen oder die direkte Angabe der jewei­ligen Geodaten geschehen. Die Daten müssen dabei im Asset-Daten­blatt des jewei­ligen Nodes hinter­legt werden. Gerade bei einer größeren Menge von Nodes muss hier ein Auto­ma­tismus einge­setzt werden, um eine vernünf­tige Verwal­tung zu reali­sieren. Impor­tiert man die Geräte aus einer Gerätedatenbank/CMDB, kann man die notwen­digen Infor­ma­tionen - soweit vorhanden - an dieser Stelle gleich mitgeben. 
Für einen unserer Kunden haben wir kürz­lich eine weitere Möglich­keit imple­men­tiert: Wir haben in einer Konfi­gu­ra­ti­ons­datei Stand­orte mit Geodaten defi­niert und die Nodes auf Basis ihrer IP-Adresse den verschie­denen Stand­orten zugeordnet.

Geodaten-Zuord­nung in OpenNMS via “Drools Corre­la­tion Engine”

Für die Imple­men­tie­rung wurde die in OpenNMS enthal­tene Drools Corre­la­tion Engine verwendet, die es ermög­licht, beim Auftreten eines Events regel­ba­siert Aktionen auszu­führen. In unserem Fall verwenden wir für die Ausfüh­rung einer Aktion das Event uei.opennms.org/internal/provisiond/nodeScanCompleted, das eintritt, sobald der Scan oder regel­mä­ßige Rescan eines Nodes durch­ge­führt wurde. Tritt dieses Event auf, werden zunächst die IP-Adressen des jewei­ligen Nodes aus der OpenNMS Daten­bank ausge­lesen und mit den Einträgen aus einer Konfi­gu­ra­ti­ons­datei vergli­chen. In dieser werden Stand­orte mit deren Geodaten defi­niert und IP-Adress­be­reiche den jewei­ligen Stand­orten zuge­ordnet. Konnte die IP-Adresse einem Standort zuge­ordnet werden, werden die Geodaten zu dem jewei­ligen Node in die OpenNMS-Daten­bank geschrieben.
Die benö­tigten Dateien können unter folgendem Link herun­ter­ge­laden werden: geocoder-rules.tar.gz. Nach dem Entpa­cken des Archivs muss der darin enthal­tene Ordner geocoder in den Ordner drools-engine.d des OpenNMS-Konfi­gu­ra­ti­ons­ver­zeich­nisses (z.B.: /etc/opennms) kopiert werden. Die Konfi­gu­ra­tion wird in der Datei geocoder-configuration.xml durch­ge­führt, die nach /etc/opennms kopiert werden muss. Nach­fol­gend ein Beispiel:

<geocooder-configuration>
    <locations>
        <location name="fulda" latitude="50.5558095" longitude="9.680844900000011" />
        <location name="frankfurt" latitude="50.1109221" longitude="8.682126700000026" />
        <location name="nuernberg" latitude="49.45203" longitude="11.076749999999947" />
    </locations>
    <locationMatchs>
        <locationMatch startIP="192.168.0.0" endIP="192.168.0.255" location="fulda" />
        <locationMatch startIP="192.168.10.0" endIP="192.168.10.255" location="fulda" />
        <locationMatch startIP="192.168.1.0" endIP="192.168.1.255" location="frankfurt" />
        <locationMatch startIP="192.168.2.0" endIP="192.168.2.255" location="nuernberg" />
    </locationMatchs>
</geocooder-configuration>

Im Abschnitt <loca­tions> werden die einzelnen Stand­orte mit Namen und zuge­hö­rigen Geodaten hinter­legt. Inner­halb von <loca­ti­on­Matchs> werden dann IP-Adress­be­reiche defi­niert und einem Standort (über den Namen) zuge­ordnet. Dabei können auch über­lap­pende IP-Bereiche defi­niert werden, wobei jeweils der erste “Match” verwendet wird. Damit die Regeln ange­wendet werden, muss noch der Daemon “Corre­lator” in der OpenNMS Konfi­gu­ra­ti­ons­datei service-configuration.xml akti­viert werden. Abschlie­ßend sollte OpenNMS einmal neu gestartet werden.

Schreibe einen Kommentar

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

Akzeptiere alle Cookies Speichern