Pandora FMS community forums

Full Version: Gravedad Eventos - Alertas SNMP
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hola,

Dispongo de la última actualización de Pandora FMS  (160912) donde tengo configurados n Switches como Agentes de red y capturo traps SNMP envíados a través de esos Switches (Link Up/Down, Fail RX/TX, Warm/Cool Boot, etc.). He creado Alarmas SNMP para estos agentes; en función del tipo de la clase de Trap le establezco una prioridad u otra que podré visualizar en la Consola SNMP, así mismo como Acción de alerta utilizo "Pandora FMS Event", la cual me gustaría que generase un evento con una gravedad equivalente a la prioridad establecida y e aquí el problema.

Pandora FMS Event genera correctamente un nuevo evento para ese agente cuando llega un trap, sin embargo independientemente del Tipo de Trap o Tipo de Evento, este establece "Gravedad: Crítico" para todos los eventos generados de estos agentes y no encuentro ninguna opción para cambiarlo. Necesitaría poder establecer el tipo de gravedad del evento en función a la clase de trap que me llega. Por ejemplo Link Up = Normal, Link Down = Advertencia, Fail RX/TX = Crítico.

Es un error que puede dar pié a equivocaciones en la monitorización y estropea las estadísticas que el software proporciona.

Quedo a la espera de una respuesta.

¡¡Muchas gracias!!

Saludos,
Hola juanrc,

Podrías crear tu mismo un comando de alerta que ejecute esto:
Code:
/usr/share/pandora_servr/util/pandora_manage.pl /etc/pandora/pandora_server.conf --create_event '_field1_' _field2_ _field3_ '_field4_' '_field5_' _field6_ _field7_

Donde:
- field1 es el nombre del evento
- field2 es el tipo de evento
- field3 es el nombre del grupo
- field4 es el nombre del agente
- field5 es el nombre del módulo
- field6 es el estado del evento
- field7 es la severidad del evento

Teniendo tu propio comando crear distintas acciones y asignarlas a cada caso en concreto sería sencillo. Ya que este ejemplo hace uso de la CLI te dejo aquí el enlace a la sección de la wiki.

Un saludo,
Enrique.
Hola Enrique,

Antes de nada, muchas gracias por tu ayuda.

He estado estudiandome a fondo el tema de la creación de un comando de alerta, y he creado uno con la siguiente sintaxis:

/usr/share/pandora_server/util/pandora_manage.pl /etc/pandora/pandora_server.conf --create_event '_field1_' alert_fired Network '_field4_' '' 0 2

Posteriormente lo he asociado a una nueva acción completando los parámetros 'field_1' con la información del evento y los datos del trap, así mismo field_4 con el nombre del agente. Una vez he creado la acción, la he asociado a las Alarmas SNMP que ya tenía creadas previamente.

Si la sentencia en el comando la escribía mal, no me generaba el evento que yo había indicado en el comando, pero creaba un nuevo evento "SNMP Alert Fired (Descripción de la alarma)". Posteriormente he corregido la sintaxis y lo estaba haciendo bien, creando 1 evento con los datos que yo había definido en el comando; pero cuando he modificado el comando por última vez (solo he modificado el campo "Nombre") para dejar el definitivo y he vuelto a generar un TRAP, me ha creado 2 eventos: el evento que yo he definido por comando + el evento Alert Fired que al principio solo salía cuando el comando estaba mal escrito. Por más vueltas que le he dado, no se porque ahora crea dos eventos.

¿Sabes por que pasa esto?

Mil gracias!!

Saludos,
Hola Enrique,

Finalmente resolví el problema. Encontré el código que ejecutaba la función para generar el evento en el archivo /usr/lib/perl5/PandoraFMS/Core.pm:

#Generate an event, ONLY if our alert action is different from generate an event.

if ($action->{'id_alert_command'} != 3 ){
    pandora_event ($pa_config, "SNMP alert fired (" . $alert->{'description'} . ")",
    0, 0, $alert->{'priority'}, 0, 0, 'alert_fired', 0, $dbh);
}


Entonces me di cuenta que en la condición solo se tenía en cuenta el ID del comando "Pandora FMS Event (3)", agregué a la condición los IDs de los nuevos comandos que había creado que generaban eventos (19,20,21):

if ($action->{'id_alert_command'} != 3 && $action->{'id_alert_command'} != 19 && $action->{'id_alert_command'} != 20 && $action->{'id_alert_command'} != 21)

Y solucionado!!!

Gracias!

Saludos,