So installierst du die OpenNMS Monitoring-Lösung unter Ubuntu 22.04

OpeNNMS ist eine kostenlose und quelloffene Netzwerküberwachung und -verwaltung. Es ist eine Netzwerküberwachungsplattform für Unternehmen, die alles in lokalen und entfernten Netzwerken visualisiert und überwacht. OpenNMS ist eine vollständig quelloffene Lösung für die Netzwerküberwachung und -verwaltung und wird unter der AGPLv3-Lizenz veröffentlicht.

OpenNMS ist eine skalierbare Netzwerküberwachungsplattform, die es dir ermöglicht, zehntausende von Netzwerken über verteilte und abgestufte Systeme zu überwachen. Außerdem ist OpenNMS eine flexible Überwachungsplattform, die sich leicht mit deinem Kerngeschäft und Erweiterungen von Drittanbietern integrieren lässt.

OpenNMS besteht aus mehreren Komponenten, die im Folgenden aufgeführt sind:

  1. OpenNMS Horizon – bündelt drei Hauptkomponenten: Core (die Hauptkomponente von Horizon), Minion (für die verteilte Fernüberwachung) und Sentinel (für die Skalierbarkeit).
  2. Helm – angepasstes Dashboard für OpenNMS.
  3. Architecture for Learning Enabled Correlation (ALEC) (Alarmtriage).
  4. Provisioning Integration Server (PRIS) (Integration extrahierter Daten).

Diese Anleitung zeigt dir, wie du OpenNMS Monitoring Solution mit einem PostgreSQL-Datenbankserver und Nginx Reverse Proxy auf einem Ubuntu 22.04 Server installierst. Außerdem zeigt dir dieser Leitfaden die Installation von Java OpenJDK, die Grundkonfiguration des PostgreSQL Datenbankservers und des Nginx Webservers.

Voraussetzungen

Zunächst einmal brauchst du die folgenden Voraussetzungen, um diesen Leitfaden fertigzustellen:

  • Einen Ubuntu 22.04 Server – In diesem Beispiel wird der Ubuntu Server mit dem Hostnamen ‚opennms-server‘ verwendet und der Speicher beträgt 4 GB.
  • Einen Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.\
  • Ein Domänenname oder eine lokale Domäne wird verwendet, um OpenNMS auszuführen.

Java OpenJDK installieren

Die OPneNMS Überwachungslösung ist ein Überwachungswerkzeug, das hauptsächlich in Java geschrieben wurde. Zum Zeitpunkt der Erstellung dieses Artikels unterstützt die neueste Version von OpenNMS mindestens Java 11. Das Standard-Repository von Ubuntu 22.04 bietet das Java OpenJDK 11, das du einfach über APT installieren kannst.

Bevor du Java installierst, führe den folgenden apt-Befehl aus, um deinen Paketindex zu aktualisieren und aufzufrischen.

sudo apt update

Installiere nun Java OpenJDK 11 über den folgenden apt-Befehl. Die Standard-Java-Version für das Ubuntu 22.04-System ist Java OpenJDK 11, das für die OpenNMS-Installation geeignet ist.

sudo apt install default-jdk

Wenn du dazu aufgefordert wirst, gib zur Bestätigung y ein und drücke ENTER. Die Java OpenJDK-Installation wird gestartet.

java installieren

Nachdem Java OpenJDK installiert ist, führe den folgenden Befehl aus, um die installierte Version von Java zu überprüfen. Du solltest Java OpenJDK 1.11 auf deinem Ubuntu-System installiert bekommen.

java -version

check java

Wenn Java OpenJDK installiert ist, kannst du mit der Installation der PostgreSQL-Datenbank fortfahren.

PostgreSQL Server installieren und konfigurieren

PostgreSQL ist ein leistungsstarkes RDMS (Relational Database Management System). Das OpenNMS unterstützt nur PostgreSQL als Datenbank-Backend. Zum Zeitpunkt der Erstellung dieses Artikels unterstützt das OpenNMS PostgreSQL v10.x-14.x.

Du wirst nun die PostgreSQL-Datenbank v14 auf einem Ubuntu-Server installieren und konfigurieren. Das Ubuntu-Repository stellt standardmäßig mehrere PostgreSQL-Versionen zur Verfügung, und du wirst PostgreSQL 14.x für den OpenNMS-Einsatz installieren.

Führe den folgenden apt-Befehl aus, um PostgreSQL 14 zu installieren.

sudo apt install postgresql-14

Wenn du zur Bestätigung aufgefordert wirst, gib y ein und drücke ENTER, um fortzufahren.

install postgresql

