gines
Jr. Member

Karma: 0
Offline
Posts: 16
|
 |
« on: August 19, 2010, 12:15:38 PM » |
|
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!!!
|
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #1 on: August 20, 2010, 11:32:56 AM » |
|
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.
|
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #2 on: August 20, 2010, 07:05:44 PM » |
|
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 Up
Estos valores los recibimos de máquina HP. Lo que no tengo claro lo que te está pasando.
Saludos,
JM.
|
|
|
|
|
Logged
|
-- See you in the other screen.
|
|
|
|
gines
Jr. Member

Karma: 0
Offline
Posts: 16
|
 |
« Reply #3 on: August 25, 2010, 09:36:05 AM » |
|
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.
|
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #4 on: August 25, 2010, 11:09:00 AM » |
|
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).
|
|
|
|
|
Logged
|
-- See you in the other screen.
|
|
|
|
gines
Jr. Member

Karma: 0
Offline
Posts: 16
|
 |
« Reply #5 on: August 25, 2010, 11:30:18 AM » |
|
La version que me baje he instale es la 3.1, confirmado...
|
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #6 on: August 26, 2010, 09:34:44 AM » |
|
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.
|
|
|
|
|
Logged
|
-- See you in the other screen.
|
|
|
|
|
|
 |
« Reply #7 on: August 26, 2010, 11:28:59 AM » |
|
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.
|
|
|
|
Logged
|
-- See you in the other screen.
|
|
|
|
gines
Jr. Member

Karma: 0
Offline
Posts: 16
|
 |
« Reply #8 on: August 30, 2010, 11:31:07 AM » |
|
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
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #9 on: August 31, 2010, 12:33:58 PM » |
|
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
|
|
|
|
|
Logged
|
-- See you in the other screen.
|
|
|
|
gines
Jr. Member

Karma: 0
Offline
Posts: 16
|
 |
« Reply #10 on: August 31, 2010, 01:22:57 PM » |
|
Hola Sancho, muchas gracias por tu ayuda... Aqui te dejo lo que me solicitas....
La imagen 1 tiene el resultado de "describe ttrap;"
Y el resultado de la segunda en la otra imagen.
Gracias...
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #11 on: August 31, 2010, 02:11:57 PM » |
|
Si, sigues teniendo limitada la info del trap, se me olvido decirte que cuando metas:
alter table ttrap MODIFY value_custom text default ''; alter table ttrap MODIFY value text default '';
lo hagas linea a linea, no las dos a la vez, prueba y me cuentas.
|
|
|
|
|
Logged
|
-- See you in the other screen.
|
|
|
|
gines
Jr. Member

Karma: 0
Offline
Posts: 16
|
 |
« Reply #12 on: September 01, 2010, 08:16:49 AM » |
|
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.
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #13 on: September 01, 2010, 04:03:08 PM » |
|
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).
|
|
|
|
Logged
|
-- See you in the other screen.
|
|
|
|
gines
Jr. Member

Karma: 0
Offline
Posts: 16
|
 |
« Reply #14 on: September 02, 2010, 09:03:48 AM » |
|
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.
|
|
|
|
|
Logged
|
|
|
|
|
|