Come installare il sistema di monitoraggio della rete OpenNMS Horizon su Debian 11

2 feb 2022 6 min di lettura
Come installare il sistema di monitoraggio della rete OpenNMS Horizon su Debian 11
Indice dei contenuti

Introduzione

OpenNMS è una piattaforma gratuita, open source e una delle più potenti piattaforme di monitoraggio e gestione della rete utilizzata per monitorare i dispositivi remoti da una posizione centrale. Supporta molte funzionalità tra cui provisioning, monitoraggio dei servizi, gestione degli eventi, supporto grafico e altro ancora. OpenNMS utilizza SNMP e JMX e raccoglie informazioni da sistemi remoti. Funziona su sistemi operativi Linux e Windows e fornisce un'interfaccia basata sul Web per un facile monitoraggio.

In questo tutorial, ti mostrerò come installare OpenNMS su Debian 11.

Prerequisiti

  • Un server che esegue Debian 11.
  • Un nome di dominio valido puntato con l'IP del tuo server.
  • Una password di root è configurata sul server.

Installare Java su Debian 11

OpenNMS è un'applicazione basata su Java. Quindi Java deve essere installato sul tuo server. Se non è installato puoi installarlo eseguendo il seguente comando:

apt-get install default-jdk -y

Una volta installato Java, verificare la versione Java utilizzando il comando seguente:

java --version

Otterrai la versione Java nel seguente output:

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)

Installare OpenNMS su Debian 11

Per impostazione predefinita, OpenNMS non è incluso nel repository principale di Debian 11. Quindi dovrai aggiungere il repository ufficiale di OpenNMS all'APT.

Innanzitutto, installa tutte le dipendenze richieste utilizzando il comando seguente:

apt-get install curl gnupg2 wget -y

Una volta installati tutti i pacchetti, creare un file di repository OpenNMS utilizzando il comando seguente:

nano /etc/apt/sources.list.d/opennms.list

Aggiungi le seguenti righe:

deb https://debian.opennms.org stable main
deb-src https://debian.opennms.org stable main

Salva e chiudi il file quindi importa la chiave GPG con il seguente comando:

wget -O - https://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add -

Otterrai il seguente output:

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

Quindi, aggiorna la cache del repository e installa OpenNMS con il seguente comando:

apt-get update -y
apt-get install opennms -y

Durante l'installazione verrà visualizzato il seguente errore:

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.

Per risolvere questo errore, dovrai creare un database e un utente per OpenNMS in PostgreSQL.

Creare un database in PostgreSQL

Server PostgreSQL installato automaticamente durante il processo di installazione di OpenNMS.

Innanzitutto, avvia il servizio PostgreSQL utilizzando il comando seguente:

systemctl start postgresql

Quindi, connettiti all'istanza PostgreSQL usando il comando seguente:

su - postgres

Una volta connesso, crea un utente per OpenNMS e imposta una password utilizzando il seguente comando:

createuser opennms
psql -c "ALTER USER opennms WITH PASSWORD 'opennms';"

Quindi, crea un database per OpenNMS e imposta una password per l'utente postgres:

createdb -O opennms opennms
psql -c "ALTER USER postgres WITH PASSWORD 'securepassword';"

Quindi, esci dalla shell PostgreSQL con il seguente comando:

exit

Una volta terminato, puoi procedere al passaggio successivo.

Configurare OpenNMS

Successivamente, dovrai modificare il file di origine dati OpenNMS e definire le credenziali del database:

nano /usr/share/opennms/etc/opennms-datasources.xml

Definisci le credenziali del tuo database come mostrato di seguito:

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

Salva e chiudi il file al termine, quindi esegui il seguente comando per rilevare l'ambiente Java:

sudo -u opennms /usr/share/opennms/bin/runjava -s

Otterrai il seguente output:

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.

Quindi, esegui il comando seguente per completare la configurazione di OpenNMS:

sudo -u opennms /usr/share/opennms/bin/install -dis

Otterrai il seguente output:

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!

Avviare il servizio OpenNMS

Dopo aver configurato OpenNMS, avviare il servizio OpenNMS e consentirne l'avvio al riavvio del sistema utilizzando il comando seguente:

systemctl start opennms
systemctl enable opennms

È possibile verificare lo stato di OpenNMS utilizzando il comando seguente:

systemctl status opennms

Otterrai il seguente output:

? 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

A questo punto OpenNMS viene avviato ed è in ascolto sulla porta 8980. Puoi verificarlo con il seguente comando:

ss -antpl | grep 8980

Otterrai il seguente output:

LISTEN 0      50                      *:8980             *:*    users:(("java",pid=24106,fd=1046))  

Configurare Nginx come proxy inverso per OpenNMS

Successivamente, si consiglia di installare e configurare Nginx come proxy inverso per OpenNMS. Innanzitutto, installa il server Nginx con il seguente comando:

apt-get install nginx -y

Una volta installato Nginx, crea un file di configurazione dell'host virtuale Nginx:

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

Aggiungi la seguente configurazione:

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;

  }
}

Salva e chiudi il file, quindi verifica Nginx per eventuali errori di configurazione della sintassi:

nginx -t

Otterrai il seguente output:

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

Quindi, riavvia il servizio Nginx per applicare le modifiche:

systemctl restart nginx

Per controllare lo stato di esecuzione di Nginx, eseguire il comando seguente:

systemctl status nginx

Dovresti vedere il seguente output:

? 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.

Accedere al dashboard di OpenNMS

Ora apri il tuo browser web e accedi all'interfaccia web di OpenNMS utilizzando l'URL http://opennms.example.com. Dovresti vedere la pagina di accesso di OpenNMS.

Fornisci nome utente e password predefiniti come amministratore e fai clic sul pulsante Accedi. Dovresti vedere la dashboard di OpenNMS.

Ora, fai clic su Amministratore > Modifica password per modificare la password amministratore predefinita.

Modifica la password predefinita e fai clic sul pulsante Invia.

Conclusione

Congratulazioni! hai installato con successo OpenNMS con Nginx come proxy inverso sul server Debian 11. Ora puoi aggiungere i dispositivi remoti a OpenNMS e iniziare a monitorarli dal browser web. Sentiti libero di chiedermi se hai domande.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.