Nachdem das PostgreSQL-Paket installiert ist, führe den folgenden systemctl-Befehl aus, um den PostgreSQL-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft und aktiviert ist.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Du wirst dann sehen, dass der PostgreSQL-Dienst aktiviert ist und beim Hochfahren automatisch ausgeführt wird. Und der Status des PostgreSQL-Dienstes lautet „running“.

postgresql verifizieren

Jetzt, wo die PostgreSQL-Datenbank läuft, wirst du die Datenbank und die Benutzererstellung für OpenNMS durchgehen. Du legst auch das Passwort für den Standard-PostgreSQL-Benutzer„postgres“ fest.

Führe den folgenden Befehl aus, um einen neuen PostgreSQL-Benutzer „opennms“ zu erstellen. Wenn du zur Eingabe des Passworts aufgefordert wirst, gibst du das neue Passwort für den Benutzer„opennms“ ein und wiederholst es.

sudo -u postgres createuser -P opennms

Als Nächstes erstellst du mit dem folgenden Befehl eine neue Datenbank„opennms“ mit dem Eigentümer„opennms„.

sudo -u postgres createdb -O opennms opennms

Zum Schluss änderst du das Passwort des Benutzers„postgres“ mit dem folgenden Befehl. Achte darauf, dass du ein neues, sicheres Passwort verwendest.

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '5up3rp4ssw0rd';"

Postgresql-Datenbank und Benutzer einrichten

Jetzt, da du Java OpenJDK und PostgreSQL installiert hast, kannst du OpenNMS installieren.

Installieren und Konfigurieren von OpenNMS

Du hast Java OpenJDK und die PostgreSQL-Datenbank installiert. Außerdem hast du eine neue Datenbank und einen neuen Benutzer für OpenNMS angelegt und das Standardpasswort für den PostgreSQL-Benutzer „postgres“ konfiguriert. Nun kannst du mit der Installation und Konfiguration von OpenNMS beginnen.

In diesem Abschnitt wirst du OpenNMS über das offizielle OpenNMS-Repository installieren. Dann richtest du OpenNMS mit der PostgreSQL-Datenbank ein, richtest die Java-Umgebung ein, initialisierst das Datenbankschema, erkennst die Systembibliotheken und erlaubst OpenNMS, in privilegierten Ports zu laufen.

Führe zunächst den folgenden Befehl aus, um den OpenNMS GPG-Schlüssel und das Repository hinzuzufügen.

sudo apt-key adv --fetch-keys https://debian.opennms.org/OPENNMS-GPG-KEY
sudo add-apt-repository -s 'deb https://debian.opennms.org stable main'

Wenn du dazu aufgefordert wirst, drücke ENTER, um zu bestätigen und das OpenNMS-Repository hinzuzufügen.

Repo hinzufügen

Installiere nun das OpenNMS-Paket mit zusätzlichen R-Paketen über den folgenden apt-Befehl.

sudo apt install opennms r-recommended

Wenn du zur Bestätigung aufgefordert wirst, gib y zur Bestätigung ein und drücke ENTER, um fortzufahren.

opennms installieren

Als Nächstes führst du den unten stehenden apt-Befehl aus, um das OpenNMS-Paket von der automatischen Aktualisierung auszuschließen. OpenNMS erfordert manuelle Schritte und Konfigurationen, wenn du auf eine neue Version aktualisierst. Daher musst du das Upgrade manuell durchführen, um Fehler während/nach dem Upgrade zu vermeiden.

sudo apt-mark hold libopennms-java \
libopennmsdeps-java \
opennms-common \
opennms-db

Auto-Update deaktivieren

Jetzt, wo OpenNMS installiert ist, kannst du das OpenNMS-Installationsverzeichnis„/usr/share/opennms“ mit dem folgenden Befehl überprüfen. Außerdem sollten alle Änderungen, die sich auf OpenNMS beziehen, auf die Dateien im Verzeichnis„/usr/share/opennms“ angewendet werden.

sudo apt install tree -y
sudo tree /usr/share/opennms -L 1

Du könntest eine Liste der Verzeichnisse und Dateien für das OpenNMS-Paket sehen.

opennms Listendateien

Als Nächstes wirst du die Datenbankkonfiguration für OpenNMS einrichten. Öffne die Datei„/usr/share/opennms/etc/opennms-datasources.xml“ mit dem folgenden nano-Editor-Befehl. DerBefehl „sudo -u opennms“ zeigt an, dass du den Befehl als Benutzer„opennms“ und nicht als Root-Benutzer ausführst.

sudo -u opennms nano /usr/share/opennms/etc/opennms-datasources.xml

