Translations of this page:

Osmius

Agente de Osmius para SNMP
Nombre del agente: osm_ag_SNMPGET1 Código de agente: SNMPGET1
Contenido: Manual de usuario del agente de Osmius para protocolo snmp v1 y v2c
Fecha de creación: 07/11/2008 Fecha de revisión: 01/12/2009

Información General

Este es un agente básico que puede monitorizar diversos parámetros de un sistema que responda a preguntas en el protocolo SNMP. Ha sido probado contra diferentes dispositivos como servidores corriendo sistemas operativos de MicroSoft, Linux, HP-UX o Solaris y contra elementos de red como routers, switches o puntos de acceso. Puede hablar con cualquier dispositivo que cuente con un agente snmp V1 o snmp V2c.

Este agente ha sido desarrollado usando las funcionalidades y mejoras del framework de Osmius y de las librerías de ACE como todos los demás , por tanto se hace necesaria la instalación de las librerías de ACE para la correcta instalación y funcionamiento. Más en el capítulo de instalación.

Además en este caso necesitamos las librerías para acceso a SNMP de Net-SNMP.

El agente SNMPGET1 proporciona varios eventos básicos y otros extendidos con parámetros de configuración (como el oid a recuperar) para permitir el escalado de una manera muy sencilla. Los eventos han sido seleccionados por el grupo de Investigación y Desarrollo de Osmius como los más interesantes para este primer desarrollo.

El código para realizar este agente se ha utilizado para construir un interfaz para que los usuarios puedan crearse eventos SNMP v1 y V2c a su antojo. Desde la consola web puede accederse a un cargador/navegador de MIBS y de esta forma, los usuarios o administradores puedan ahora monitorizar cualquier elemento SNMP, crear sus propios eventos y cargar las MIBs necesarias. Osmius cuenta además con un agente para la recepción de Traps de SNMP y la incorporación de los traps recibidos al flujo de eventos a tratar.

Todos los eventos son remotos, y por tanto NO intrusivos, es decir, se pueden monitorizar desde fuera de la instancia a interrogar. Los eventos están basados algunos en las versión 1 y 2 (2c) del protocolo SNMP.

Aquí encontraréis una buena guía de programación SNMP.

Instancias

Como norma general cada agente de Osmius puede monitorizar un tipo de instancia. Si no te resultan familiares estos conceptos consulta el glosario. Cada instancia se define individualmente en el fichero de configuración (si quieres ampliar esta información vete a agentes e instancias); dependiendo de cada agente hay que definir el tipo de instancia y dependiente de la instancia es la información de conexión.

CONNECTION_INFO

El connection_info o información de conexión es la información que el agente necesita saber para conectarse a la instancia. (Mira un poco más sobre el connection_info)

En el caso del agente de Osmius para SNMP el connection_info está compuesto por varios parámetros:

  • dnsname: Nombre o IP de la instancia SNMP a monitorizar. Opcional, por defecto tomará el hostname de la máquina.
  • community_name: Palabra de la comunidad SNMP v1 con valor por defecto “public”. Opcional.
  • port: Puerto de escucha SNMP de la instancia con valor por defecto de 161. Opcional.
CONNECTION_INFO= [-N nodename] [-K community_name] [-P port]

Todas las instancias pueden llevar estos tres parámetros que se utilizarán como valores por defecto en caso de haber eventos de usuario que utilicen el Interfaz SNMP

TYPE

El type o tipo define el tipo de instancia que se va a monitorizar. Todas las instancias que se declaren deben de llevar asociado un tipo como puedes ver aquí

En este caso:

TYPE= SNMPGET1

Tabla-resumen de eventos

A continuación te mostramos de forma breve las capacidades de este agente, más abajo en esta misma página se describirá cada uno de los eventos de manera más detallada.

EVENTO DESCRIPCIÓN c tsegundos w a Parámetros extra / Observaciones
SNSYSDES Recupera la descripción del Sistema SNMP y comprueba disponibilidad0 600 1 1 [-Q timeout] [-V 1,2] Modo silencioso ( -s) recomendado
SNSYSUPT Tiempo en segundos desde que se levantó el Sistema SNMP 1 600 60 30 [-Q timeout] [-V 1,2] Modo silencioso ( -s) recomendado
SNSYSNAM Recupera el nombre del Sistema SNMP 0 600 1 1 [-Q timeout] [-V 1,2] Modo silencioso ( -s) recomendado
SNSYSLOC Recupera la localización del Sistema SNMP 0 600 1 1 [-Q timeout] [-V 1,2] Modo silencioso ( -s) recomendado
SNSYSCON Recupera el contacto del Sistema SNMP 0 600 1 1 [-Q timeout] [-V 1,2] Modo silencioso ( -s) recomendado
SNUS0001 a SNUS0009 Son eventos de usuario que recuperan el iod pasado en el parámetro. 0 600 1 1 -O “oid_a_recuperar” [-N nodename] [-K community_name] [-P port] [-Q timeout] [-V 1,2]

