Instalación OpenNMS · 7 min read · Oct 10, 2025
Instalar y Configurar OpenNMS en Alma Linux 8

OpenNMS es una plataforma de monitoreo y gestión de redes gratuita y de código abierto escrita en Java. Es autoalojada y desarrollada por una comunidad de usuarios, desarrolladores y el OpenNMS Group. OpenNMS te permite monitorear todo en tus redes locales y remotas, incluyendo rendimiento, monitoreo de tráfico, aprovisionamiento, monitoreo de servicios, gestión de eventos, soporte de gráficos y más. OpenNMS utiliza SNPM y JMX para recopilar la información de los hosts remotos.
Esta publicación te mostrará cómo instalar OpenNMS con Nginx en Alma Linux 8.
Prerrequisitos
- Un servidor que ejecute Alma Linux 8.
- Un nombre de dominio válido apuntado a la IP de tu servidor.
- Una contraseña de root configurada en el servidor.
Instalar Java JDK
OpenNMS es una aplicación basada en Java. Por lo tanto, Java JDK debe estar instalado en tu servidor. Puedes instalarlo ejecutando el siguiente comando:
dnf install java-11-openjdk -yUna vez que Java esté instalado, puedes verificar la instalación de Java utilizando el siguiente comando:
java --versionObtendrás la siguiente salida:
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)
Instalar OpenNMS en Alma Linux 8
Por defecto, OpenNMS no está incluido en el repositorio predeterminado de Alma Linux. Por lo tanto, necesitarás agregar el repositorio oficial de OpenNMS a tu sistema.
Puedes agregar el repositorio de OpenNMS y la clave GPG ejecutando el siguiente comando:
dnf install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm
rpm --import https://yum.opennms.org/OPENNMS-GPG-KEYA continuación, instala OpenNMS ejecutando el siguiente comando:
dnf install opennms -yEsto también instalará el servidor PostgreSQL en tu servidor.
A continuación, cambia el directorio a OpenNMS e inicializa la base de datos de PostgreSQL con el siguiente comando:
cd /opt/opennms
postgresql-setup initdbFinalmente, inicia y habilita el servicio de PostgreSQL con el siguiente comando:
systemctl start postgresql
systemctl enable postgresqlAhora puedes verificar el estado de PostgreSQL con el siguiente comando:
systemctl status postgresqlObtendrás la siguiente salida:
? postgresql.service - Servidor de base de datos 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
Configurar PostgreSQL para OpenNMS
A continuación, necesitarás crear una base de datos y un usuario para OpenNMS.
Primero, inicia sesión en PostgreSQL con el siguiente comando:
su - postgres -c "psql -U postgres"A continuación, cambia la contraseña de Postgres con el siguiente comando:
alter user postgres with password 'mypassword';A continuación, crea una base de datos y un usuario para OpenNMS con el siguiente comando:
createuser -P opennms
createdb -O opennms opennmsA continuación, sal de la consola de PostgreSQL con el siguiente comando:
\qA continuación, edita el archivo de configuración de PostgreSQL con el siguiente comando:
nano /var/lib/pgsql/data/pg_hba.confEncuentra las siguientes líneas:
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
Y reemplázalas con las siguientes líneas:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Finalmente, recarga el servicio de PostgreSQL para aplicar los cambios de configuración:
systemctl reload postgresqlConfigurar OpenNMS
A continuación, necesitarás editar el archivo de configuración de la fuente de datos de OpenNMS y definir tu base de datos:
nano /opt/opennms/etc/opennms-datasources.xmlCambia las siguientes líneas que coincidan con tus credenciales de base de datos:
Guarda y cierra el archivo, luego ejecuta el siguiente comando para detectar la ruta de Java:
/opt/opennms/bin/runjava -sObtendrás la siguiente salida:
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.
A continuación, ejecuta el siguiente comando para inicializar la base de datos y detectar las bibliotecas del sistema:
/opt/opennms/bin/install -disObtendrás la siguiente salida:
- 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!
Finalmente, inicia y habilita el servicio de OpenNMS con el siguiente comando:
systemctl start opennms
systemctl enable opennmsPuedes verificar el estado de OpenNMS con el siguiente comando:
systemctl status opennmsObtendrás la siguiente salida:
? opennms.service - Servidor 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.
En este punto, OpenNMS está iniciado y escucha en el puerto 8980. Puedes verificarlo con el siguiente comando:
ss -antpl | grep 8980Obtendrás la siguiente salida:
LISTEN 0 50 *:8980 *:* users:(("java",pid=9722,fd=1031))
Una vez que hayas terminado, puedes proceder al siguiente paso.
Configurar Nginx como Proxy Inverso para OpenNMS
A continuación, necesitarás instalar Nginx y configurarlo como un proxy inverso para OpenNMS. Para hacerlo, instala el servidor Nginx con el siguiente comando:
dnf install nginx -yUna vez que Nginx esté instalado, crea un archivo de configuración de host virtual de Nginx:
nano /etc/nginx/conf.d/opennms.confAgrega las siguientes líneas:
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;
}
}
Guarda y cierra el archivo, luego verifica la configuración de Nginx con el siguiente comando:
ginx -tObtendrás la siguiente salida:
ginx: the configuration file /etc/nginx/nginx.conf syntax is ok
ginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, inicia y habilita el servicio de Nginx para que se inicie al reiniciar el sistema:
systemctl start nginx
systemctl enable nginxAhora puedes verificar el estado de Nginx con el siguiente comando:
systemctl status nginxObtendrás la siguiente salida:
? nginx.service - El servidor HTTP y proxy inverso 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 The nginx HTTP and reverse proxy server...
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 The nginx HTTP and reverse proxy server.
Configurar Firewall
A continuación, necesitarás permitir el puerto 80 a través del firewall. Puedes permitirlo ejecutando el siguiente comando:
firebase-cmd --add-service=http --permanentA continuación, recarga el firewall para aplicar los cambios:
firebase-cmd --reloadUna vez que hayas terminado, puedes proceder al siguiente paso.
Acceder a la Interfaz Web de OpenNMS
Ahora, abre tu navegador web y accede a la interfaz web de OpenNMS utilizando la URL http://opennms.example.com. Obtendrás la pantalla de inicio de sesión de OpenNMS:

Proporciona el nombre de usuario y la contraseña predeterminados como admin/admin y haz clic en el botón Iniciar sesión. Obtendrás el panel de control de OpenNMS en la siguiente pantalla:

Ahora, haz clic en admin => Cambiar Contraseña para cambiar la contraseña predeterminada como se muestra a continuación:

Cambia tu contraseña predeterminada y haz clic en el botón Enviar. Obtendrás la siguiente pantalla:

Conclusión
¡Felicidades! has instalado exitosamente OpenNMS con Nginx en Alma Linux 8. Ahora puedes agregar los hosts remotos desde el panel de control de OpenNMS y comenzar a monitorearlos desde una ubicación central. No dudes en preguntarme si tienes alguna pregunta.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.