Ricerca nel sito web

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


Su questa pagina

  1. Prerequisiti
  2. Installa Java su Debian 11
  3. Installa OpenNMS su Debian 11
  4. Crea un database in PostgreSQL
  5. Configura OpenNMS
  6. Avvia il servizio OpenNMS
  7. Configura Nginx come proxy inverso per OpenNMS
  8. Accedi alla dashboard di OpenNMS
  9. Conclusione

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 dei grafici 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 indicato con l'IP del tuo server.
  • Sul server è configurata una password di root.

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

Installa 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 seguente comando:

apt-get install curl gnupg2 wget -y

Una volta installati tutti i pacchetti, crea 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

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

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

Si otterrà il seguente errore durante l'installazione:

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 seguente comando:

systemctl start postgresql

Successivamente, connettiti all'istanza PostgreSQL utilizzando il seguente comando:

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';"

Successivamente, 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';"

Successivamente, esci dalla shell PostgreSQL con il seguente comando:

exit

Una volta terminato, puoi procedere al passaggio successivo.

Configura OpenNMS

Successivamente, dovrai modificare il file di origine dati OpenNMS e definire le credenziali del tuo 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 quando hai finito, 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.

Successivamente, esegui il seguente comando per completare l'installazione 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!

Avvia il servizio OpenNMS

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

systemctl start opennms
systemctl enable opennms

Puoi verificare lo stato di OpenNMS usando il seguente comando:

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

Configura 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

Successivamente, riavvia il servizio Nginx per applicare le modifiche:

systemctl restart nginx

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

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.

Accedi alla 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:

Fornire nome utente e password predefiniti come admin e fare clic sul pulsante Accedi. Dovresti vedere la dashboard di OpenNMS nella schermata seguente:

Ora, fai clic su admin> Cambia password per modificare la password amministratore predefinita come mostrato di seguito:

Modifica la password predefinita e fai clic sul pulsante Invia. Dovresti vedere la seguente schermata:

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. Non esitate a chiedermi se avete domande.