OpenNMS è una piattaforma gratuita, open source e una delle più potenti per il monitoraggio della rete e la 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 all'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, verifica 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
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 riceverai 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.
Crea 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
Quindi, connettiti all'istanza PostgreSQL usando il seguente comando:
su - postgres
Una volta connesso, crea un utente per OpenNMS e imposta una password usando 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 di PostgreSQL con il seguente comando:
exit
Una volta terminato, puoi procedere al passaggio successivo.
Configura OpenNMS
Successivamente, dovrai modificare il file dell'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!
Avvia il servizio OpenNMS
Dopo aver configurato OpenNMS, avvia il servizio OpenNMS e abilitalo all'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.VersionNov 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
Quindi, riavvia il servizio Nginx per applicare le modifiche:
systemctl restart nginx
Per controllare lo stato di esecuzione di Nginx, esegui 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 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 su Accedi pulsante. Dovresti vedere la dashboard di OpenNMS nella schermata seguente:
Ora, fai clic su admin> Modifica password per modificare la password amministratore predefinita come mostrato di seguito:
Modifica la password predefinita e fai clic su Invia pulsante. 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. Sentiti libero di chiedermi se hai domande.