Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tools for Working with NMIS Models

7- Modelado Avanzado (I)

Introducción al modelado avanzado

  1. Hay ocasiones en las que vamos a modelar un dispositivo o en alguna situación donde colectar una variable simple SNMP no es suficiente. 
  2. Por ejemplo, cuando las propiedades SNMP se necesitan combinar para proporcionar una medida significativa.
  3. A partir de la version de NMIS 8.4.8G, se soportan opciones de modelado avanzado, como puede ser el uso de variables avanzadas, o CVARs. 

Opciones de modelado avanzado

Regex OID

Control

Calculate

...

Control

El control nos permite incluir una condición booleana para definir si una variable si va a collectar. 

Calculate

Nos permite preprocesar un valor antes de guardarlo. 

Replace

El resultado de la colección se puede reemplazar por un valor dado de una tabla de búsqueda predefinida. En este caso, el valor 1 o 0 será reemplazado por la cadena "sí" o "no".

...

Tenga en cuenta que la configuración de nosave desactiva las alertas para el objeto dado.

index_regex - Regex OID

Used in the "SystemHealth" section, allows multi-element indexing: normally SNMP tables are indexed by the last, single numeric OID component. When NMIS does an update on a indexed entity, it iterates through all the known values for this index component and records them. This iteration does not work if the index consists of more than one number, as it does on certain equipment. In such cases you can set index_regex to a value that captures the OID components that vary between table elements. For example,

...

  • en test expressions y valor en el subsistema de alerta y thresholds de NMIS,
  • para calcular expresiones en el subsistema de modelado en general,
  • y desde NMIS versión 8.6 en adelante, también en expresiones de control en cualquier lugar (en versiones anteriores solo se soportaba un CVAR único como control).

...

Un ejemplo

El MIB DS3 define una variedad de contadores de errores para circuitos DS3 como "dsx3CurrentLCVs" que se basan en un intervalo de observación de 15 minutos y se reinician automáticamente al final del intervalo. Como el intervalo de inicio y finalización es arbitrario y depende del dispositivo que se establezca, simplemente capturar los contadores de errores en sí mismos no es factible. Sin embargo, la MIB de DS3 también especifica la variable "dsx3TimeElapsed" que contiene los segundos transcurridos desde el inicio del intervalo de observación actual. Al dividir el contador de errores sin procesar por el número de segundos en el intervalo, se obtiene una tasa normalizada de errores por segundo que funciona bien para la recopilación y la visualización.

...

En el ejemplo anterior, hrNumUsers se obtiene con SNMP, y se podrían definir otras variables en términos de CVAR3 = hrNumUsers, pero hrNumUsers no se guardará.

...

8- Modelado Avanzado (II)

Operación de

...

Plugins en

...

NMIS 8

NMIS8 Plugins will run for any node which is active, but logically a plugin needs to be able to know what type of node it is operating on. Plugins will generally include early in the code a statement to look for a specific model type and if the model is of a type interesting to it, it will perform its duties, otherwise it will skip (return nothing).

Los plugins de NMIS8 se ejecutarán para cualquier nodo que esté activo, pero lógicamente un plugin necesita poder saber en qué tipo de nodo está operando. Los plugins generalmente incluirán al principio del código una declaración para buscar un tipo de modelo específico y si el modelo es de un tipo interesante para él, realizará sus tareas, de lo contrario se saltará (no devolverá nada).

Para tener un nodo "API Only", el mejor método es establecer "node" a "true" y "To have an API Only node, the best method is to set active to true, and ping, collect, collect_snmp and y collect_wmi to false and manually change the model from "automatic" to be the name of the model which will be used by the plugin. Because there is no data provided by the device we do not know how to automatically discover how to talk to the device, NMIS needs a little nudge to know how to talk to the device. You can see an example of this with the CiscoMerakiCloud and CiscoViptelaCloud models and plugins, which work with Cisco Meraki and " a "false" y cambiar manualmente el modelo de "automático" al nombre del modelo que sera utilizado por el plugin.

