Netzwerküberwachung · 7 min read · Oct 10, 2025

OpenNMS auf Alma Linux 8 installieren und konfigurieren

OpenNMS ist eine kostenlose und Open-Source-Plattform zur Netzwerküberwachung und -verwaltung, die in Java geschrieben ist. Es ist selbst gehostet und wird von einer Gemeinschaft von Benutzern, Entwicklern und der OpenNMS-Gruppe entwickelt. OpenNMS ermöglicht es Ihnen, alles in Ihren lokalen und entfernten Netzwerken zu überwachen, einschließlich Leistung, Verkehrsüberwachung, Bereitstellung, Dienstüberwachung, Ereignisverwaltung, Diagrammunterstützung und mehr. OpenNMS verwendet SNPM und JMX, um Informationen von entfernten Hosts zu sammeln.

Dieser Beitrag zeigt Ihnen, wie Sie OpenNMS mit Nginx auf Alma Linux 8 installieren.

Voraussetzungen

  • Ein Server, der Alma Linux 8 ausführt.
  • Ein gültiger Domainname, der auf Ihre Server-IP verweist.
  • Ein Root-Passwort, das auf dem Server konfiguriert ist.

Java JDK installieren

OpenNMS ist eine Java-basierte Anwendung. Daher muss das Java JDK auf Ihrem Server installiert sein. Sie können es installieren, indem Sie den folgenden Befehl ausführen:

dnf install java-11-openjdk -y

Sobald Java installiert ist, können Sie die Java-Installation mit dem folgenden Befehl überprüfen:

java --version

Sie erhalten die folgende Ausgabe:

openjdk 11.0.13 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

OpenNMS auf Alma Linux 8 installieren

Standardmäßig ist OpenNMS nicht im Standard-Repo von Alma Linux enthalten. Daher müssen Sie das offizielle OpenNMS-Repo zu Ihrem System hinzufügen.

Sie können das OpenNMS-Repo und den GPG-Schlüssel hinzufügen, indem Sie den folgenden Befehl ausführen:

dnf install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm  
rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY

Als Nächstes installieren Sie OpenNMS, indem Sie den folgenden Befehl ausführen:

dnf install opennms -y

Dies installiert auch den PostgreSQL-Server auf Ihrem Server.

Ändern Sie als Nächstes das Verzeichnis zu OpenNMS und initialisieren Sie die PostgreSQL-Datenbank mit dem folgenden Befehl:

cd /opt/opennms  
postgresql-setup initdb

Starten und aktivieren Sie schließlich den PostgreSQL-Dienst mit dem folgenden Befehl:

systemctl start postgresql  
systemctl enable postgresql

Sie können jetzt den Status von PostgreSQL mit dem folgenden Befehl überprüfen:

systemctl status postgresql

Sie erhalten die folgende Ausgabe:

? postgresql.service - PostgreSQL-Datenbankserver
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-01-15 13:34:47 UTC; 5s ago
  Process: 7305 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 7307 (postmaster)
    Tasks: 8 (limit: 11411)
   Memory: 15.9M
   CGroup: /system.slice/postgresql.service
           ??7307 /usr/bin/postmaster -D /var/lib/pgsql/data
           ??7309 postgres: logger process   
           ??7311 postgres: checkpointer process   
           ??7312 postgres: writer process   
           ??7313 postgres: wal writer process   
           ??7314 postgres: autovacuum launcher process   
           ??7315 postgres: stats collector process   
           ??7316 postgres: bgworker: logical replication launcher   

Jan 15 13:34:47 almalinux8 systemd[1]: Starting PostgreSQL-Datenbankserver...
Jan 15 13:34:47 almalinux8 postmaster[7307]: 2022-01-15 13:34:47.618 UTC [7307] LOG:  listening on IPv6 address "::1", port 5432
Jan 15 13:34:47 almalinux8 postmaster[7307]: 2022-01-15 13:34:47.618 UTC [7307] LOG:  listening on IPv4 address "127.0.0.1", port 5432

PostgreSQL für OpenNMS konfigurieren

Als Nächstes müssen Sie eine Datenbank und einen Benutzer für OpenNMS erstellen.

Zuerst melden Sie sich mit dem folgenden Befehl bei PostgreSQL an:

su - postgres -c "psql -U postgres"

Ändern Sie als Nächstes das Passwort für Postgres mit dem folgenden Befehl:

alter user postgres with password 'mypassword';

Erstellen Sie als Nächstes eine Datenbank und einen Benutzer für OpenNMS mit dem folgenden Befehl:

createuser -P opennms  
createdb -O opennms opennms

Verlassen Sie als Nächstes die PostgreSQL-Shell mit dem folgenden Befehl:


ewline

Bearbeiten Sie als Nächstes die PostgreSQL-Konfigurationsdatei mit dem folgenden Befehl:

nano /var/lib/pgsql/data/pg_hba.conf

Suchen Sie die folgenden Zeilen:

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

Und ersetzen Sie sie durch die folgenden Zeilen:

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

Laden Sie schließlich den PostgreSQL-Dienst neu, um die Konfigurationsänderungen anzuwenden:

systemctl reload postgresql

OpenNMS konfigurieren

Als Nächstes müssen Sie die Konfigurationsdatei der OpenNMS-Datenquelle bearbeiten und Ihre Datenbank definieren:

nano /opt/opennms/etc/opennms-datasources.xml

Ändern Sie die folgenden Zeilen, die Ihren Datenbankanmeldeinformationen entsprechen:




Speichern und schließen Sie die Datei und führen Sie dann den folgenden Befehl aus, um den Java-Pfad zu erkennen:

