Versions Compared

Key

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

...

3- Implementación de un nuevo dispositivo (II)

System Section

Hemos agregado una nueva métrica a la sección nodeHealth, pero a veces necesitamos agregar nuevos conceptos al modelo de dispositivo y crear sus propios archivos RRD.

...

Estos son alguno de los valores disponibles en RRD para personalizar las gráficas;

Nombre

Formato

PRINT

vname:format[:strftime|:valstrftime|:valstrfduration]

GPRINT

vname:format

COMMENT

Text

LINE

[width]:value[#color][:[legend][:STACK][:skipscale][:dashes[=on_s[,off_s[,on_s,off_s]...]][:dash-offset=offset]]]

AREA

value[#color][:[legend][:STACK][:skipscale]]

TICK

vname#rrggbb[aa][:fraction[:legend]]

TEXTALIGN

:{left|right|justified|center}

SHIFT

vname:offset

4- Implementación de Umbrales y Alertas

Introduction al Thresholding

NMIS8 incluye potentes funciones para el rendimiento y umbral operativo, que mejoran en gran medida las facultades de gestión de la red. Estos umbrales o  thresholds dan como resultado alertas / eventos / notificaciones que NMIS puede enviar cuando ve cumpla sobrepase algún limite establecido. Los umbrales tienen controles muy granulares que, por defecto, se han configurado de manera bastante amplia.

Consideraciones e implementación de Umbrales

Consideraciones

El threshold se puede conseguir con los siguientes pasos:

...

Para probarlo, ejecutamos "nmis.pl type=thresholds", y verificamos que los eventos se hayan creado. Después de eso, restablecemos el valor a su estado anterior, ejecutándose una vez más "nmis.pl type=thresholds", el evento debería cerrarse ahora.

Standard Thresholds (Comunes)

NMIS incluye un conjunto de thresholds estándar que se asocian comúnmente a algunos proveedores. Este es un resumen de estos thresholds.

...

Nombre del ThresholdEventoProveedor
availableProactive Interface AvailabilityCommon for all Vendors
calls_utilProactive Calls UtilisationCisco
ccpuProactive CPUCisco
cpuProactive CPUCisco (the most common for Cisco devices)
cpuUtilProactive CPUAlcatel, Zyxel
cpu_cpmProactive CPUCisco
env_tempProactive TempCisco, Zyxel
hrsmpcpuProactive CPUMicrosoft
jnx_bufferProactive Buffer UtilisationJuniper
jnx_cpuProactive CPUJuniper
jnx_heapProactive Heap UtilisationJuniper
jnx_tempProactive TempJuniper
mem-procProactive Memory FreeCisco
memUtilProactive Memory UtilisationAlcatel, Zyxel
modem_deadProactive Dead ModemCisco
modem_unavProactive Modem UtilisationCisco
pkt_discards_inProactive Interface Discards Input PacketsCommon for all Vendors
pkt_discards_outProactive Interface Discards Output PacketsCommon for all Vendors
pkt_errors_inProactive Interface Error Input PacketsCommon for all Vendors
pkt_errors_outProactive Interface Error Output PacketsCommon for all Vendors
reachableProactive ReachabilityCommon for all Vendors
responseProactive Response TimeCommon for all Vendors
ssCpuRawIdleProactive CPU IO Idlenet-snmp (Linux, Solaris, etc)
ssCpuRawSystemProactive CPU IO Systemnet-snmp (Linux, Solaris, etc)
ssCpuRawUserProactive CPU IO Usernet-snmp (Linux, Solaris, etc)
ssCpuRawWaitProactive CPU IO Waitnet-snmp (Linux, Solaris, etc)
util_inProactive Interface Input UtilisationCommon for all Vendors
util_outProactive Interface Output UtilisationCommon for all Vendors

Crear Thresholds (Detallado)

Archivos

Los archivos que deben de ser modificados son:

...

### Model-Some-Switch.nmis

%hash = (

'systemHealth' => {

'rrd' => {

'<charlie>' => {

'graphtype' => '<bravo>',

'indexed' => 'true',

'threshold' => '<alpha>'

'snmp' => {

'<delta>' => {

'oid' => 'hrProcessorLoad',

'option' => 'gauge,0:U'

}

}

}

}

}

)

### Common-threshold.nmis

%hash = (

'threshold' => {

'name' => {

'<alpha>' => {

'item' => '<echo>',

'event' => 'Proactive CPU',

'select' => {

'default' => {

'value' => {

'fatal' => '90'

'critical' => '80',

'major' => '70',

'minor' => '60',

'warning' => '50'

}

}

}

}

}

}

)

### Common-database.nmis

'<charlie>' => '/nodes/$node/health/<charlie>-$index.rrd',

### Common-stats.nmis

%hash = (

'stats' => {

'type' => {

'<charlie>' => {

'DEF:<echo>=$database:<delta>:AVERAGE',

'PRINT:<echo>:AVERAGE:<echo>=%1.0f',

}

}

}

)

### Common-heading.nmis

'<bravo>' => 'Processor Load',

...

5. Implementación de umbrales de NMIS (II)

Thresholds Simples y Avanzados

Thresholds Simples

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

...

Pero, ¿cómo hacer que esto solo se aplique a los Core Devices?

...

Controles Avanzados en el Thresholding

Por ejemplo, diferentes thresholds para Core Devices. Revisar en Common-thresholds le dará algunas idea de como se aplican, pero se pueden agregar muchas "selecciones" y tener propiedades como:

...

Resultado

Control

Usar este threshold si la velocidad de la interface se encuentra entre 1 y 5 megabits/segundo

$ifSpeed <= 50000 and $ifSpeed >= 10000

Usar este threshold si la velocidad de la interface es de 100 megabits

$ifSpeed == 100000000

Usar este threshold si la velocidad de la interface es de 10 megabits

$ifSpeed == 10000000

Usar este threshold si la velocidad de la interface es de 1 gigabits

$ifSpeed == 1000000000

Usar este threshold si el tamaño del disco es mayor a 100 gigaytes

$hrDiskSize >= 104857600000

Usar este threshold para todos los dispositivos con dirección IP 192.168

$host =~ /192\.168/

Usar este threshold para todos los dispositivos en el grupo "Sales"

$group eq "Sales"

Usar este threshold para todos los dispositivos Cisco IOS

$sysDescr =~ /Cisco IOS/


Alertas

...

Alertas Basicas

...

Básicas

Una alerta es un evento personalizado generado al testear el valor de una OID o de una variable personalizada y producir un resultado booleano (verdadero o falso). Si el test devuelve "verdadero", se genera un evento y se ejecutará a través del sistema de escalado, falso no generará una alerta. Más tarde, cuando el test que resulto en "verdadero",  devuelve ahora "falso", el evento se cerrara.

...

  • 'value' => 'CVAR1=hrSWRunPerfMem;$CVAR1 * 1': Define como el valor que activa la alerta debe ser reportado y mostrado en la GUI.
  • 'unit' => 'KBytes': La unidad con la que se mostrará el valor anterior.
  • 'element' => 'hrSWRunName': El OID / valor que genera la alerta, un descriptor o identificador. En este caso, muestra el nombre del proceso que tiene un uso elevado de memoria.
  • 'event' => 'High Process Memory Usage': Establece el nombre del evento generado por la alerta.
  • 'level' => 'Warning': Nivel con el que se activará el evento. Cuando se usa thresholding, esto no se aplica ya que el propio threshold definen el nivel.

Variables personalizadas

Tenga en cuenta que en las versiones de NMIS anteriores a 8.6 solo se puede usar una variable personalizada en el test expression conocida como CVAR. Esta limitación se ha eliminado en NMIS 8.6, esta limitación nunca se aplicó a las expresiones de valor o control.

...

CVAR2=ifAlias; "$CVAR2" =~ /some description/ 

Thresholding VS Alertas

Cuándo usarlas

Ejecutando un modelo

Depuración de modelado de dispositivos

Herramientas para trabajar con modelos: Tools for Working with NMIS Models

...

Depurando un Threshold

Veamos un ejemplo:

./nmis.pl type=threshold debug=1 node=thor

Code Block
22:51:26 init, info of node=thor loaded
22:51:26 init, no loading of cfg of node=thor
22:51:26 init, loading model Model-net-snmp for node thor
22:51:26 loadModel, INFO, model Model-net-snmp loaded (from cache)
22:51:26 doThreshold, Starting Thresholding node=thor
22:51:26 runThrHld, WORKING ON Threshold for thrname=response,reachable,available type=health item=
22:51:26 runThrHld, Found Configured Threshold for health, changing to "-4 hours"
22:51:26 getSummaryStats, Start type=health, index=, start=-4 hours, end=now
22:51:26 getFileName, filename of type=health is /data/database8/nodes/thor/health/reach.rrd
22:51:26 getDBName, returning database name=/data/database8/nodes/thor/health/reach.rrd for sect=health, index=, item=
22:51:26 runThrHld, processing threshold response
22:51:26 getThresholdLevel, Start threshold=response, index= item=
22:51:26 getThresholdLevel, found threshold=response entry=default
22:51:26 getThresholdLevel, threshold=response, item=response, value=0.01
22:51:26 getThresholdLevel, result threshold=response, level=Normal, value=0.01, thrvalue=150, reset=150
22:51:26 thresholdProcess, Proactive Response Time, Normal, , value=0.01 reset=150

Threshold y escalados

Las alertas y los umbrales generan eventos que tienen un estado: Este evento esta abierto hasta que la alerta o el umbral vuelve a un valor dentro de los limites. 

Una vez que tenemos un evento, podemos definir realizar un escalado, un mecanismo que nos permite establecer notificaciones de manera flexible basada en cuanto tiempo lleva el evento abierto. 

Los escalados en NMIS se realizan en dos localizaciones para configurar los niveles y las acciones. 

La primera es en System > System Configuration > NMIS Configuration > Escalations, que almacena la configuración en el fichero Config.nmis. Aquí es donde se guardan los niveles de escalado. Un nivel de escalado relaciona una cantidad de tiempo con un nombre. Asi, por ejemplo, el nivel de escalado por defecto escalate0 ocurre inmediatamente (A los 0 segundos). Escalate1 se lanza a los 300 segundos, y así sucesivamente. Los nombres y los tiempos se pueden configurar. 

Las acciones se configuran en System > System Configuration > Escalations. Aqui es donde NMIS va a ver que debería de ocurrir cuando un evento se lanza y como se va a tratar en el tiempo. 

6. Conceptos Adicionales

Thresholding VS Alertas

Una alerta es un evento personalizado generado por un test que evalúa un OID o una variable y produce un resultado verdadero o falso.

Si el test devuelve verdadero, se genera un evento que recorrerá el sistema de escalado.

Después, cuando el test devuelva falso, el evento sera eliminado.

Un threshold es un umbral que compara los datos de rendimiento con una tabla de valores predeterminados. Estos, resultan en alertas, eventos y notificaciones.

Diferencias

Alertas

Evalúa un único valor como verdadero o falso. Cuando el test se evalúa cómo falso > Se dispara la alerta.

Son comparaciones simples, de un valor que se obtiene tras el collect.

Un simple valor, sin valores históricos, ni estadísticas, ni matemáticas.

Thresholds

Evalúan una tabla de valores con un valor previamente almacenado (Una media de valores recolectados).

Utilizan estadisticas, por defecto, los valores de los últimos 15 minutos (Pero se puede configurar).

Depuración de modelado de dispositivos

  1. Despues de cambiar el modelo, efectuar un update y un collect para el dispositivo en el que estas trabajando: 


Image Added


  1. Utilizando la opción model=true visualizara una salida muy útil para asistir en lo que se esta recolectando y si hay algún error: 

Image Added

Herramientas para trabajar con Modelado

Herramientas para trabajar con modelos: Tools for Working with NMIS Models

Trabajando con Multiples nodos y modelos

Tools for Working with NMIS Models

7- Modelado Avanzado

Opciones de modelado avanzado

...