Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pandora lee mal los traps SNMP que se envian o NO los interpreta bien.
#1
Hola a todos, estoy un poco preocupado porque creo que Pandora no entiende o no extrae bien la informacion presente en los traps SNMP.
En la consola SNMP me aparecen los traps que recibo pero sale mal la informacion y los OID's que componen el trap. Es decir, envio un trap y la consola me muestra un OID truncado en el campo "OID", este OID truncado es en realidad la "Sender OID" del protocolo SNMP, y el resto de OIDs en la trap, que se muestran de forma muy extraña en Pandora en el campo "Personalizado" en formato texto, son "Variable Bindings", es decir, identificadores y valores de las variables que definen la alarma.
Por favor, alguien puede echarme una mano. ¿Se puede configurar para que muestre correctamente todos los OID's y el trap completo?
Un saludo y gracias!!!
 Reply
#2
Yo hago servir la versión Pandora FMS v2.0 - Build PC081030 y como ejemplo nos muestra lo siguiente:

OID: .1.3.6.1.4.1.232
Valor:    .6027
Personalizado: Link Up

Estos valores los recibimos de máquina HP. Lo que no tengo claro lo que te está pasando.

Saludos,

JM.
 Reply
#3
Cada trap es un mundo ya que pueden tener valores simples, arrays, valores numericos, de tipo cadena... es complejo. En tu caso lo veo perfectamente claro. OID, Valor numerico y descripcion. ¿Que es lo que no te cuadra?.

(08-20-2010, 10:32 AM)jmunozpa link Wrote: Yo hago servir la versión Pandora FMS v2.0 - Build PC081030 y como ejemplo nos muestra lo siguiente:

OID: .1.3.6.1.4.1.232
Valor:     .6027
Personalizado: Link Up

Estos valores los recibimos de máquina HP. Lo que no tengo claro lo que te está pasando.

Saludos,

JM.
 Reply
#4
He intentado responderte en el hilo de la carga de MIB's, pero basicamente los traps que usamos son del tipo de "variable binding", es decir, un traps que contiene internamente otros, formando un arbol  que describe un error o lo que sea. Lo que veo es que dependiendo de la version de envio del trap SNMP muestra algo o no muestra nada. Por ejemplo.
Si el trap es version v1:
Agente SNMP: 10.201.246.2
OID: .1.3.6.1.4.1.1722 (aqui muestra el valor del campo "Sender SNMP" de SNMP)
Valor: N/A
Personalizado: el resto.
Te dejo la traza que deja en el fichero de log.

2010-08-25[**]10:24:49[**]10.201.246.2[**].1.3.6.1.4.1.1722[**]0[**]Cold Start[*
*]0[**].1.3.6.1.4.1.1722.2.10.1.1.1 = INTEGER: 233      .1.3.6.1.4.1.1722.2.10.1
.1.3 = STRING: "AIX_Software_Failure"  .1.3.6.1.4.1.1722.2.10.1.1.2 = STRING: "
08/25/2010 08:23:43:697685"    .1.3.6.1.4.1.1722.2.10.1.1.8 = STRING: "1: A sof
tware error PERM with label CORE_DUMP, identifier C69F5C9B occurred at Wed Aug 2
5 10:22:28 DFT 2010 on dvs02 for resource SYSPROC. Cause is SOFTWARE PROGRAM ABN
ORMALLY TERMINATED.
"      .1.3.6.1.4.1.1722.2.10.1.1.6 = STRING: "8"      .1.3.6.1.4.1.1722.2.10.1
.1.11 = STRING: "An application may not work properly"  .1.3.6.1.4.1.1722.2.10.1
.1.10 = STRING: "An application may not work properly"  .1.3.6.1.4.1.1722.2.10.1
.1.12 = INTEGER: 4      .1.3.6.1.6.3.1.1.4.3.0 = OID: .1.3.6.1.4.1.1722


Si es version 2c, me llega esto al fichero de log (pandora_snmptrap.log) y lo que muestra la consola es:
Agente SNMP: 0.0.0.0
OID: Cold Start
Valor: N/A
Personalidado: el resto de la informacion.