Eventos del agente de SNMP v1 y v2c

SNSYSDES

El evento SNSYSDES devolverá el texto que tenga el dispositivo snmp asociado para la Descripción del Sistema. El “oid ” utilizado es:

.iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0

Valores devueltos:

VALOR SIGNIFICADO
-1 Error
0 Fallo al recuperar el valor
1 Valor recuperado correctamente

Parámetros recomendados:

Tipo de comparación Inversa. Cuanto más alto el valor menos crítico el estado (-c 1)
Intervalo de monitorización 300 segundos – 1 hora –> depende de la importancia de la instancia
Umbral de warning 0
Umbral de alerta 0

Ejemplo de parametrización:

SNSYSDES = -t 300 -c 1 -w 0 -a 0 -T "Snmp system description"

Observaciones: En el texto asociado al evento se devolverá valor del parámetro snmp como esté configurado en el dispositivo.
Este evento usa las librerías de Net-SNMP.

SNSYSNAM

El evento SNSYSNAM devolverá el texto que tenga el dispositivo snmp asociado para el Nombre del Sistema. El “oid ” utilizado es:

  .iso.org.dod.internet.mgmt.mib-2.system.sysName.0

Valores devueltos:

VALOR SIGNIFICADO
-1 Error
0 Fallo al recuperar el valor
1 Valor recuperado correctamente

Parámetros recomendados:

Tipo de comparación Inversa. Cuanto más alto el valor menos crítico el estado (-c 1)
Intervalo de monitorización 300 segundos – 1 hora –> depende de la importancia de la instancia
Umbral de warning 0
Umbral de alerta 0

Ejemplo de parametrización:

SNSYSNAM = -t 300 -c 1 -w 0 -a 0 -T "Snmp system name"

Observaciones: En el texto asociado al evento se devolverá valor del parámetro snmp como esté configurado en el dispositivo.
Este evento usa las librerías de Net-SNMP.

SNSYSUPT

El evento SNSYSUPT devolverá el número de ticks desde que el sistema se levantó por última vez. El “oid ” utilizado es:

  .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance

Valores devueltos:

VALOR SIGNIFICADO
-1 Error
N Número de “timeticks” desde que se levantó el sistema

Parámetros recomendados:

Tipo de comparación Inversa. Cuanto más alto el valor menos crítico el estado (-c 1)
Intervalo de monitorización 300 segundos – 1 hora –> depende de la importancia de la instancia
Umbral de warning 600
Umbral de alerta 500

Ejemplo de parametrización:

SNSYSUPT = -t 300 -c 1 -w 600 -a 500 -T "System uptime in timeticks"

Observaciones: Este evento usa las librerías de Net-SNMP.

SNSYSLOC

El evento SNSYSLOC devolverá el texto que tenga el dispositivo snmp asociado para la Localización del Sistema. El “oid ” utilizado es:

  .iso.org.dod.internet.mgmt.mib-2.system.sysLocation.0

Valores devueltos:

VALOR SIGNIFICADO
-1 Error
0 Fallo al recuperar el valor
1 Valor recuperado correctamente

Parámetros recomendados:

Tipo de comparación Inversa. Cuanto más alto el valor menos crítico el estado (-c 1)
Intervalo de monitorización 300 segundos – 1 hora –> depende de la importancia de la instancia
Umbral de warning 0
Umbral de alerta 0

Ejemplo de parametrización:

SNSYSLOC = -t 300 -c 1 -w 0 -a 0 -T "Snmp system Location"

Observaciones: En el texto asociado al evento se devolverá valor del parámetro snmp como esté configurado en el dispositivo.
Este evento usa las librerías de Net-SNMP.

SNUS0001 a SNUS0099

El evento SNUS0001 devolverá el texto o el valor que tenga el dispositivo snmp asociado con el “iod” pasado como parámetro. Si el oid es de tipo numérico se devolverá el valor numérico. Si el oid es de tipo cadena se devolverá 1 en caso de recuperación correcta y la cadena en el texto del evento. En caso contrario devolverá 0.

Parámetros extra:
Este evento utiliza hasta cinco parámetros adicionales para cumplir su objetivo:

PARÁMETRO SIGNIFICADO Obligatorio
-O -O “oid”- oid a recuperar. Puedes probar antes a hacer un “snmpwalk -v1 -O f -c community target_IP” o “snmpget -v1 -c community -o oid target_IP.
-N -L “nodename” - Se utilizará este “node name” en lugar del que hay en el CONNECTION_INFO de la instancia o el por defecto (nombre de máquina). No
-K -K “community” - Se utilizará este “community name” en lugar del que hay en el CONNECTION_INFO de la instancia o el por defecto (“public”). No
-P -P “port” - Se utilizará este puerto en lugar del que hay en el CONNECTION_INFO de la instancia o el por defecto (161). No
-Q -Q “timeout” - timeout en segundos para las operaciones snmp_get. Por defecto es 0, indefinido. No
-V -V “version” - Version del protocolo SNMP a utilizar. Valores posibles = [1, 2]. Por defecto es 2. No

