Versions Compared

Key

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

...

2- Implementación de un nuevo dispositivo (I)

...

Agregar Modelos propios a NMIS

Como parte de esta capacitación, vamos a implementar nuestro propio modelo juntos, paso a paso, para comprender mejor cómo se realiza el proceso. Ahora que sabemos cómo decodificar una MIB y obtener los datos que necesitamos incorporar al modelo usando snmpwalk, agreguemos un nuevo modelo de dispositivo a NMIS.

...

Tip: Muchos dispositivos ahora usan NET-SNMP como Agente, por ende, es una buena idea copiar un modelo existente y adaptarlo a nuestras necesidades en lugar de crear uno nuevo.

Agregar una nueva métrica al Node Health

Hasta ahora, hemos podido crear nuestro nuevo modelo, ahora es el momento de incorporar nuevas métricas. Es muy común y útil mostrar métricas en Node Health (estado del nodo). Digamos que tenemos un enrutador Cisco y es capaz de proporcionar la cantidad de rutas que ve el enrutador, para simplificar las cosas, vamos a editar un modelo existente para dispositivos Cisco. Como sabemos, se necesita un MIB dump; se puede obtener ejecutando SNMPWALK contra el dispositivo, ya que ahora solo nos interesa la cantidad de rutas, nos centraremos en estos 2 elementos:

...

Code Block
languagetext
titlemodels/Model-CiscoRouter.nmis
--snip--
  'system' => {
    'nodeModel' => 'CiscoRouter',
    'nodeType' => 'router',
    'nodegraph' => 'health,response,cpu,mem-router,ip,frag,buffer,modem,calls',
    'rrd' => {
      'nodehealth' => {
        'threshold' => 'cpu,mem-proc',
        'graphtype' => 'buffer,cpu,mem-io,mem-proc,mem-router’ ,
        'snmp' => {
          'avgBusy5' => {
            'oid' => 'avgBusy5'
          },
          --snip--
          'RouteNumber' => {
	         'snmpObject' => 'ipCidrRouteNumber'
             'oid' => '1.3.6.1.2.1.4.24.3'
	        }
        },
      },
--snip--

Introduction a las gráficas en NMIS

Las gráficas en NMIS son generadas por RRD (Round Robin Database). Los ficheros de definiciones de gráficos son parámetros que después se pasan como parámetros a RRD para la generación del grafico. En la operación collect en NMIS, se recolectan los datos que después RRD va a utilizar para mostrar los datos.

Los conceptos mas importantes de RRD son: 

  1. DS: Data Source
  2. DST: Data Source Type: 
    1. COUNTER
    2. DERIVE
    3. ABSOLUTE
    4. GAUGE

Utilizan notación NPR - Notación Polaca Inversa. 

Personalizar las gráficas y sus elementos

En esta etapa también agregamos el nombre del gráfico, hemos decidido que nuestro gráfico se llamará "routenumber", por lo que lo agregamos al tipo de gráfico ("system -> rrd -> nodehealth -> graphtype"), ahora el modelo conoce el nombre del gráfico a utilizar. De la misma manera, necesitamos decirle al modelo que se debe mostrar el gráfico, para eso; agregamos el nombre del gráfico a "nodegraph" ("system -> nodegraph"). Las métricas se mostrarán manteniendo el mismo orden especificado en el "nodegraph", en este caso el gráfico se mostrará en la parte inferior, ya que lo agregamos al final de la lista, podemos cambiar el orden según sea necesario.

...

Code Block
languagetext
titlemodels/Common-heading.nmis
--snip--
 'heading' => {    
   'graphtype' => {
      --snip--
      'routenumber' => 'Number of Routes’
   }
 }
--snip--

Now we have to create the graph, the filename must start with “Graph-“ followed by the exact name that was choosen for the graph, in this case “routenumber”, so the graph filename is: Graph-routenumber.nmis.

The graph file has different sections; each defines how the graph should be display. NMIS can display 2 sizes of graphs: “Standard” and “Small”, we can specify what details to show in either case.

Note that the “title” and “vlabel” (vertical label) uses “standard” and “short” by default to define the length of the item and the section “option” uses “standard” and “small” to define the type of graph, however, these variables can be change if needed.


Ahora tenemos que crear el gráfico, el nombre del archivo debe comenzar con "Graph-" seguido del nombre Ahora tenemos que crear el gráfico, el nombre del archivo debe comenzar con "Graph-" seguido del nombre exacto que se eligió para el gráfico, en este caso "routenumber", por lo que el nombre del archivo del gráfico es: Graph-routenumber.nmis.

...

Básicamente, el gráfico se define en función del sistema de gráficos de la herramienta RRD y puede encontrar información adicional y mayores opciones aquí: https://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html

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.

...

Así es como se ve la versión estándar:

Sección "SystemHealth" (Indexes)

Often a section of data that is useful to have displayed in NMIS is presented in SNMP as a table. In order to model this NMIS modelling supports a "systemHealth" section that allows indexing to be used.

...

En este ejemplo se usa "diskIOTable" .

sección sys

In the above code snippet there is a 'sys' section, this is where data that will be stored in the Nodename-node.nmis file is defined. This is also where data that is needed for gathering the RRD section is defined. If you want to see the latest value gathered by NMIS for these MIBS check the Nodename-node.nmis file for your node. The values defined inside the snmp section are like any other part of the model.

En el fragmento de código En el fragmento de código anterior vemos la sección 'sys', aquí es donde se definen los datos que se almacenarán en el archivo Nodename-node.nmis. También se definen los datos necesarios para recopilar la sección RRD. Si desea ver el último valor reunido por NMIS para estos MIBS, se debe revisar Nodename-node.nmis para el nodo. Los valores definidos dentro de la sección snmp se hacen de la misma manera como se ha hecho en otras partes del modelo.

...

Code Block
languagetext
'sys' => {
  'diskIOTable' => {
   'indexed' => 'diskIOIndex',
   'index_oid' => '1.3.6.1.4.1.2021.13.15.1.1.1',
...

Another feature in Otra característica en 8.4.8 is y posterior, es index_regex, which 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_regexto a value that captures the OID components that vary between table elements. For example,Otra característica en 8.4.8 y posterior, es index_regex, que permite la indexación de elementos múltiples: normalmente las tablas SNMP son indexadas por el último componente OID numérico único. Cuando NMIS realiza una actualización en una entidad indexada, itera a través de que permite la indexación de elementos múltiples: normalmente las tablas SNMP son indexadas por el último componente OID numérico único. Cuando NMIS realiza una actualización en una entidad indexada, itera a través de todos los valores conocidos para este componente de índice y los registra. Esta iteración no funciona si el índice consta de más de un número, como lo hace en ciertos equipos. En tales casos, puede establecer index_regex para un valor que capture los componentes OID que varían entre los elementos de la tabla. El siguiente ejemplo asegura que los últimos tres números se usen para el indexado.

...

Como puede ver, el nombre del archivo tiene $index en el nombre, por lo que NMIS creará un nuevo archivo para cada índice que esté recopilando utilizando esta variable.

Gráficas en la sección SystemHealth

Graph-diskio-rw.nmis y Graph-diskio-rwbytes.nmis 

...

Una vez realizado todo este procedimiento, las nuevas secciones aparecerán en el menú desplegable "System Health".


...

Personalizando las Gráficas

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

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.

...