Te dejo a continuacion lo que deja en el fichero de log.

2010-08-25[**]10:20:52[**]0.0.0.0[**].[**]0[**]Cold Start[**]0[**].1.3.6.1.2.1.1
.3.0 = Timeticks: (41891617) 4 days, 20:21:56.17        .1.3.6.1.6.3.1.1.4.1.0 =
OID: .1.3.6.1.6.3.1.1.5.1      .1.3.6.1.4.1.1722.2.10.1.1.1 = INTEGER: 230
.1.3.6.1.4.1.1722.2.10.1.1.3 = STRING: "CRSWFMImportationError" .1.3.6.1.4.1.172
2.2.10.1.1.2 = STRING: "08/25/2010 08:19:46:844167"    .1.3.6.1.4.1.1722.2.10.1
.1.8 = STRING: "1: Failed to start WFM importation : Cipher connection not avail
able.
"      .1.3.6.1.4.1.1722.2.10.1.1.6 = STRING: "1211"  .1.3.6.1.4.1.1722.2.10.1
.1.11 = STRING: "Check the reason why the importation couldn't be started."
.1.3.6.1.4.1.1722.2.10.1.1.10 = STRING: "No file from the WFM will be processed
until the issue is solved."    .1.3.6.1.4.1.1722.2.10.1.1.12 = INTEGER: 4
.1.3.6.1.6.3.1.1.4.3.0 = OID: .1.3.6.1.4.1.1722


Entiendo que Pandora deberia mostrar en el valor OID un identificador univoco (no generico) de un OID para poder realizar alertar o acciones segun se reciban. De momento no es posible. Alguna idea o segerencia.

Muchas gracias por todo.
 Reply
#5
Releyendo tu mensaje veo que usas la version 2.0, ahora estamos en la 3.1

Hemos hecho varios cambios (mejoras) desde la version 2.0 y en la 3.2 vamos a meter una mas (permitir filtrar traps en base a expresiones regulares). En la 3.1 los traps complejos como el que dices salen "en ristra" de forma que puedes asociar alertas por un SubOID si quieres, y la visualizacion tambien es mejor (aunque en la 3.2 la hemos mejorado aun mas).

Te recomiendo que le eches un vistazo a la 3.1 (bajate la imagen virtual, p.e).
 Reply
#6
La version que me baje he instale es la 3.1, confirmado...
 Reply
#7
Releyendo tu mensaje, veo que he pasado por algo un par de cosas.

Primero la diferencia del primer trap al segundo, se debe a que el primero lo "reconoce" y por eso te pone la cadena de texto "Cold Start", y no te pone IP porque todavia no tiene IP asociada, de hecho en los logs se ve que la ip es 0.0.0.0. De donde no hay no se puede sacar mas info, realmente el que procesa el trap no es Pandora sino el demonio SNMPtrapd del sistema operativo. Si no tiene una MIB para "entender" el trap, no lo traduce y devuelve, exactamente lo que aparece en el log, me temo que no hay mucha magia en esto. Pandora lo unico que puede entender es lo que le pasa el deminio y el resto lo "enchufa" como texto para que el usuario intente mapear alertas.

Por ejemplo en este trap que te ha llegado tienes varias cadenas de texto:

Cold Start, 4 days, 20:21:56.17, CRSWFMImportationError, 1: Failed to start WFM importation : Cipher connection not available, Check the reason why the importation couldn't be started, No file from the WFM will be processed until the issue is solved.

