Umbrales básicos y avanzados en NMIS9

Umbrales básicos y avanzados en NMIS9

NMIS incluye potentes funciones para configurar diferentes umbrales de rendimiento y operativa, que mejoran considerablemente las capacidades de gestión de red. Estos umbrales generan alertas, eventos y notificaciones que NMIS puede enviar al detectar un incumplimiento. Los umbrales cuentan con controles muy granulares, configurados de forma bastante amplia por defecto.

Un ejemplo sencillo de esto es que probablemente necesite recibir notificaciones cuando la CPU esté alta en un dispositivo Core, a diferencia de un conmutador de acceso en otra ubicación. Esto forma parte del concepto de NMIS sobre la relevancia de la información en general: no todos los dispositivos son iguales; algunos requieren de alertas especificas.

Si simplemente desea modificar y agregar nuevos umbrales, lea la primera sección "Uso de la GUI de NMIS para configurar umbrales", la segunda sección "Acerca de los controles de umbrales" brinda más detalles sobre los umbrales.

 



Uso de la GUI de NMIS para configurar umbrales

Acceda a la GUI de modelos NMIS

Acceda a la interfaz gráfica de usuario haciendo clic en el menú "Sistema -> Configuración del sistema -> Modelos NMIS". El widget "Modelos NMIS" se mostrará como se muestra a continuación. Este formulario es grande, por lo que al hacer clic en el botón "EXPANDER", se mostrará en su propia pestaña/ventana del navegador.

O bien se puede acceder desde el menú “Setup -> Thresholding Alert Tuning y de igual forma se abrirá el formulario pero mostrando todos los campos en la misma pagina.

Ejemplo de NMIS

image-20250620-214647.png

 

Ejemplo de NMIS

image-20250620-214931.png

 

Modificación de umbrales en threshold ya existentes

Seleccione la sección a modificar

He seleccionado Common-threshold.nmis para editar, ahora simplemente buscamos el "elemento" cuyo umbral queremos cambiar.

 

Seleccione el umbral para agregar una selección controlada

En este ejemplo, agregaremos una sección de selección, que se controlará para que funcione solo en un dispositivo específico llamado "meatball" y la interfaz es "Dialer1". Para ello, tomaremos el umbral en la primera posición y editaremos el control. Esto se debe a que estas selecciones se ejecutan en orden y necesitamos que la nuestra sea la primera; es como una lista de acceso en un router o firewall. Agregaremos otra en la posición 10 cuando terminemos. También actualizaré los modelos predeterminados para que tengan espacios en los órdenes.

Edición del control

Ahora simplemente cambiamos el control para que sea la cadena "$node eq "meatball" y $ifDescr eq "Dialer1"" y hacemos clic en "Editar".

Un nuevo control está disponible

Ahora podemos ajustar los umbrales haciendo clic en "editar" en el que queremos cambiar,

Cambiar un umbral

Cambiemos el warning al 65%, luego hagamos clic en "Editar".

Umbral de advertencia actualizado

Ahora el nivel de warning está establecido en 65%.

Aplicación de los umbrales

Los umbrales se ejecutarán en el siguiente ciclo de sondeo o cuando se hayan configurado para ejecutarse. Puede ejecutarlos a demanda desde la línea de comandos con el siguiente comando (meatball es mi enrutador, así que cámbielo según el nombre de su dispositivo).

Además de ejecutar un perl -c en consola al archivo que se ha modificado para asegurar que la sintaxis esté correcta, en este caso al archivo Common-threshold.nmis:

/usr/local/nmis9/bin/nmis-cli act=schedule job.type=update job.node=meatball job.verbosity=9 job.force=true debug=9 /ruta/del/archivo/perl -c Common-threshold.nmis

Agregar un nuevo bloque de selección

Ahora necesitamos volver a agregar el que tomamos al principio. Para ello, añadimos un nuevo bloque de selección y hacemos clic en "Agregar".

Estableciendo el orden y los umbrales

Voy a configurar este como 10, sucederá después de los demás pero antes del predeterminado, complete todos los detalles que necesita en el formulario y haga clic en "Editar".

Agregar un control

Ahora necesitamos agregar un campo de control, así que en la nueva sección de selección 10, haga clic en agregar

Complete los detalles en el control "$ifSpeed ​​<= 5000000 y $ifSpeed ​​>= 1000000" y haga clic en agregar.

Se agregó nueva selección de umbral

Ahora tenemos el antiguo umbral que tomamos al principio, creado nuevamente, listo para el umbral de baja velocidad.

 

Creación de un nuevo threshold con umbrales y controles diferentes.

Seleccione el modelo al que se agregara el nuevo threshold

Nota: antes de modificar un archivo vía UI, se recomienda generar un backup del mismo. Por defecto, los archivos originales están en la carpeta /usr/local/nmis9/models-default/, si es la primera vez que se va a editar, se recomienda generar una copia hacia /usr/local/nmis9/models-custom, aplicar un fixperms (/usr/local/nmis9/bin/nmis-cli act=fixperms) y después de eso regresar a la UI a realizar la configuración correspondiente.  Si el archivo ya está en /usr/local/nmis9/models-custom, generar un backup en esa carpeta.

Agregando el nuevo threshold

Para generar un nuevo threshold y agregarlo al archivo Common-threshold-test.nmis (este archivo es de ejemplo), dar click en “add” en la columna indicada en la siguiente imagen:

image-20250625-215002.png

Deberá de aparecer el siguiente formulario:

image-20250625-215057.png

En este ejemplo, se configura el order “default”, para el evento “Proactive CPU Test”, utilizando el item correspondiente “percentProcessor” y que el roleType del equipo sea “core”.