Ändere die „jdbc-data-source“ für„opennms“ mit den Angaben der„opennms„-Datenbank und dem Benutzer. Und für„opennms-admin“ solltest du denPostgreSQL-Admin-Benutzer „postgres“ verwenden.

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

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um die Java-Umgebung auf deinem System zu ermitteln, die dauerhaft in der Konfigurationsdatei „/usr/share/opennms/etc/java.conf“ gespeichert wird.

sudo -u opennms /usr/share/opennms/bin/runjava -s

opennms einrichten

Danach führst du den folgenden Befehl aus, um die Datenbank zu initialisieren und die Systembibliotheken für OpenNMS zu ermitteln. Die Bibliotheken für OpenNMS werden in der Datei„/opt/opennms/etc/libraries.properties“ aufgeführt.

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

opennsm installer

Als nächstes bearbeitest du die OpenNMS-Dienstdatei mit dem folgenden systemctl-Befehl. Du solltest den Standard-EDITOR auf deinem System erhalten.

sudo systemctl edit --full opennms.service

Füge die folgende Konfiguration in den Abschnitt ‚[Service]‚ ein. Dadurch kann der OpenNMS-Dienst an privilegierten Ports (Ports 1-1024) ausgeführt und gebunden werden.

[Service]
...
AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE

Speichere die Datei und beende den Editor, wenn du fertig bist.

Nachdem du die OpenNMS-Dienstdatei geändert hast, führe den folgenden Befehl aus, um den systemd manager neu zu laden, neu zu starten und den OpenNMS-Dienst zu aktivieren.

sudo systemctl daemon-reload
sudo systemctl restart opennms
sudo systemctl enable opennms

Jetzt, wo der OpenNMS-Dienst mit den neuen Konfigurationen läuft, überprüfst du den OpenNMS-Dienst mit dem folgenden systemctl-Befehl.

sudo systemctl is-enabled opennms
sudo systemctl status opennms

Die Ausgabe – Der OpenNMS-Dienst ist aktiviert und wird beim Systemstart automatisch ausgeführt. Und der OpenNMS-Dienst wird derzeit ausgeführt.

opennms prüfen

An diesem Punkt hast du die Installation und Konfiguration von OpenNMS abgeschlossen. Aber du wirst OpenNMS mit dem Nginx Reverse Proxy betreiben. Lies weiter, um zu erfahren, wie du Nginx als Reverse Proxy für OpenNMS einrichtest.

Installation von Nginx als Reverse Proxy für OpenNMS

Nachdem OpenNMS auf dem Standardport 8980 läuft, musst du Nginx als Reverse-Proxy für OpenNMS installieren und konfigurieren.

Führe den folgenden apt-Befehl aus, um das Nginx-Paket auf deinem System zu installieren.

sudo apt install nginx

Gib y ein, wenn du dazu aufgefordert wirst, und drücke dann ENTER, um fortzufahren. Die Installation wird nun gestartet.

nginx installieren

Als nächstes überprüfst du den Nginx-Dienst mit dem folgenden systemctl-Befehl.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Du solltest sehen, dass der Nginx-Dienst aktiviert ist und beim Systemstart automatisch ausgeführt wird. Außerdem wird der Nginx-Dienst automatisch gestartet, nachdem die Installation abgeschlossen ist.

nginx prüfen

Nachdem Nginx installiert ist, erstelle mit dem folgenden nano-Editor-Befehl einen neuen Nginx-Server-Block„/etc/nginx/sites-available/opennms.conf„.

sudo nano /etc/nginx/sites-available/opennms.conf

Füge die folgende Konfiguration in die Datei ein. Achte darauf, dass du den Domänennamen durch deine Domäne ersetzt.

server {
    listen 80;
    server_name opennms.hwdomain.io;
    access_log /var/log/nginx/opennms.access.log;
    error_log /var/log/nginx/opennms.error.log;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-OpenNMS-Server-URL https://opennms.hwdomain.io/;
proxy_pass http://localhost:8980;
}

}

Speichere die Datei und beende den Editor, wenn du fertig bist.

Aktiviere als nächstes den Serverblock„opennms.conf“ und überprüfe die Nginx-Konfiguration, um sicherzustellen, dass du die richtige Konfiguration hast.

sudo ln -s /etc/nginx/sites-available/opennms.conf /etc/nginx/sites-enabled/
sudo nginx -t

Wenn du eine Meldung wie„Test erfolgreich – Syntax ok“ siehst, bedeutet das, dass deine Nginx-Konfiguration korrekt ist.

setuo nginx