La idea es definir alertas en la consola de traps de forma que si sabes lo que buscas, puedes meter una alerta de texto, que busque una cadena concreta, incluso desde una IP concreta, usando los campos IP address y Custom Value/OID en la alerta SNMP, de forma que salte cuando llegue algo que contenga "CRSWFMImportationError", de esta forma te daría igual el resto de informacion (que podrias enviar, auque de forma muy "rustica" usando la macro _DATA_. El resto de macros que podrias usar las tienes en la doc.

Estamos pensando en incluir un sistema mas complejo para la proxima version, un tipo especial de alerta que lo que haga sea "reenviar" el trap completo a un script para que este la procese y pueda "analizar" el trap debidamente, claro está cada aplicación tendria su propia sintaxis, porque los traps complejos, pueden tener cualquier tipo de formato, contenido, longitud, etc, y este a su vez generaría un XML como los de los agentes para incluir la informacion del trap como información adicional de diferentes modulos, lo vamos a llamar Plugin de consola SNMP.
 Reply
#8
Me estoy dando cuenta de que ademas teniamos un problema que era que el tamaño maximo de lo procesado como datos "variables" era de 255 caracteres, por lo cual tu trap salia cortado.

La solucion inmediata que te peudo proponer es:

alter table ttrap MODIFY value_custom text default '';
alter table ttrap MODIFY value text default '';

Esto hara que la BD actual almacene mas informacion.

Para procesar los datos de un trap con detalle,  se puede enviar toda la informacion de un trap  a un script, como resultado de una alerta. He usado este trap para el ejemplo, es la vista del trap tal cual estaria en el log de la consola de snmp de Pandora:

2010-08-26 12:01:46 pandora 10.201.246.2 .1.3.6.1.4.1.1722 .1.3.6.1.4.1.1722.2.10.1.1.1 233 .1.3.6.1.4.1.1722.2.10.1.1.3 = STRING: AIX_Software_Failure .1.3.6.1.4.1.1722.2.10.1.1.2 = STRING: 08 25 2010 08:23:43:697685 .1.3.6.1.4.1.1722.2.10.1.1.8 = STRING: 1: A software error PERM with label CORE_DUMP, identifier C69F5C9B occurred at Wed Aug 2 5 10:22:28 DFT 2010 on dvs02 for resource SYSPROC. Cause is SOFTWARE PROGRAM ABNORMALLY TERMINATED. .1.3.6.1.4.1.1722.2.10.1.1.6 = STRING: 8 .1.3.6.1.4.1.1722.2.10.1.1.11 = STRING: An application may not work properly .1.3.6.1.4.1.1722.2.10.1.1.10 = STRING: An application may not work properly .1.3.6.1.4.1.1722.2.10.1.1.12 = INTEGER: 4 .1.3.6.1.6.3.1.1.4.3.0 = OID: .1.3.6.1.4.1.1722

En las capturas se puede ver como se crearia una alerta especial, que ejecuta un script con los contenidos completos del trap (_data_) y como se crea la alerta de tipo SNMP. En este caso se ha mapeado para la OID Especifica (.1.3.6.1.4.1.1722.2.10.1.1.1) pero podría haber sido mas genérica, por ejemplo (.1.3.6.1.4.1.1722) para invocar al script ante cualquier tipo de traps de esta tipologia (.1.3.6.1.4.1.1722 imagino que serán parte de la MIB especifica de AIX).

Se ejecuta un script que procesa esos datos y "analiza" el trap para escribir datos en Pandora  FMS directamente, generando un XML y dejandolo en /var/spool/pandora/data_in a modo de datos como si vinieran de un agente. Un script basico para este caso podría por ejemplo, generar inforamacion compleja ya que  tenemos bastante informacion en este trap, a saber:

IP Origen.
Evento principal (Cold start)
Eventos secundarios (descriptivos): AIX_Software_Failure, 1: A software error PERM with label CORE_DUMP, identifier C69F5C9B occurred at Wed Aug 2 5 10:22:28 DFT 2010 on dvs02 for resource SYSPROC. Cause is SOFTWARE PROGRAM ABNORMALLY TERMINATED, An application may not work properly, An application may not work properly.

Al diseñar un script que "parsee" cada uno de esos datos, por ejemplo "miscript.pl" y que guarde  en /var/spool/pandora/data_in el XML con un nombre generico mas un numero aleatorio p.e snmp_gateway.31415.data

El XML generado deberia tener el siguiente aspecto.

<?xml version='1.0' encoding='ISO-8859-1'?>
<agent_data description='' group='' os_name='aix' os_version='' interval='300' version='3.1(Build 100608)' timestamp='2010/08/26 12:20:26' agent_name='10.201.246.2'>
  <module>
    <name><![CDATA[Critical_Event]]></name>
    <description><![CDATA[]]></description>
    <type>async_proc</type>
    <data><![CDATA[1]]></data>
  </module>
<module>
    <name><![CDATA[events]]></name>
    <description><![CDATA[]]></description>
    <type>generic_string</type>
    <datalist>
      <data><value><![CDATA[AIX_Software_Failure]]></value></data>
      <data><value><![CDATA[A software error PERM with label CORE_DUMP, identifier C69F5C9B occurred at Wed Aug 2 5 10:22:28 DFT 2010 on dvs02 for resource SYSPROC.]]></value></data>
      <data><value><![CDATA[Cause is SOFTWARE PROGRAM ABNORMALLY TERMINATED, An application may not work properly, An application may not work properly.]]></value></data>
    </datalist>
  </module>
</agent_data>

La aplicacion es infinita, pero eso si, cada script debe ser particularizado ya que puede tener una estructura muy dinámica, en muchos sistemas la informacion que se recibe es no solo de texto sino tambien numérica, con lo que puede alimentar a módulos de información numerica para poder representar graficas etc, eso si, los datos siempre son asincronos.

Espero que te haya ayudado.


Attached Files


.png   snmp_plugin1.png (Size: 20.81 KB / Downloads: 196)
.png   snmp_plugin2.png (Size: 13.56 KB / Downloads: 186)
 Reply
#9
Hola, ante todo muchas gracias por tu interes y tiempo dedicado. Siento decirte que no consigo avanzar a pesar de que hago lo que dices.

He intentado ampliar el tamaño de texto de los traps, como me indicaste pero no ha funcionado. Lo he hecho desde "Gestion de BBDD" "Interfaz BBDD" y luego "commit;" Pero los traps se siguen cortando, no entran.

Tambien te envio el ultimo trap recibido con una imagen de la consola y de la definicion de la alerta. Aunque la defino igual que tu, creo, no se dispara la alerta cuando se recibe el trap. Solo he conseguido que salte la alerta si pongo en el OID el valor que envia, es decir, .1.3.6.1.4.1.1722. En cualquier otro caso no funciona.

Alguna sugerencia?? Gracias por todo de antemano.

2010-08-30[**]12:11:28[**]10.201.246.2[**].1.3.6.1.4.1.1722[**]0[**]Cold Start[*
*]0[**].1.3.6.1.4.1.1722.2.10.1.1.1 = INTEGER: 249      .1.3.6.1.4.1.1722.2.10.1
.1.3 = STRING: "No_PortalConnected"    .1.3.6.1.4.1.1722.2.10.1.1.2 = STRING: "
08/30/2010 10:10:41:246781"    .1.3.6.1.4.1.1722.2.10.1.1.8 = STRING: "1: Probl
em with a process internal value :
MOValue(/dvssoft/SMM/Main::getCurrentControlConnectionNumber::Integer32) == 0
0. This value has reached an alarm threshold !
"      .1.3.6.1.4.1.1722.2.10.1.1.6 = STRING: "15"    .1.3.6.1.4.1.1722.2.10.1
.1.11 = STRING: "Check why no Portal is available"      .1.3.6.1.4.1.1722.2.10.1
.1.10 = STRING: "No more Portal command will be inserted"      .1.3.6.1.4.1.172
2.2.10.1.1.12 = INTEGER: 4      .1.3.6.1.6.3.1.1.4.3.0 = OID: .1.3.6.1.4.1.1722


Attached Files


.png   consola SNMP 1.PNG (Size: 123.79 KB / Downloads: 136)
.png   alerta SNMP 1.PNG (Size: 104.42 KB / Downloads: 145)
 Reply
#10
Vayamos por partes, puedes mostrarme aqui el resultado de ejecutar

describe ttrap;

en el gestor SQL ?

Y luego si puedes, las lultimas lineas de datos de la tabla de traps a ver que es lo que tiene realmente la BD:

select * from ttrap ORDER BY id_trap DESC LIMIT 10
 Reply


Users browsing this thread: 1 Guest(s)


(c) 2006-2018 Artica Soluciones Tecnológicas. Contents of this wiki are under Create Common Attribution v3 licence. | pandorafms.com | pandorafms.org

Theme © MyBB Themes