Roles predeterminados

 Nota: los roleType predeterminados para usar en este ejemplo son los siguientes:

image-20250625-215139.png

 

 

 

 

Estos son los que pueden usarse para este ejemplo.

Nuevo threshold creado

Ya que se crea el nuevo threshold se puede buscar en el en archivo Common-threshold-test.nmis y se vería así:

image-20250625-215236.png

 

 

 

 

 

 

 

 

En la UI, se verá la sección que se ha creado de la siguiente forma:

image-20250625-215338.png

Agregando mas umbrales diferentes al threshold creado

Para agregar en ese mismo threshold umbrales diferentes para otro tipo de roleType, primero se da click en “add” en la fila de “select”:

image-20250625-215414.png

Llenar el formulario con los umbrales requeridos. En el campo “order” se coloca un número de identificación para dar un orden (se recomienda de 5 en 5 o de 10 en 10), en este caso se agrega el número “10”. Al finalizar, dar click en add:

image-20250625-215449.png

Creando control para los nuevos umbrales

Ya que aparece la sección creada, se agrega el control  para el roleType distinto, dando click en “add” de la línea “10” que acabamos de generar:

image-20250625-215536.png

En el formulario se coloca la expresión del nuevo control y damos click en “Add” para que se agregue:

image-20250625-215612.png

Con esto se generarán dos controles para la misma alerta, pero con diferentes roleType y umbrales:

image-20250625-215646.png

 

Acerca de los controles de umbral

Umbrales simples

En NMIS, un umbral simple se define de la siguiente manera:

  • el nombre

  • el nombre del evento (que debe comenzar con la frase " Proactive" para un manejo correcto del evento)

  • una selección (con un valor predeterminado y opcionalmente más)

  • valores de umbral predeterminados

En el archivo /usr/local/nmis9/models-custom/Common-threshold.nmis esto se ve así:

'cpu' => { 'item' => 'avgBusy5min', 'event' => 'Proactive CPU', 'select' => { 'default' => { 'value' => { 'critical' => '70', 'fatal' => '80', 'minor' => '50', 'warning' => '40', 'major' => '60' } } } },

Tener un conjunto de umbrales para el núcleo de la CPU

Pero los dispositivos Core son más sensibles a la carga de la CPU. Por eso, queremos usar un conjunto diferente de valores de umbral. Algo como:

  • 'critical' => '60',

  • 'fatal' => '70',

  • 'minor' => '40',

  • 'warning' => '30',

  • 'major' => '50'

¿Pero cómo hacer que esto se aplique sólo a los dispositivos Core?

Umbrales avanzados con controles

Por ejemplo, diferentes umbrales para dispositivos centrales. Consultar los umbrales comunes te dará algunas ideas, pero puedes agregar muchas "selecciones" y tener propiedades como:

  • $name

  • $node

  • $host

  • $group

  • $roleType

  • $nodeModel

  • $nodeType

  • $nodeVendor

  • $sysDescr

  • $sysObjectName

  • others for interface

  • Almost unlimited possibilities.

De esta forma podemos crear un umbral más específico para los dispositivos principales (NMIS ya lo tiene configurado de forma predeterminada).

'cpu' => { 'item' => 'avgBusy5min', 'event' => 'Proactive CPU', 'select' => { '10' => { 'value' => { 'critical' => '60', 'fatal' => '70', 'minor' => '40', 'warning' => '30', 'major' => '50' }, 'control' => '$roleType =~ /core/' }, --snip-- 'default' => { 'value' => { 'critical' => '70', 'fatal' => '80', 'minor' => '50', 'warning' => '40', 'major' => '60' } } } },

Estos se ejecutan en el orden de selección y, si no coincide ningún control, se utiliza el conjunto predeterminado.

Opciones de control avanzadas

Las siguientes son las opciones de control disponibles

Propiedades del nodo:

  • $name

  • $node

  • $host

  • $group

  • $roleType

  • $nodeModel

  • $nodeType

  • $nodeVendor

  • $sysDescr

  • $sysObjectName



Objetos indexados como interfaces

  • $ifAlias

  • $Description

  • $ifDescr

  • $ifType

  • $ifSpeed

  • $ifMaxOctets

  • $maxBytes

  • $maxPackets

  • $entPhysicalDescr

Objetos indexados recientemente agregados en NMIS

  • $hrStorageDescr 

  • $hrStorageType 

  • $hrStorageUnits (disk block size)  

  • $hrStorageSize (disk size in blocks) 

  • $hrStorageUsed (disk used in blocks) 

  • $hrDiskSize  (disk size in bytes, hrStorageSize * hrStorageUnits)

  • $hrDiskUsed (disk used in bytes, hrStorageUsed * hrStorageUnits) 

  • $hrDiskFree (disk free in bytes) 

Controles de muestra

Los controles son pequeños fragmentos de código que se evaluarán cuando sea necesario, por lo que es posible que desees hacer los siguientes tipos de evaluaciones.



Result

Control

Result

Control

Apply the threshold to all devices in the group "Sales"

$group eq "Sales"

Apply the threshold to all devices starting with the IP address 192.168

$host =~ /192\.168/

Apply the threshold to all Cisco IOS devices

$sysDescr =~ /Cisco IOS/

Use this threshold if the interface speed is between 1 and 5 megabits/second

$ifSpeed <= 5000000 and $ifSpeed >= 1000000

Use this threshold if the interface speed is 10 megabits

$ifSpeed == 10000000

Use this threshold if the interface speed is 100 megabits

$ifSpeed == 100000000

Use this threshold if the interface speed is 1 gigabits

$ifSpeed == 1000000000

Use this threshold if the disk is larger than 100 gigabytes

$hrDiskSize >= 104857600000