Starte nun den Nginx-Dienst neu, um die neue Serverblock-Konfiguration anzuwenden.

sudo systemctl restart nginx

Jetzt, wo Nginx als Reverse Proxy für OpenNMS läuft, gehst du die UFW-Firewall-Konfiguration durch und öffnest einige Ports für einige Dienste.

UFW-Firewall einrichten

Nachdem du den Nginx-Reverse-Proxy konfiguriert hast, richtest du die UFW auf deinem OpenNMS-Server ein. Da du das OpenNMS Monitoring Tool mit aktivierter UFW betreiben wirst, musst du einige Ports hinzufügen, die für OpenNMS verwendet werden.

Führe den folgenden apt-Befehl aus, um UFW auf deinem System zu installieren.

sudo apt install ufw -y

Nachdem du UFW installiert hast, führe den folgenden Befehl aus, um den OpenSSH-Dienst hinzuzufügen. Starte und aktiviere dann den UFW-Dienst.

sudo ufw allow OpenSSH
sudo ufw enable

Wenn du dazu aufgefordert wirst, gib zur Bestätigung y ein und drücke ENTER, um fortzufahren. Jetzt läuft der UFW-Dienst, ist aktiviert und wird beim Hochfahren automatisch ausgeführt.

ufw ssh einrichten

Als Nächstes fügst du eine neue Regel hinzu, um den Datenverkehr mit dem Nginx-Webserver zuzulassen.

sudo ufw allow "Nginx Full"

ufw nginx

Öffne dazu die Datei„/etc/ufw/before.rules“ mit dem folgenden Befehl des nano Editors.

sudo nano /etc/ufw/before.rules

Füge die folgende Konfiguration vor dem Abschnitt „*filter“ hinzu. Dadurch wird NAT aktiviert und der Datenverkehr von 62/udp auf 10162/udp umgeleitet/weitergeleitet.

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 10162
COMMIT

Speichere die Datei und beende den Editor, wenn du fertig bist.

Füge nun die neue Regel hinzu, um beide Ports 62/udp bis 10162/udp zuzulassen.

sudo ufw allow in 162/udp
sudo ufw allow in 10162/udp

Lade die UFW neu, um die Änderungen zu übernehmen und überprüfe den Status der UFW mit dem folgenden Befehl.

sudo ufw reload
sudo ufw status

ceck ufw

Bis jetzt hast du die Installation und Konfiguration von OpenNMS mit abhängigen Paketen wie der PostgreSQL-Datenbank und dem Nginx-Webserver abgeschlossen und auch die UFW konfiguriert. Im letzten Schritt greifst du über einen Webbrowser auf die OpenNMS-Installation zu und richtest den Admin-Benutzer für OpenNMS ein.

Zugriff auf das OpenNMS Monitoring Tool

Öffne deinen Webbrowser und rufe den Domainnamen deiner OpenNMS-Installation auf (z. B. http://opennms. hwdomain.io). Du solltest die Anmeldeseite des OpenNMS Monitoring Tools sehen.

Gib den Standardbenutzer und das Standardpasswort„admin/admin“ ein und klicke auf„Anmelden„.

Anmeldung

Daraufhin wird das OpenNMS-Administrations-Dashboard angezeigt.

opennms Dashboard

Nachdem du dich mit dem Standardbenutzer/-passwort„admin/admin“ bei OpenNMS angemeldet hast, änderst du den Standardbenutzernamen und das Standardpasswort für deine OpenNMS-Installation.

Klicke in der oberen Menüleiste auf das Menü„Admin“ und wähle „Passwort ändern„.

Gib nun das alte Passwort „admin“ und das neue OpenNMS-Passwort ein und wiederhole das Passwort. Klicke dann auf„Abschicken„, um es zu übernehmen.

Passwort ändern

Damit hast du die OpenNMS-Konfiguration abgeschlossen.

Fazit

Du hast nun OpenNMS, ein hochskalierbares und anpassbares Überwachungstool, auf deinem Ubuntu 22.04 Server installiert. Außerdem hast du den PostgreSQL-Datenbankserver installiert und den Nginx-Webserver als Reverse-Proxy für das OpenNMS konfiguriert. Wenn OpenNMS vollständig konfiguriert ist, kannst du nun einen neuen Host zur Überwachung über das SNMP-Protokoll hinzufügen, eine verteilte Überwachung über OpenNMS Minion einrichten, das OpenNMS über Sentinel skalieren und mit der Anpassung des Dashboards über Helm beginnen.

Wenn du OpenNMS in großen Umgebungen einsetzen willst, schau dir die offizielle Dokumentation an.

Das könnte dich auch interessieren …