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:
- OpenNMS Horizon – bündelt drei Hauptkomponenten: Core (die Hauptkomponente von Horizon), Minion (für die verteilte Fernüberwachung) und Sentinel (für die Skalierbarkeit).
- Helm – angepasstes Dashboard für OpenNMS.
- Architecture for Learning Enabled Correlation (ALEC) (Alarmtriage).
- 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.
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
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.
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“.
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';"
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.
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.
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
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.
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
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
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.
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.
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.
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.
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.
Als Nächstes fügst du eine neue Regel hinzu, um den Datenverkehr mit dem Nginx-Webserver zuzulassen.
sudo ufw allow "Nginx Full"
Ö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
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„.
Daraufhin wird das OpenNMS-Administrations-Dashboard angezeigt.
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.
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.