Sidebar

Become a monitoring expert!
Sign up for Zabbix training

1 Correlación de eventos basados en triggers

Vista General

La correlación de eventos basada en triggers permite correlacionar distintos problemas reportados por un trigger.

Por lo general un evento OK cierra todos los problemas que un trigger crea, pero hay casos en donde es necesario un enfoque mas detallado. Por ejemplo, cuando se monitorea archivos de log, se pueden detectar distintos problemas y se hace necesario cerrarlos individualmente.

Se utilizan triggers con la generación de eventos múltiples habilitada, estos son generalmente los usados para el monitoreo de log, procesamiento de traps, etc.

En Zabbix es posible relacionarlos utilizando los tags de eventos. Los tags (etiquetas) son utilizados para almacenar valores que identifiquen el problema. Aprovechando esto, los problemas pueden cerrarse individualmente, cuando el valor del tag coincida.

Dicho de otra manera, el mismo trigger puede generar distintos eventos identificados por el valor de un tag. De aquí que los problemas puedan indentificarse y cerrarse individualmente basados en el valor del tag.

Como funciona

Cuando se monitorea un log, se pueden encontrar líneas como estas:

1: Application 1 stopped
       2: Application 2 stopped
       3: Application 1 was restarted
       4: Application 2 was restarted

La idea de la correlación de eventos es poder relacionar el problema reportado en la linea 1 con la resolución en la línea 3, y el problema reportado en la línea 2 con la resolución en la línea 4, cerrando los problemas individualmente.

1: Application 1 stopped
       3: Application 1 was restarted # el problema de la línea 1 se cierra
       
       2: Application 2 stopped
       4: Application 2 was restarted # el problema de la línea 2 se cierra

Para lograr esto, es necesario taggear (etiquetar) los eventos, por ejemplo con "Application 1" y "Application 2". Aplicando una regular expression a la línea de log, se extrae el valor del tag. Luego, cuando los eventos son creados, son taggeados "Application 1" y "Application 2" según la línea que lo genera, y pueden ser cerrados cuando coincidan.

Configuración

Para configurar la correlación a nivel del trigger:

Todos los campos obligatorios están señalados con un asterisco rojo.

  • seleccionar Multiple en 'Problem event generation mode'
  • seleccionar All problems if tag values match en 'OK event closes'
  • ingrese el nombre del tag cuyo valor debe coincidir
  • configura el tag para extraer e valor de las líneas

Si se configura correctamente, se podrán ver los eventos de los problemas taggeados por aplicación y relacionados con su solución en MonitoringProblems.

Debido a una configuración errónea, es posible que eventos sean realcionandos cuando no es lo que se busca, por favor, vea los casos detallados mas abajo.

  • Cuando dos aplicaciones escriben mensajes de error y recuperación en el mismo archivo de log, uno puede decidir utilizar dos tags de aplicación en el mismo trigger con con diferentes valores, extraidas con dos regular expressions diferentes, digamos aplicación A y aplicación B, de la macro {ITEM.VALUE} (por ejemplo cuando el formato del mensaje difiere). Sin embargo esto puede no funcionar como se planea, ya que si no hay coincidencia en la regular expression, el tag va a tener un valor vacío, luego, si un OK resulta con un valor vacío en el tag va a ser suficiente para relacionarlos, y cerrar el problema.
  • El nombre del tag y su valor, solo son visibles cuando se dispara el trigger. Si la regular expression no es correcta, sileciosamente, el valor del tag pasa a ser *UNKNOWN*. Si se generan eventos OK con valores *UNKNOWN*, estos van a cerrar problemas que tal vez no se quiera que cierren.
  • Si se utiliza el valor de la macro {ITEM.VALUE} sin utilizar ninguna función para extraer una parte, y teniendo en cuenta que se aplica la limitación de 255 caracteres, Va ser suficiente que coincidan es estos primeros 255 caracteres para que un OK cierre problemas generados por items que difieran en caracteres posteriores.