Debido a que el dispositivo no proporciona datos, no sabemos cómo descubrir automáticamente cómo comunicarnos con el dispositivo, NMIS necesita un pequeño empujón. Puede ver un ejemplo de esto con los modelos y plugins CiscoMerakiCloud y CiscoViptelaCloud, que funcionan con Cisco Meraki y Cisco SDN WAN (Viptela) respectivelyrespectivamente.

Los plugins de NMIS8 se ejecutarán para cualquier nodo que esté activo, pero lógicamente un plugin necesita poder saber en qué tipo de nodo está operando. Los plugins generalmente incluirán al principio del código una declaración para buscar un tipo de modelo específico y si el modelo es de un tipo interesante para él, realizará sus tareas, de lo contrario se saltará (no devolverá nada).

Para tener un nodo "API Only", el mejor método es establecer "node" a "true" y "ping, collect, collect_snmp y collect_wmi" a "false" y cambiar manualmente el modelo de "automático" al nombre del modelo que sera utilizado por el plugin.

Debido a que el dispositivo no proporciona datos, no sabemos cómo descubrir automáticamente cómo comunicarnos con el dispositivo, NMIS necesita un pequeño empujón. Puede ver un ejemplo de esto con los modelos y plugins CiscoMerakiCloud y CiscoViptelaCloud, que funcionan con Cisco Meraki y Cisco SDN WAN (Viptela) respectivamente.

Intro (Conceptos)

...

Creación de Plugins Básicos

  1. Las funciones collect_plugin y update_plugin pueden ser llamadas de forma secuencia por cada nodo, independientemente (Y posiblemente en procesos separados), para ejecutarse al final de la operación de collect y update, respectivamente. 
  2. Todos los plugins existentes serán cargados, y todas las funciones disponibles que se hayan definido en update_plugin y collect_plugin se aplicaran a cada nodo, independientemente de si el plugin ha terminado de forma satisfactoria o no. 

La interfaz a invocar es la misma para ambas funciones: 

    1. Sub update_plugin(node => nodename, sys => objeto sys en modo lectura/escritura, config => El objeto con la configuración de NMIS en modo solo lectura).
    2. Sub collect_plugin(node => nodename, sys => objeto sys en modo lectura/escritura, config => El objeto con la configuración de NMIS en modo solo lectura).

Valores de retorno: 

  • (0 o undef, el resto se ignora): Significa que no se han realizado cambios, o que el plugin declino finalizar la ejecución. Por ejemplo, si el nodo no encontro un match para el modelo. 
  • (1, el resto se ignora): Significa que se hicieron cambios al objeto sys, para que nmis pueda saberlo y guardar la información del nodo (nodeinfo) y los componentes de la vista. 
  • (2, lista de mensajes de error): Significa que el plugin a fallado su trabajo, y NMIS debería de registrar los mensajes de error. No se guardara la información de nodeinfo o de la vista del nodo. 

Ejemplos

******* Use CMD8TEMP plugin as example ( https://support.opmantek.com/browse/SUPPORT-6061)

Configuracion de poleo de NMIS 8

Versiones NMIS hasta NMIS 8.6.7G inclusive

...

Polling Description

active

ping

collect

collect_snmp

collect_wmi

services

Regular node polling, the node will be ICMP polled and will have SNMP and WMI (if credentials configured) data collected

true

true

true

true

true

will be polled if configured

SNMP or WMI Only Node, the not will have SNMP collected but ICMP polling will not be performed.

true

false

true

true

true

will be polled if configured

Ping Only Node, the node will only be polled using ICMP.

true

true

false

false

false

will be polled if configured

Service Only Node, the node will only have services collected if they are configured.

true

false

false

false

false

will be polled if configured

API Only Node, the node will use plugins to collect data, no other polling will be done, except services if configured.

true

false

false

false

false

will be polled if configured

Node is NOT active and NMIS will mostly ignore the node.

false

N/A

N/A

N/A

N/A

N/A

Model Policy

NMIS 8.6 introduced a new mechanism for adjusting a model's behaviour for particular nodes: the Model Policy system. In version 8.6.0G it allows you to specify flexible rules for adding or removing systemHealth model sections for specific nodes (or groups of nodes).

...