Valores devueltos:

VALOR SIGNIFICADO
-1 Error
0 Fallo al recuperar el valor
1 Valor tipo cadena recuperado correctamente
N Valor numérico recuperado correctamente

Parámetros recomendados:

Tipo de comparación Inversa o Directa. Dependerá del usuario y del parámetro recogido.
Intervalo de monitorización 300 segundos – 1 hora –> depende de la importancia de la instancia
Umbral de warning 0
Umbral de alerta 0

Ejemplo de parametrización:

SNUS0001 = -t 300 -c 1 -w 0 -a 0 -T "Snmp system description" -O ".iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0" -K secret_community -P 177 -Q 3 -V 1

Observaciones: En el texto asociado al evento se devolverá valor del parámetro snmp como esté configurado en el dispositivo y si la variable oid es numérica se devolverá su valor.
Este evento usa las librerías de Net-SNMP.

Requisitos previos

Para poder compilar este agente se necesitan una serie de requisitos previos, que son genéricos para la compilación de cualquier agente de Osmius, puedes consultar cuales son en requisitos previos.

En este caso además debes tener en el sistema las librerías Net-SNMP (en Ubuntu “libsnmp”) que puedes encontrar aqui: http://net-snmp.sourceforge.net/ y en los repositorios de tu sistema operativo si es que los tiene.

Makefiles y compilación del agente

  • Osmius hace uso de Make Project Creator (MPC), para que la creación de los Makefiles sea una tarea trivial. Si quieres saber un poco más de MPC en Osmius consulta la sección de Makefiles en Osmius.
  • Para compilar el agente SNMP necesitamos disponer en el sistema de las librerías y los includes de Net-SNMP (en el caso de Ubuntu “libsnmp-dev”).
  • En el caso particular del agente de Osmius para SNMP1 podemos crear fácilmente el Makefile de la siguiente forma:

Desde el directorio del agente usando la consola o terminal.

$ACE_ROOT/bin/mpc.pl -type gnuace osm_ag_snmp.mpc
  • Ahora que está creado el Makefile compilar el agente es extremadamente sencillo.
gmake -f Makefile.Osm_Ag_Snmp_Osmius

Los binarios se instalarán automáticamente en el directorio bin del directorio base OSM_ROOT.

Ejecutar el agente

El agente de SNMPGET1 conserva las mismas características de ejecución del resto de los agentes que puedes consultar en la sección Arrancar y Parar agentes.

Para ejecutar el agente de SNMPGET1 sin usar la consola de Osmius:

osm_ag_SNMPGET1 -c osm_ag_SNMPGET1.ini -m MASTERAG -p 1950 -d [>> osm_ag_snmpget1.log]1)

Pero normalmente será el agente maestro el encargado de ejecutarlo a no ser que lo hagamos en modo standalone (*) Ver más adelante.

Ejecución en modo standalone

Este agente de Osmius, al igual que el resto de los agentes de Osmius, permite la ejecución en modo standalone. Esta opción puede resultar especialmente útil cuando se está desarrollando un nuevo agente o para realizar las pruebas de concepto de determinado agente.

Básicamente debes de añadir un nuevo valor al fichero de configuración del agente de Osmius (osm_ag_AGENTE.ini) llamado SNDCMD, tal y como se muestra aquí.

Luego deberás de ejecutar el agente de Osmius poniendo el puerto de comunicaciones con el Agente Maestro a cero, por ejemplo:

osm_ag_SNMPGET1 -c osm_ag_SNMPGET1.ini -m 00000000 -p 0 -d

Listado de pruebas

Pruebas realizadas al agente de Osmius para HP-UX.

Fecha: 21/11/2008 y 01/12/2009
Prueba Resultado Observaciones
Creación de una instancia con todos sus eventos en modo silencioso OK N/A
Creación de una instancia con todos sus eventos con texto personalizado OK N/A
Creación de una instancia con todos sus eventos pero sin texto personalizado OK N/A
Declaración de 3 instancias con todos sus eventos a 5 segundos y mantenerlo
en ejecución durante 48 horas
OK N/A
Declarar 2 instancias, provocar la desconexión de una y después volver a conectarlaNo se puede hacer esto en este agente N/A
Declarar 1 instancia y probar cada evento OK N/A
Eliminación de parámetro general y comprobar que no arranca OK Se ha borrado RECONN
Eliminación del CONN_INFO de la instancia y comprobar que no arranca OK Las instancias de SNMPGET1 no necesitan información de conexión
1) Opcional, para guardar un fichero con los mensajes que pueda devolver el agente
 
agentes/snmp0001.txt · Última modificación: 2012/12/05 17:59 por osmius
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki