ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

OpenNMS

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

opennms-logo.jpg OpenNMS {en} ist ein freies Netzwerkmanagement-System zur Überwachung von IT-Netzwerken. Der gesamte Code steht unter der GNU General Public License (GPL). Verwaltet wird das Projekt von Tarus Balog, der OpenNMS Group und „The Order of the Green Polo“. OpenNMS ist in Java geschrieben und lässt sich über eine Weboberfläche benutzen. Es gilt als sehr skalierbar. Installationen zur Überwachung von 70.000 Systemen mit einer Instanz sind in der Praxis im Einsatz.

Kernfunktionen:

  • Discovery: Im Netzwerk zu überwachende Knoten (Geräte) und darauf laufende Dienste können automatisch durch einen Discovery-Prozess erkannt werden.

  • Service Polling: Die auf den Knoten erkannten Dienste werden über ein Polling-Verfahren überwacht.

  • Datacollection: In regelmäßigen Abständen können Leistungsdaten der einzelnen Knoten per SNMP, JMX, HTTP, WMI, JDBC und NSClient erhoben werden.

  • Thresholding: Die gesammelten Leistungsdaten können mittels Schwellwerten überwacht werden.

  • Event Management: Umfasst die Verwaltung von internen sowie externen Ereignissen, die unter anderem per SNMP-Trap oder Syslog empfangen werden können.

  • Benachrichtigungen: Benachrichtigungen über sämtliche Ereignisse (wie zum Beispiel ein ausgefallener Dienst oder Knoten) sind unter anderem per E-Mail oder XMPP möglich.

Aufbau

OpenNMS besteht aus mehreren Diensten, die jeweils über einen gemeinsamen Eventbus miteinander kommunizieren. Der Discovery-Daemon durchsucht in regelmäßigen konfigurierbaren Abständen IP-Adressbereiche nach neuen Knoten. Wird ein neuer Knoten erkannt, wird ein NewSuspect-Ereignis erzeugt. Nach dem Auftreten eines solchen Ereignisses beginnt der Dienst Capsd die auf dem Gerät verfügbaren Dienste zu erkennen und in OpenNMS aufzunehmen. Der Pollerd übernimmt anschließend das Abfragen der einzelnen erkannten Dienste während der Collectd in regelmäßigen Abständen Leistungsdaten wie zum Beispiel die CPU-Auslastung unter anderem per SNMP erhebt. Mit den Diensten Trapd und Syslogd können SNMP-Traps sowie Syslog-Nachrichten empfangen werden und dem jeweiligen überwachten Knoten zugeordnet werden. Sämtliche Daten mit Ausnahme von Leistungsdaten werden in einer PostgreSQL-Datenbank gespeichert. Leistungsdaten werden in RRD-Dateien abgelegt. Mit einem Applikationsserver werden die gesammelten Informationen dem Benutzer über eine Weboberfläche zur Verfügung gestellt.

Voraussetzungen

Java

OpenNMS basiert auf Java. Empfohlen wird die Installation einer Entwicklungsumgebung (JDK, Version 6) von Oracle (siehe Java/Installation/Oracle Java). Erfahrungen zum Einsatz der Alternative OpenJDK liegen nur in sehr begrenztem Rahmen vor.

PostgreSQL

Dann muss PostgreSQL installiert [1] werden:

  • postgresql

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install postgresql 

sudo aptitude install postgresql 

Danach müssen die Zugriffsberechtigungen der Datenbank geändert werden. Die Datei /etc/postgresql/VERSION/main/pg_hba.conf muss mit einem Editor [2] und Root-Rechten [3] bearbeitet werden. Am Ende der Datei gibt es die Einträge:

local   all         all                               ident sameuser
host    all         all         127.0.0.1/32          ident sameuser
host    all         all         ::1/128               ident sameuser

Diese bitte abändern:

local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust

Hinweis:

Die oben genannten Änderungen in der Konfiguration erlauben jedem Zugriff auf die Datenbank, der sich auf localhost (also dem OpenNMS Server) anmelden darf! Diese Konfiguration ist für die Installation von OpenNMS am unkompliziertesten. In den meisten Fällen sollte dies allerdings kein Sicherheitsrisiko darstellen, da der Server sowieso nicht offen für jeden zugänglich sein sollte. Weiter unten in der Konfig wird erklärt, wie der Postgres Zugriff abgesichert werden kann.

Danach die Server-Komponente von PostgreSQL neu starten:

sudo service postgresql restart 

Installation

OpenNMS ist nicht über die offiziellen Ubuntu Paketquellen verfügbar. Daher muss man die Paketquelle manuell hinzufügen.

Fremdquelle

Um aus der Fremdquelle zu installieren, muss man unabhängig von der Ubuntu-Version die folgende Paketquelle freischalten:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.

