Installation · 8 min read · Oct 10, 2025

Installer et configurer OpenNMS sur Alma Linux 8

OpenNMS est une plateforme de surveillance et de gestion de réseau gratuite et open-source écrite en Java. Elle est auto-hébergée et développée par une communauté d’utilisateurs, de développeurs et le groupe OpenNMS. OpenNMS vous permet de surveiller tout sur vos réseaux locaux et distants, y compris la performance, la surveillance du trafic, le provisionnement, la surveillance des services, la gestion des événements, le support des graphiques, et plus encore. OpenNMS utilise SNPM et JMX pour recueillir les informations des hôtes distants.

Cet article vous montrera comment installer OpenNMS avec Nginx sur Alma Linux 8.

Prérequis

  • Un serveur exécutant Alma Linux 8.
  • Un nom de domaine valide pointé vers l’IP de votre serveur.
  • Un mot de passe root configuré sur le serveur.

Installer Java JDK

OpenNMS est une application basée sur Java. Donc, Java JDK doit être installé sur votre serveur. Vous pouvez l’installer en exécutant la commande suivante :

dnf install java-11-openjdk -y

Une fois Java installé, vous pouvez vérifier l’installation de Java en utilisant la commande ci-dessous :

java --version

Vous obtiendrez la sortie suivante :

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)

Installer OpenNMS sur Alma Linux 8

Par défaut, OpenNMS n’est pas inclus dans le dépôt par défaut d’Alma Linux. Vous devrez donc ajouter le dépôt officiel d’OpenNMS à votre système.

Vous pouvez ajouter le dépôt OpenNMS et la clé GPG en exécutant la commande suivante :

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

Ensuite, installez OpenNMS en exécutant la commande suivante :

dnf install opennms -y

Cela installera également le serveur PostgreSQL sur votre serveur.

Ensuite, changez le répertoire vers OpenNMS et initialisez la base de données PostgreSQL avec la commande suivante :

cd /opt/opennms  
postgresql-setup initdb

Enfin, démarrez et activez le service PostgreSQL avec la commande suivante :

systemctl start postgresql  
systemctl enable postgresql

Vous pouvez maintenant vérifier l’état de PostgreSQL avec la commande suivante :

systemctl status postgresql

Vous obtiendrez la sortie suivante :

? postgresql.service - Serveur de base de données PostgreSQL
   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 database server...
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

Configurer PostgreSQL pour OpenNMS

Ensuite, vous devrez créer une base de données et un utilisateur pour OpenNMS.

Tout d’abord, connectez-vous à PostgreSQL avec la commande suivante :

su - postgres -c "psql -U postgres"

Ensuite, changez le mot de passe Postgres avec la commande suivante :

alter user postgres with password 'mypassword';

Ensuite, créez une base de données et un utilisateur pour OpenNMS avec la commande suivante :

createuser -P opennms  
createdb -O opennms opennms

Ensuite, quittez le shell PostgreSQL avec la commande suivante :

\q

Ensuite, éditez le fichier de configuration de PostgreSQL avec la commande suivante :

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

Trouvez les lignes suivantes :

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

Et remplacez-les par les lignes suivantes :

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

Enfin, rechargez le service PostgreSQL pour appliquer les modifications de configuration :

systemctl reload postgresql

Configurer OpenNMS

Ensuite, vous devrez éditer le fichier de configuration de la source de données OpenNMS et définir votre base de données :

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

Changez les lignes suivantes pour correspondre à vos identifiants de base de données :




Enregistrez et fermez le fichier, puis exécutez la commande suivante pour détecter le chemin Java :

/opt/opennms/bin/runjava -s

Vous obtiendrez la sortie suivante :

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.

Ensuite, exécutez la commande suivante pour initialiser la base de données et détecter les bibliothèques système :

/opt/opennms/bin/install -dis

Vous obtiendrez la sortie suivante :

- 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!

Enfin, démarrez et activez le service OpenNMS avec la commande suivante :

systemctl start opennms  
systemctl enable opennms

Vous pouvez vérifier l’état d’OpenNMS avec la commande suivante :

systemctl status opennms

Vous obtiendrez la sortie suivante :

? opennms.service - Serveur OpenNMS
   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.

À ce stade, OpenNMS est démarré et écoute sur le port 8980. Vous pouvez le vérifier avec la commande suivante :

ss -antpl | grep 8980

Vous obtiendrez la sortie suivante :

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

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Configurer Nginx comme proxy inverse pour OpenNMS

Ensuite, vous devrez installer Nginx et le configurer comme proxy inverse pour OpenNMS. Pour ce faire, installez le serveur Nginx avec la commande suivante :

dnf install nginx -y

Une fois Nginx installé, créez un fichier de configuration d’hôte virtuel Nginx :

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

Ajoutez les lignes suivantes :

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;
    }
}

Enregistrez et fermez le fichier, puis vérifiez la configuration de Nginx avec la commande suivante :

ginx -t

Vous obtiendrez la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, démarrez et activez le service Nginx pour qu’il démarre au démarrage du système :

systemctl start nginx  
systemctl enable nginx

Vous pouvez maintenant vérifier l’état de Nginx avec la commande suivante :

systemctl status nginx

Vous obtiendrez la sortie suivante :

? nginx.service - Le serveur HTTP et proxy inverse nginx
   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 Le serveur HTTP et proxy inverse nginx...
Jan 15 13:44:05 almalinux8 nginx[13488]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 15 13:44:05 almalinux8 nginx[13488]: nginx: configuration file /etc/nginx/nginx.conf test is successful
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 Le serveur HTTP et proxy inverse nginx.

Configurer le pare-feu

Ensuite, vous devrez autoriser le port 80 à travers le pare-feu. Vous pouvez l’autoriser en exécutant la commande suivante :

firewall-cmd --add-service=http --permanent

Ensuite, rechargez le pare-feu pour appliquer les modifications :

firewall-cmd --reload

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Accéder à l’interface Web d’OpenNMS

Maintenant, ouvrez votre navigateur Web et accédez à l’interface Web d’OpenNMS en utilisant l’URL http://opennms.example.com. Vous obtiendrez l’écran de connexion d’OpenNMS :

Fournissez le nom d’utilisateur et le mot de passe administrateur par défaut comme admin/admin et cliquez sur le bouton Connexion. Vous obtiendrez le tableau de bord d’OpenNMS sur l’écran suivant :

Maintenant, cliquez sur le bouton admin => Changer le mot de passe pour changer le mot de passe par défaut comme indiqué ci-dessous :

Changez votre mot de passe par défaut et cliquez sur le bouton Soumettre. Vous obtiendrez l’écran suivant :

Conclusion

Félicitations ! vous avez réussi à installer OpenNMS avec Nginx sur Alma Linux 8. Vous pouvez maintenant ajouter les hôtes distants depuis le tableau de bord d’OpenNMS et commencer à les surveiller depuis un emplacement central. N’hésitez pas à me poser des questions si vous en avez.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.