Welcome to Pandora FMS Community › Forums › Soporte de la comunidad › Pandora lee mal los traps SNMP que se envian o NO los interpreta bien.
-
Pandora lee mal los traps SNMP que se envian o NO los interpreta bien.
Posted by gines on August 19, 2010 at 15:15Hola 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!!!Sancho replied 14 years, 3 months ago 3 Members · 21 Replies -
21 Replies
-
-
::
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?.
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 UpEstos valores los recibimos de máquina HP. Lo que no tengo claro lo que te está pasando.
Saludos,
JM.
-
::
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.1722Si 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.1722Entiendo 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.
-
::
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).
-
-
::
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.
-
::
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.
Â
 Â
 Â
  async_proc
 Â
ÂÂ Â
 Â
  generic_string
 Â
  Â
  Â
  Â
 Â
Â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.
-
::
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 -
-
-
-
::
Hola Sancho,
he vuelto a repetir el procedimiento que me indicas, pero me temo que no funciona, te dejo las capturas. Por si fuese necesario despues de ejecutar las sentencias SQL he hecho un commit.De todos modos, con la informacion que recoge en la BD, aunque no sea toda, me podria valer, porque podria filtrar por el custom OID principal. Pero lo que veo es que cuando defino la alerta y pongo el custom OID del trap o un texto literal (buscando el error), no hace la comparacion buscando el texto. Me da la impresion que solo se dispara si coincide TODO el texto, por completo, te dejo una imagen de lo que muestra. Hay alguna forma de hacer que pueda buscar una cadena dentro del campo “Personalizado”. Si esto fuese posible, creo que podria servirme. He probado a ponerlo entre comillas ” “, a ponerlo sin ellas,…pero nada, no compara, creo que o es el texto completo o nada.
Un saludo y gracias.
-
::
He repasado el codigo entre la version que yo he probado (3.2) y la tuya (3.1) y es esencialment eel mismo. Te pongo dos capturas de mi alerta y mi trap, la unica diferencia que veo es que no has definido una accion, prueba a definir una,.
Prueba tambien a modificar el verbose del server a 10 y mirar en los logs a ver si aparece alguna pista (tienes que reiniciar el server, acuerdate).
-
::
Hola Sancho, buenos dias….
Creo que ya se lo que esta pasando viendo las capturas que me has pasado. El problema radica en que en la BD no esta el trap COMPLETO en el “Personalizado” o “Custom”. A ti pro lo que veo te lo almacena entero. Aunque he hecho un monton de veces las sentencias SQL que me enviaste para modificar la tabla ttrap, no veo cambios en la tabla. ¿Podrias por favor, mandarme un captura de la descripcion de tu tabla ttrap?? Creo que si consigo que la BD se modifique y añada toda la informacion del trap, funcionará…
Gracias, espero la captura.
De todos modos, los cambios en la BD, ¿Desde donde haces las modificaciones? ¿Desde “Gestion BBDD” “Interfaz BBDD”? o ¿desde otro sitio?
¿Habria alguna posibilidad de conseguir la version 3.2 por si tuviera algo que ver la version?
Un saludo y muchas gracias. -
::
Hola Sancho, a parte de lo comentado anteriormente, he visto que en el fichero pandora_snmptrap.log, justo donde se corta el trap en la consola, hay un retorno de carro, un salto de linea. Lo veo al editarlo con el “vi” que justo detras de “process internal value :” salta de linea.
Este es el trap.
2010-09-2[**]11:50:07[**]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: 257Â Â Â .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: ”
09/02/2010 09:49:11:247528″Â Â .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¿Puede ser esto lo que este generando el problema? Es decir, Pandora al leer el fichero, ¿lee toda la linea o hasta que acaba? Si es esto, ¿quien escribe este fichero?
No creo que el problema sea de la BD, sino de como se escribe el fichero.
Creo que estamos cerca 🙂 Gracias!!!
-
::
He seguido investigando y he visto que al generar el trap el campo Alarm Reason lleva algunos caracteres de Line Feed (0x0A) que entiendo que Pandora deberia procesar como parte del String que son, sin embargo, se bloquea al llegar a ellos.
Por favor, ¿podrias decirme si puedes comprobar esto?, ¿que es lo que Pandora lee y hasta donde?
Yo he probado a recibir el trap en otro lector de traps y los lee bien. Creo que el problema esta aqui, en como Pandora incorpora la informacion del trap a la BD.
Estamos en contacto.
Un saludo.
-
-
-
-