/opt/opennms/bin/runjava -s

Sie erhalten 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-11.0.13.0.8-4.el8_5.x86_64/bin/java".
runjava: Value of "/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java" stored in configuration file.

Führen Sie als Nächstes den folgenden Befehl aus, um die Datenbank zu initialisieren und die Systembibliotheken zu erkennen:

/opt/opennms/bin/install -dis

Sie erhalten die folgende Ausgabe:

- Running pre-execution phase
  Creating backup of /opt/opennms/etc/service-configuration.xml
    Zipping /opt/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 /opt/opennms/etc/service-configuration.xml.zip

Finished in 0 seconds
Upgrade completed successfully!

Starten und aktivieren Sie schließlich den OpenNMS-Dienst mit dem folgenden Befehl:

systemctl start opennms  
systemctl enable opennms

Sie können den Status von OpenNMS mit dem folgenden Befehl überprüfen:

systemctl status opennms

Sie erhalten die folgende Ausgabe:

? opennms.service - OpenNMS-Server
   Loaded: loaded (/usr/lib/systemd/system/opennms.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-01-15 13:39:33 UTC; 6s ago
  Process: 8638 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS)
 Main PID: 9722 (java)
    Tasks: 36 (limit: 11411)
   Memory: 181.2M
   CGroup: /system.slice/opennms.service
           ??9721 bash /etc/init.d/opennms -s start
           ??9722 /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,ja>

Jan 15 13:39:22 almalinux8 systemd[1]: Starting OpenNMS server...
Jan 15 13:39:32 almalinux8 systemd[1]: opennms.service: Can't open PID file /opt/opennms/logs/opennms.pid (yet?) after start: No such file or>
Jan 15 13:39:33 almalinux8 systemd[1]: opennms.service: Supervising process 9722 which is not our child. We'll most likely not notice when it>
Jan 15 13:39:33 almalinux8 systemd[1]: Started OpenNMS server.

An diesem Punkt ist OpenNMS gestartet und hört auf Port 8980. Sie können dies mit dem folgenden Befehl überprüfen:

ss -antpl | grep 8980

Sie erhalten die folgende Ausgabe:

LISTEN 0      50                      *:8980             *:*    users:(("java",pid=9722,fd=1031))   

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Nginx als Reverse-Proxy für OpenNMS konfigurieren

Als Nächstes müssen Sie Nginx installieren und als Reverse-Proxy für OpenNMS konfigurieren. Dazu installieren Sie den Nginx-Server mit dem folgenden Befehl:

dnf install nginx -y

Sobald Nginx installiert ist, erstellen Sie eine Nginx-virtuelle Host-Konfigurationsdatei:

nano /etc/nginx/conf.d/opennms.conf

Fügen Sie die folgenden Zeilen hinzu:

upstream opennms {
  server 127.0.0.1:8980;
}

server {
    listen 80;
    server_name opennms.example.com;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://opennms/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

Speichern und schließen Sie die Datei und überprüfen Sie die Nginx-Konfiguration mit dem folgenden Befehl:

ginx -t

Sie erhalten die folgende Ausgabe:

nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
ginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich

Starten und aktivieren Sie als Nächstes den Nginx-Dienst, damit er beim Systemneustart startet:

systemctl start nginx  
systemctl enable nginx

Sie können jetzt den Status von Nginx mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie erhalten die folgende Ausgabe:

? nginx.service - Der nginx HTTP- und Reverse-Proxy-Server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-01-15 13:44:05 UTC; 6s ago
  Process: 13489 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 13488 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 13486 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 13491 (nginx)
    Tasks: 2 (limit: 11411)
   Memory: 3.7M
   CGroup: /system.slice/nginx.service
           ??13491 nginx: master process /usr/sbin/nginx
           ??13492 nginx: worker process

Jan 15 13:44:05 almalinux8 systemd[1]: Starting Der nginx HTTP- und Reverse-Proxy-Server...
Jan 15 13:44:05 almalinux8 nginx[13488]: nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
Jan 15 13:44:05 almalinux8 nginx[13488]: nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich
Jan 15 13:44:05 almalinux8 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jan 15 13:44:05 almalinux8 systemd[1]: Started Der nginx HTTP- und Reverse-Proxy-Server.

Firewall konfigurieren

Als Nächstes müssen Sie den Port 80 durch die Firewall zulassen. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

firebase-cmd --add-service=http --permanent

Laden Sie als Nächstes die Firewall neu, um die Änderungen anzuwenden:

firebase-cmd --reload

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf die OpenNMS-Weboberfläche

Öffnen Sie jetzt Ihren Webbrowser und greifen Sie auf die OpenNMS-Weboberfläche über die URL http://opennms.example.com zu. Sie erhalten den Anmeldebildschirm von OpenNMS:

Geben Sie den Standard-Admin-Benutzernamen und das Passwort als admin/admin ein und klicken Sie auf die Schaltfläche Anmelden. Sie erhalten das OpenNMS-Dashboard auf dem folgenden Bildschirm:

Klicken Sie nun auf die Schaltfläche admin => Passwort ändern, um das Standardpasswort wie unten gezeigt zu ändern:

Ändern Sie Ihr Standardpasswort und klicken Sie auf die Schaltfläche Absenden. Sie erhalten den folgenden Bildschirm:

Fazit

Herzlichen Glückwunsch! Sie haben OpenNMS erfolgreich mit Nginx auf Alma Linux 8 installiert. Sie können jetzt die entfernten Hosts vom OpenNMS-Dashboard aus hinzufügen und sie von einem zentralen Standort aus überwachen. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.