Cómo instalar la herramienta de monitorización de red OpenNMS en CentOS 8

OpenNMS es una plataforma de monitorización y gestión de redes, gratuita y de código abierto, que se utiliza para gestionar redes empresariales en todo el mundo. Se basa en Java y está diseñada para gestionar miles de dispositivos desde una ubicación central. Tiene la capacidad de descubrir y supervisar los servicios o nodos automáticamente en tu red.

Características

  • Soporta SNMP, JMX, WMI, NPRE, NSCLient++ y XMP
  • Arquitectura basada en eventos
  • Soporta la monitorización de dispositivos y aplicaciones
  • Descubrimiento de la tipología y la interrupción de la ruta
  • Configura y ejecuta monitores de servicio
  • Soporta Topologías de Red de Capa 2 y Capa 3

En este tutorial, te mostraremos cómo instalar y configurar OpenNMS en un servidor CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada el servidor.

Cómo empezar

OpenNMS es una aplicación basada en Java. Por tanto, necesitarás instalar Java en tu sistema. Puedes instalarlo con otros paquetes necesarios ejecutando el siguiente comando:

dnf install java-11-openjdk-devel curl unzip -y

Después de instalar Java, puedes verificar la versión de java con el siguiente comando:

java -version

Deberías obtener la siguiente salida:

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)

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar OpenNMS

Por defecto, OpenNMS no está disponible en el repositorio por defecto de CentOS 8. Así que tendrás que añadir el repositorio de OpenNMS a tu sistema.

Primero, añade la clave GPG con el siguiente comando:

rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY

Una vez añadida la clave GPG, ejecuta el siguiente comando para añadir el repositorio de OpenNMS.

dnf install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm

A continuación, puedes instalar el OpenNMS ejecutando el siguiente comando:

dnf install opennms -y

Esto instalará OpenNMS, PostgreSQL y otros paquetes en tu servidor.

Configurar PostgreSQL

OpenNMS utiliza PostgreSQL como base de datos. Puedes inicializar la base de datos PostgreSQL con el siguiente comando:

postgresql-setup --initdb --unit postgresql

Deberías obtener la siguiente salida:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

A continuación, inicia el servicio PostgreSQL y habilítalo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl enable postgresql
systemctl start postgresql

A continuación, tendrás que crear una base de datos y un usuario para PostgreSQL.

En primer lugar, inicia sesión en el PostgreSQL con el siguiente comando:

su - postgres

Una vez iniciada la sesión, crea un usuario con el siguiente comando:

[postgres@centos8 ~]$ createuser -P opennms

Se te pedirá que establezcas una contraseña como se muestra a continuación:

Enter password for new role: 
Enter it again: 

A continuación, crea una base de datos con el siguiente comando:

[postgres@centos8 ~]$ createdb -O opennms opennms

A continuación, establece la contraseña del usuario PostgreSQL con el siguiente comando;

[postgres@centos8 ~]$ psql -c "ALTER USER postgres WITH PASSWORD 'password';"

A continuación, sal del shell de PostgreSQL con el siguiente comando

[postgres@centos8 ~]$ exit;

A continuación, tendrás que modificar la política de acceso para PostgreSQL. Puedes hacerlo editando el archivo /var/lib/pgsql/data/pg_hba.conf:

nano /var/lib/pgsql/data/pg_hba.conf

Busca las siguientes líneas:

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Y, sustitúyelas por las siguientes líneas:

host    all             all             127.0.0.1/32            md5 
host    all             all             ::1/128                 md5

Guarda y cierra el archivo y luego reinicia el servicio PostgreSQL para aplicar los cambios:

systemctl restart postgresql

A continuación, tendrás que definir tu base de datos en el archivo /opt/opennms/etc/opennms-datasources.xml.

nano /opt/opennms/etc/opennms-datasources.xml

Cambia las siguientes líneas que coincidan con tu base de datos:

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

Guarda y cierra el archivo cuando hayas terminado.

Inicializar e iniciar OpenNMS

A continuación, tendrás que inicializar OpenNMS. Primero, añade la configuración de Java con el siguiente comando:

/opt/opennms/bin/runjava -s

Deberías obtener 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.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.

A continuación, inicializa la base de datos ejecutando el siguiente comando:

/opt/opennms/bin/install -dis

A continuación, habilita el OpenNMS para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl enable --now opennms

Deberías obtener la siguiente salida:

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.

Ahora, puedes comprobar el estado del servicio OpenNMS con el siguiente comando:

systemctl status opennms

Deberías obtener la siguiente salida:

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

En este momento, OpenNMS está iniciado y escuchando en el puerto 8980. Puedes comprobarlo con el siguiente comando:

ss -antpl | grep :8980

Deberías obtener la siguiente salida:

LISTEN   0        50                          *:8980                   *:*       users:(("java",pid=27928,fd=988)) 

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar SELinux y el cortafuegos

Por defecto, SELinux está activado en el servidor CentOS 8. Así que primero tendrás que desactivarlo. Puedes desactivarlo editando el archivo /etc/selinux/config:

nano /etc/selinux/config

Busca la siguiente línea:

SELINUX=enforcing

Y, sustitúyela por la siguiente línea:

SELINUX=permissive

Guarda y cierra el archivo y luego reinicia el sistema para aplicar los cambios.

A continuación, permite el puerto 8980 a través de firewalld con el siguiente comando

firewall-cmd --permanent --add-port=8980/tcp

A continuación, recarga el firewalld para aplicar los cambios:

firewall-cmd --reload

Una vez que hayas terminado, puedes pasar al siguiente paso.

Accede a la interfaz web de OpenNMS

Ahora, abre tu navegador web y accede a la interfaz web de OpenNMS utilizando la URL http://your-server-ip:8980/opennms. Serás redirigido a la página de inicio de sesión de OpenNMS:

OpenNMS

Proporciona el nombre de usuario por defecto como admin y la contraseña como admin y luego haz clic en el botón de inicio de sesión. Deberías ver la siguiente página:

Iniciar sesión en OpenNMS

Haz clic en el botón « Aceptar» para enviar las estadísticas de uso anónimo a OpenNMS. Deberías ver el panel de control de OpenNMS en la siguiente página:

Panel de control de openNMS

Haz clic en el botón Admin => Cambiar contraseña para cambiar la contraseña por defecto. Deberías ver la siguiente página:

Cambiar la contraseña de administrador

Cambia la contraseña por defecto y haz clic en el botón Enviar. Deberías ver la siguiente página:

La contraseña se ha cambiado con éxito

Haz clic en el icono + para añadir el nuevo host. Deberías ver la siguiente página:

Añadir un nuevo host a la monitorización de openNMS

Proporciona el nombre de la nueva solicitud y haz clic en el botón Aceptar. Deberías ver la siguiente página:

Añadir nodo

Detalles del dispositivo

Proporciona los detalles de tu host remoto y haz clic en el botón Aprovisionar. Una vez añadido el host, deberías ver la siguiente página:

Nuevo nodo añadido con éxito

Ahora, haz clic en Información => Nodos. Deberías obtener información detallada del host remoto en la siguiente página:

Nodo de monitorización de OpenNMS

Conclusión

Enhorabuena! has instalado con éxito OpenNMS en el servidor CentOS 8. Ahora puedes añadir un número ilimitado de hosts y dispositivos de red al OpenNMS y empezar a monitorizar desde la ubicación central.

También te podría gustar...