deb http://debian.opennms.org stable main

Um die Fremdquelle zu authentifizieren, kann man entweder den Signierungsschlüssel herunterladen {dl} und in der Paketverwaltung hinzufügen oder folgenden Befehl ausführen:

wget -q http://debian.opennms.org/OPENNMS-GPG-KEY -O- | sudo apt-key add - 

Nach dem Aktualisieren der Paketquellen kann das Paket opennms installiert werden:

sudo apt-get update
sudo apt-get install opennms -y 

Hinweis:

Es kann sein, dass während der Installation ein Fehler bzgl. IPLIKE erscheint. Dieser ist normal und wird in einem Folgeschritt behoben.

Konfiguration

Danach muss OpenNMS gesagt werden, wo es Java findet bzw. welches es nutzen soll:

sudo /usr/share/opennms/bin/runjava -S /PFAD/ZU/JAVA/bin/java 

Nun noch schnell die OpenNMS Datenbank erstellen. Dazu gibt es ein Installationsprogramm von OpenNMS. Dieses muss auch nach Updates erneut ausgeführt werden.

sudo /usr/share/opennms/bin/install -dis 

Abschließend noch das Problem mit IPLIKE von vorhin beheben:

sudo /usr/sbin/install_iplike.sh 

Absichern von Postgres

Wie schon erwähnt, kann nun der Zugriff auf die Postgres Datenbank abgesichert werden. Den Datenbankbenutzern postgres und opennms muss ein Passwort zur Authentifizierung gegeben werden (siehe auch daviCAL). Dazu zuerst den Benutzer wechseln [4][5] und die Datenbankverwaltung starten:

1
2
su - postgres
psql

Am PostgreSQL-Prompt postgres=# folgende Befehle eingeben:

ALTER USER opennms with password 'geheim';
ALTER USER postgres with password 'geheim';
\q

Dann wieder zum normalen Benutzer werden:

1
exit

Nun muss OpenNMS das Passwort bekannt gegeben werden. In der Datei /etc/opennms/opennms-datasources.xml kann dieses hinterlegt werden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
  <jdbc-data-source name="opennms"
                    database-name="opennms"
                    class-name="org.postgresql.Driver"
                    url="jdbc:postgresql://localhost:5432/opennms"
                    user-name="opennms"
                    password="geheim" />

  <jdbc-data-source name="opennms-admin"
                    database-name="template1"
                    class-name="org.postgresql.Driver"
                    url="jdbc:postgresql://localhost:5432/template1"
                    user-name="postgres"
                    password="geheim" />

Die Datei /etc/postgresql/VERSION/main/pg_hba.conf kann jetzt von trust auf md5 geändert werden. Der Zugriff auf PostgreSQL ist dann über lokale Unix sockets sowie local loopback über IPv4 und IPv6 nur mit MD5 verschlüsselter Authentifizierung möglich.

local   all         all                               md5
host    all         all         127.0.0.1/32          md5
host    all         all         ::1/128               md5

Damit die Änderung wirksam wird, muss PostgreSQL neu gestartet werden:

sudo service postgresql restart 

Danach ist OpenNMS einsatzbereit. Es muss nur noch gestartet werden:

sudo service opennms start 

Erste Schritte

Benutzeroberfläche

Der Zugriff erfolgt über den Browser: http://OPENNMS-IP-ADRESSE:8980/opennms/

Benutzername: admin Passwort: admin

Discovery

Um großflächig Nodes in die OpenNMS Datenbank zu bekommen, sollte man den Discovery Daemon konfigurieren. Dies lässt sich leicht über die grafische Oberfläche einstellen.

discovery01.png
Administrations-Weboberfläche

discovery02.png
Discovery-Konfiguration

Einfach eine gewünschte IP, IP-Bereich oder URL eingeben und auf "Save and Restart Discovery" klicken. In der "Node List" werden dann alle Geräte erscheinen, die per ICMP im Netzwerk erreichbar sind. Diese werden auch fortan auch auf ICMP und div. andere Dienste, die dort erkannt werden (wie. z.B. HTTP, SSH usw.), überwacht.

Problembehandlung

Logs

Die Protokolldateien (Logs) werden unter /var/log/opennms/daemon/ gespeichert. In der Datei /etc/opennms/log4j.properties kann das Loglevel hochgestellt werden. Die meisten Daemons sind standardmäßig auf WARN eingestellt, z.B. der Poller-Daemon:

1
2
# Pollers
log4j.category.OpenNMS.Poller=WARN, POLLERS

Das WARN muss lediglich gegen ein DEBUG ersetzt werden. Diese Änderung wird sofort gültig und die Logs werden mit Debug Informationen gefüllt.

ubuntuusers.local › WikiOpenNMS