Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

1 Correlação de evento baseada em gatilho

Visão geral

A correlação de evento baseada em gatilho permite correlacionar problemas separados reportados por um gatilho.

Enquanto de forma geral um evento OK pode encerrar todos os eventos problema criados por um gatilho, há casos onde uma abordagem mais detalhada é necessária. Por exemplo, quando monitorando arquivos de log você pode querer descobrir certos problemas em um arquivo de log e encerrá-los individualmente em vez de todos ao mesmo tempo.

Este é o caso com gatilhos que possuem habilitada a Geração de Eventos Problema Múltiplos. Tais gatilhos são normalmente usados para monitoramento de log, processamento de trap, etc.

No Zabbix é possível relacionar eventos problema baseado em etiquetagem. Etiquetas são usadas para extrair valores e criar identificação para eventos problema. Tirando vantagem disto, problemas podem também ser encerrados individualmente com base na correspondência de etiqueta.

Em outras palavras, o mesmo gatilho pode criar eventos separados identificados pela etiqueta do evento. Assim eventos problema podem ser identificados um a um e encerrados separadamente com base na identificação pela etiqueta do evento.

Como isso funciona

No monitoramento de log você pode encontrar linhas similares a estas:

Linha1: Aplicação 1 parada
       Linha2: Aplicação 2 parada
       Linha3: Aplicação 1 foi reiniciada
       Linha4: Aplicação 2 foi reiniciada

A ideia da correlação de evento é estar apto a corresponder o evento problema da Linha1 à resolução da Linha3 e o evento problema da Linha2 à resolução da Linha4, e encerrar estes problemas um a um:

Linha1: Aplicação 1 parada
       Linha3: Aplicação 1 foi reiniciada #problema da Linha 1 encerrado
       
       Linha2: Aplicação 2 parada
       Linha4: Aplicação 2 foi reiniciada #problema da Linha 2 encerrado

Para fazer isto você precisa etiquetar estes eventos relacionados como, por exemplo, "Aplicação 1" e "Aplicação 2". Isto pode ser feito pela aplicação de uma expressão regular à linha de log para extrair o valor da etiqueta. Então, quando eventos são criados, eles são etiquetados como "Aplicação 1" e "Aplicação 2" respectivamente e o problema pode ser correspondido à resolução.

Configuração

Item

Para começar, você pode querer definir um item que monitora um arquivo de log, por exemplo:

log[/var/log/syslog]

Com o item configurado, aguarde um minuto para que as mudanças de configuração sejam capturadas e então vá até últimos dados para certificar-se de que o item iniciou a coleta de dados.

Gatilho

Com o item funcionando você precisa configurar o gatilho. É importante decidir quais entradas no arquivo de log são dignas de atenção. Por exemplo, a seguinte expressão de gatilho buscará por uma string como 'Parando (Stopping)' para sinalizar possíveis problemas:

find(/My host/log[/var/log/syslog],,"regexp","Parando")=1 

Para certificar-se que cada linha contendo uma string "Parando" é considerada um problema também defina o Modo geração de evento problema na configuração do gatilho para 'Múltiplo'.

Então defina uma expressão de recuperação. A seguinte expressão de recuperação solucionará todos os problemas se uma linha de log é encontrada contento a string "Iniciando (Starting)":

find(/My host/log[/var/log/syslog],,"regexp","Iniciando")=1 

Como nós não queremos este comportamento, é importante certificar-se de alguma forma de que os problemas raíz sejam encerrados, e não todos os problemas. É aqui onde a etiquetagem pode ajudar.

Problemas e soluções podem ser correspondidos especificando uma etiqueta na configuração do gatilho. As seguintes configurações devem ser feitas:

  • Modo geração de evento problema: Múltiplo
  • Evento OK encerra: Todos os problemas se valores de etiqueta corresponderem
  • Informe o nome da etiqueta para correspondência de evento

  • configure as etiquetas para extrair os valores de etiqueta das linhas do log

Se configurado com sucesso você conseguirá ver os eventos problema etiquetados por aplicação e correspondidos à sua solução em MonitoramentoProblemas.

Devido possibilidade de má configuração, quando etiquetas de evento similares podem ser criadas para problemas não relacionados, por favor revise os casos destacados abaixo!

  • Com duas aplicações gravando mensagens de erro e recuperação no mesmo arquivo de log um usuário deve decidir usar duas etiquetas Aplicação no mesmo gatilho com valores de etiqueta diferentes pelo uso de expressões regulares separadas nos valores de etiqueta para extrair os nomes de, digamos, aplicação A e aplicação B da macro {ITEM.VALUE} (p.e. quando os formatos de mensagem diferem). No entanto, isto pode não funcionar como planejado se não houver correspondência com as expressões regulares. Expressões regulares não correspondidas renderão valores de etiqueta vazios e um único valor de etiqueta vazio em ambos os eventos PROBLEMA e OK é suficiente para correlacioná-los. Então uma mensagem de recuperação da aplicação A podem acidentalmente encerrar uma mensagem de erro da aplicação B.
  • Etiquetas vigentes e valores de etiqueta só se tornam visíveis quando um gatilho é disparado. Se a expressão regular utilizada for inválida, ela é silenciosamente substituída por uma string *DESCONHECIDO*. Se o evento problema inicial com um valor de etiqueta *DESCONHECIDO* é ignorado, podem existir eventos OK subsequentes com o mesmo valor de etiqueta *DESCONHECIDO* que podem encerrar eventos problema que não deveriam ter sido encerrados.
  • Se um usuário usa a macro {ITEM.VALUE} sem funções de macro como valor de etiqueta, a limitação de 255 caracteres se aplica. Quando mensagens de log são longas e os primeiros 255 caracteres não são específicos, isto pode também resultar em etiquetas de evento similares para problemas não relacionados.