OpenNMS est une plate-forme de surveillance et de gestion de réseau gratuite et open-source utilisée pour gérer les réseaux d'entreprise dans le monde entier. Il est basé sur Java et est conçu pour gérer des milliers d'appareils à partir d'un emplacement central. Il a la capacité de découvrir et de surveiller automatiquement les services ou les nœuds de votre réseau.
Caractéristiques
- Prend en charge SNMP, JMX, WMI, NPRE, NSCLient++ et XMP
- Architecture axée sur les événements
- Prend en charge la surveillance des appareils et des applications
- Découverte de typologie et panne de chemin
- Configurer et exécuter des moniteurs de service
- Prend en charge les topologies de réseau de couche 2 et de couche 3
Dans ce tutoriel, nous allons vous montrer comment installer et configurer OpenNMS sur le serveur CentOS 8.
Prérequis
- Un serveur exécutant CentOS 8.
- Un mot de passe root est configuré sur le serveur.
Mise en route
OpenNMS est une application basée sur Java. Vous devrez donc installer Java sur votre système. Vous pouvez l'installer avec d'autres packages requis en exécutant la commande suivante :
dnf install java-11-openjdk-devel curl unzip -y
Après avoir installé Java, vous pouvez vérifier la version de Java avec la commande suivante :
java -version
Vous devriez obtenir le résultat suivant :
openjdk version "11.0.9" 2020-10-20 LTS OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer OpenNMS
Par défaut, OpenNMS n'est pas disponible dans le référentiel par défaut de CentOS 8. Vous devrez donc ajouter le référentiel OpenNMS à votre système.
Tout d'abord, ajoutez la clé GPG avec la commande suivante :
rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY
Une fois la clé GPG ajoutée, exécutez la commande suivante pour ajouter le dépôt OpenNMS.
dnf install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm
Ensuite, vous pouvez installer OpenNMS en exécutant la commande suivante :
dnf install opennms -y
Cela installera OpenNMS, PostgreSQL et d'autres packages sur votre serveur.
Configurer PostgreSQL
OpenNMS utilise PostgreSQL comme backend de base de données. Vous pouvez initialiser la base de données PostgreSQL avec la commande suivante :
postgresql-setup --initdb --unit postgresql
Vous devriez obtenir le résultat suivant :
* Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
Ensuite, démarrez le service PostgreSQL et autorisez-le à démarrer au redémarrage du système avec la commande suivante :
systemctl enable postgresql
systemctl start postgresql
Ensuite, vous devrez créer une base de données et un utilisateur pour PostgreSQL.
Tout d'abord, connectez-vous à PostgreSQL avec la commande suivante :
su - postgres
Une fois connecté, créez un utilisateur avec la commande suivante :
[[email protected] ~]$ createuser -P opennms
Il vous sera demandé de définir un mot de passe comme indiqué ci-dessous :
Enter password for new role: Enter it again:
Créez ensuite une base de données avec la commande suivante :
[[email protected] ~]$ createdb -O opennms opennms
Ensuite, définissez le mot de passe pour l'utilisateur PostgreSQL avec la commande suivante :
[[email protected] ~]$ psql -c "ALTER USER postgres WITH PASSWORD 'password';"
Ensuite, quittez le shell PostgreSQL avec la commande suivante :
[[email protected] ~]$ exit;
Ensuite, vous devrez modifier la politique d'accès pour PostgreSQL. Vous pouvez le faire en éditant le fichier /var/lib/pgsql/data/pg_hba.conf :
nano /var/lib/pgsql/data/pg_hba.conf
Recherchez les lignes suivantes :
# IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
Et les remplacer par les lignes suivantes :
host all all 127.0.0.1/32 md5 host all all ::1/128 md5
Enregistrez et fermez le fichier puis redémarrez le service PostgreSQL pour appliquer les modifications :
systemctl restart postgresql
Ensuite, vous devrez définir votre base de données dans le fichier /opt/opennms/etc/opennms-datasources.xml.
nano /opt/opennms/etc/opennms-datasources.xml
Modifiez les lignes suivantes qui correspondent à votre base de données :
<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="password" />
Enregistrez et fermez le fichier lorsque vous avez terminé.
Initialiser et démarrer OpenNMS
Ensuite, vous devrez initialiser OpenNMS. Commencez par ajouter les paramètres Java avec la commande suivante :
/opt/opennms/bin/runjava -s
Vous devriez obtenir le résultat suivant :
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.9.11-0.el8_2.x86_64/bin/java". runjava: Value of "/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java" stored in configuration file.
Ensuite, initialisez la base de données en exécutant la commande suivante :
/opt/opennms/bin/install -dis
Ensuite, activez OpenNMS pour qu'il démarre au redémarrage du système avec la commande suivante :
systemctl enable --now opennms
Vous devriez obtenir le résultat suivant :
Synchronizing state of opennms.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable opennms Created symlink /etc/systemd/system/multi-user.target.wants/opennms.service → /usr/lib/systemd/system/opennms.service.
Maintenant, vous pouvez vérifier l'état du service OpenNMS avec la commande suivante :
systemctl status opennms
Vous devriez obtenir le résultat suivant :
? opennms.service - OpenNMS server Loaded: loaded (/usr/lib/systemd/system/opennms.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2020-11-25 09:21:32 EST; 13s ago Process: 26880 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS) Main PID: 27928 (java) Tasks: 67 (limit: 12523) Memory: 555.6M CGroup: /system.slice/opennms.service ??27927 bash /etc/init.d/opennms -s start ??27928 /usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,java> Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so. Attempting to load ji> Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library. Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so. Attempting to load ji> Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library. Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib64/libjicmp6.so. Attempting to load > Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp6 library. Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so. Attempting to load ji> Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library. Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib64/libjicmp6.so. Attempting to load > Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp6 library.
À 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 devriez obtenir le résultat suivant :
LISTEN 0 50 *:8980 *:* users:(("java",pid=27928,fd=988))
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer SELinux et le pare-feu
Par défaut, SELinux est activé sur le serveur CentOS 8. Vous devrez donc d'abord le désactiver. Vous pouvez le désactiver en éditant le fichier /etc/selinux/config :
nano /etc/selinux/config
Recherchez la ligne suivante :
SELINUX=enforcing
Et remplacez-le par la ligne suivante :
SELINUX=permissive
Enregistrez et fermez le fichier, puis redémarrez le système pour appliquer les modifications.
Ensuite, autorisez le port 8980 via firewalld avec la commande suivante :
firewall-cmd --permanent --add-port=8980/tcp
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 OpenNMS
Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web OpenNMS en utilisant l'URL http://your-server-ip:8980/opennms . Vous serez redirigé vers la page de connexion OpenNMS :
Indiquez le nom d'utilisateur par défaut de l'administrateur en tant qu'administrateur et le mot de passe en tant qu'administrateur, puis cliquez sur Connexion bouton. Vous devriez voir la page suivante :
Cliquez sur Opt-in pour envoyer des statistiques d'utilisation anonymes à OpenNMS. Vous devriez voir le tableau de bord OpenNMS sur la page suivante :
Cliquez sur Admin => Modifier le mot de passe pour changer le mot de passe par défaut. Vous devriez voir la page suivante :
Modifiez votre mot de passe par défaut et cliquez sur Soumettre bouton. Vous devriez voir la page suivante :
Cliquez sur le + icône pour ajouter le nouvel hôte. Vous devriez voir la page suivante :
Indiquez le nom de la nouvelle demande et cliquez sur OK bouton. Vous devriez voir la page suivante :
Fournissez les détails de votre hôte distant et cliquez sur Provision bouton. Une fois l'hôte ajouté, vous devriez voir la page suivante :
Maintenant, cliquez sur Info => Nœuds . Vous devriez obtenir des informations détaillées sur l'hôte distant sur la page suivante :
Conclusion
Toutes nos félicitations! vous avez installé avec succès OpenNMS sur le serveur CentOS 8. Vous pouvez désormais ajouter un nombre illimité d'hôtes et de périphériques réseau à OpenNMS et commencer la surveillance à partir de l'emplacement central.