Wie installiere ich OpenNMS Horizon Network Monitoring System unter Debian 11
OpenNMS ist eine kostenlose, quelloffene und eine der leistungsstärksten Netzwerküberwachungs- und -verwaltungsplattformen, die für die Überwachung entfernter Geräte von einer zentralen Stelle aus eingesetzt wird. Es unterstützt viele Funktionen, wie z. B. Provisioning, Überwachung von Diensten, Ereignisverwaltung, Kartenunterstützung und vieles mehr. OpenNMS nutzt SNMP und JMX und sammelt Informationen von entfernten Systemen. Es läuft auf Linux- und Windows-Betriebssystemen und bietet eine webbasierte Schnittstelle zur einfachen Überwachung.
In diesem Lernprogramm zeige ich dir, wie du OpenNMS auf Debian 11 installierst.
Voraussetzungen
- Ein Server, auf dem Debian 11 läuft.
- Ein gültiger Domainname, der auf die IP deines Servers zeigt.
- Ein Root-Passwort ist auf dem Server konfiguriert.
Java auf Debian 11 installieren
OpenNMS ist eine Java-basierte Anwendung. Daher muss Java auf deinem Server installiert sein. Wenn es nicht installiert ist, kannst du es mit folgendem Befehl installieren:
apt-get install default-jdk -y
Sobald Java installiert ist, überprüfe die Java-Version mit dem folgenden Befehl:
java --version
Du erhältst die Java-Version in der folgenden Ausgabe:
openjdk 11.0.13 2021-10-19 OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1) OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)
OpenNMS auf Debian 11 installieren
Standardmäßig ist OpenNMS nicht im Haupt-Repository von Debian 11 enthalten. Daher musst du das offizielle OpenNMS-Repository zur APT hinzufügen.
Installiere zunächst alle benötigten Abhängigkeiten mit dem folgenden Befehl:
apt-get install curl gnupg2 wget -y
Sobald alle Pakete installiert sind, erstellst du mit dem folgenden Befehl eine OpenNMS-Repository-Datei:
nano /etc/apt/sources.list.d/opennms.list
Füge die folgenden Zeilen hinzu:
deb https://debian.opennms.org stable main deb-src https://debian.opennms.org stable main
Speichere und schließe die Datei und importiere dann den GPG-Schlüssel mit dem folgenden Befehl:
wget -O - https://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add -
Du erhältst die folgende Ausgabe:
Connecting to debian.opennms.org (debian.opennms.org)|3.214.84.83|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1335 (1.3K) Saving to: ‘STDOUT’ - 100%[=================================================================>] 1.30K --.-KB/s in 0s 2021-11-28 07:58:07 (16.0 MB/s) - written to stdout [1335/1335] OK
Als Nächstes aktualisierst du den Repository-Cache und installierst OpenNMS mit dem folgenden Befehl:
apt-get update -y apt-get install opennms -y
Während der Installation wird die folgende Fehlermeldung angezeigt:
Failed to install iplike into the template1 or opennms databases. See /tmp/install_iplike.log for details. To skip this step and install manually, set the environment variable SKIP_IPLIKE_INSTALL before installing this package. To install iplike into your database, use the /usr/sbin/install_iplike.sh script. See `install_iplike.sh -h` for more details.
Um diesen Fehler zu beheben, musst du eine Datenbank und einen Benutzer für OpenNMS in PostgreSQL erstellen.
Erstellen einer Datenbank in PostgreSQL
Der PostgreSQL-Server wird während der OpenNMS-Installation automatisch installiert.
Starten Sie zunächst den PostgreSQL-Dienst mit dem folgenden Befehl:
systemctl start postgresql
Als Nächstes verbindest du dich mit der PostgreSQL-Instanz mit dem folgenden Befehl:
su - postgres
Sobald du verbunden bist, erstelle einen Benutzer für OpenNMS und setze ein Passwort mit dem folgenden Befehl:
createuser opennms psql -c "ALTER USER opennms WITH PASSWORD 'opennms';"
Als Nächstes erstellst du eine Datenbank für OpenNMS und gibst ein Passwort für den Benutzer postgres ein:
createdb -O opennms opennms psql -c "ALTER USER postgres WITH PASSWORD 'securepassword';"
Als Nächstes beendest du die PostgreSQL-Shell mit dem folgenden Befehl:
exit
Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.
OpenNMS konfigurieren
Als Nächstes musst du die OpenNMS-Datenquellendatei bearbeiten und deine Datenbankanmeldedaten festlegen:
nano /usr/share/opennms/etc/opennms-datasources.xml
Definiere deine Datenbank-Anmeldedaten wie unten gezeigt:
<jdbc-data-source name="opennms" database-name="opennms" class-name="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/opennms" user-name="opennms" password="opennms" /> <jdbc-data-source name="opennms-admin" database-name="template1" class-name="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/template1" user-name="postgres" password="securepassword" /> </datasource-configuration>
Speichere und schließe die Datei, wenn du fertig bist, und führe den folgenden Befehl aus, um die Java-Umgebung zu erkennen:
sudo -u opennms /usr/share/opennms/bin/runjava -s
Du erhältst die folgende Ausgabe:
runjava: Looking for an appropriate JVM... runjava: Checking for an appropriate JVM in JAVA_HOME... runjava: Skipping... JAVA_HOME not set. runjava: Checking JVM in the PATH: "/etc/alternatives/java"... runjava: Did not find an appropriate JVM in the PATH: "/etc/alternatives/java" runjava: Searching for a good JVM... runjava: Found a good JVM in "/usr/lib/jvm/java-11-openjdk-amd64/bin/java". runjava: Value of "/usr/lib/jvm/java-11-openjdk-amd64/bin/java" stored in configuration file.
Als Nächstes führst du den folgenden Befehl aus, um die Einrichtung von OpenNMS abzuschließen:
sudo -u opennms /usr/share/opennms/bin/install -dis
Du erhältst die folgende Ausgabe:
Finished in 0 seconds Processing RemotePollerServiceConfigMigratorOffline: Remove deprecated RemotePoller service entry from service-configuration.xml, see NMS-12684 - Running pre-execution phase Creating backup of /usr/share/opennms/etc/service-configuration.xml Zipping /usr/share/opennms/etc/service-configuration.xml - Running execution phase Current configuration: 32 services. A service entry named 'OpenNMS:Name=PerspectivePoller' already exists. Final configuration: 32 services. - Saving the execution state - Running post-execution phase Removing backup /usr/share/opennms/etc/service-configuration.xml.zip Finished in 0 seconds Upgrade completed successfully!
Start OpenNMS Service
Nachdem du OpenNMS eingerichtet hast, starte den OpenNMS-Dienst und aktiviere ihn mit dem folgenden Befehl, damit er beim Neustart des Systems gestartet wird:
systemctl start opennms systemctl enable opennms
Du kannst den OpenNMS-Status mit dem folgenden Befehl überprüfen:
systemctl status opennms
Du erhältst die folgende Ausgabe:
? opennms.service - OpenNMS server Loaded: loaded (/lib/systemd/system/opennms.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-28 08:10:51 UTC; 16s ago Process: 22990 ExecStart=/usr/share/opennms/bin/opennms -s start (code=exited, status=0/SUCCESS) Main PID: 24106 (java) Tasks: 68 (limit: 4679) Memory: 559.2M CPU: 48.083s CGroup: /system.slice/opennms.service ??24105 bash /usr/share/opennms/bin/opennms -s start ??24106 /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,java.desktop,java.in> Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so. Attempting to loa> Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp library. Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib/jni/libjicmp6.so. Attempting to l> Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp6 library. Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so. Attempting to loa> Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp library. Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib/jni/libjicmp6.so. Attempting to l> Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp6 library. Nov 28 08:11:07 debian11 opennms[24106]: Nov 28, 2021 8:11:07 AM org.hibernate.validator.internal.util.Version Nov 28 08:11:07 debian11 opennms[24106]: INFO: HV000001: Hibernate Validator 4.3.2.Final
Zu diesem Zeitpunkt ist OpenNMS gestartet und lauscht auf Port 8980. Du kannst das mit dem folgenden Befehl überprüfen:
ss -antpl | grep 8980
Du erhältst die folgende Ausgabe:
LISTEN 0 50 *:8980 *:* users:(("java",pid=24106,fd=1046))
Nginx als Reverse Proxy für OpenNMS konfigurieren
Als Nächstes empfiehlt es sich, Nginx als Reverse Proxy für OpenNMS zu installieren und zu konfigurieren. Installiere zunächst den Nginx-Server mit dem folgenden Befehl:
apt-get install nginx -y
Sobald Nginx installiert ist, erstellst du eine Konfigurationsdatei für den virtuellen Nginx-Host:
nano /etc/nginx/conf.d/opennms.conf
Füge die folgende Konfiguration hinzu:
server { listen 80; server_name opennms.example.com; 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://nms.hacc.edu/; proxy_pass http://server-ip:8980; } }
Speichere und schließe die Datei und überprüfe den Nginx auf Syntaxfehler:
nginx -t
Du erhältst die folgende Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starte anschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Um den Betriebsstatus von Nginx zu überprüfen, führe folgenden Befehl aus:
systemctl status nginx
Du solltest die folgende Ausgabe sehen:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-11-28 08:17:14 UTC; 6s ago Docs: man:nginx(8) Process: 25964 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 25965 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 25967 (nginx) Tasks: 3 (limit: 4679) Memory: 3.2M CPU: 53ms CGroup: /system.slice/nginx.service ??25967 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ??25968 nginx: worker process ??25969 nginx: worker process Nov 28 08:17:14 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server... Nov 28 08:17:14 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.
Zugriff auf OpenNMS Dashboard
Öffne nun deinen Webbrowser und rufe die OpenNMS-Weboberfläche über die URL http://opennms.example.com auf. Du solltest die OpenNMS-Anmeldeseite sehen:
Gib den Standard-Benutzernamen und das Passwort admin ein und klicke auf die Schaltfläche Login. Auf dem folgenden Bildschirm solltest du das OpenNMS-Dashboard sehen:
Klicke nun auf admin > Passwort ändern, um das Standardpasswort für den Administrator zu ändern (siehe unten):
Ändere dein Standardpasswort und klicke auf die Schaltfläche Senden. Du solltest den folgenden Bildschirm sehen:
Fazit
Herzlichen Glückwunsch! Du hast OpenNMS mit Nginx als Reverse Proxy erfolgreich auf einem Debian 11 Server installiert. Jetzt kannst du die entfernten Geräte zu OpenNMS hinzufügen und sie über den Webbrowser überwachen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.