shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Monitorando ocorrências em log e disparando alarme


From: Oscar Marques
Subject: Re: [shell-script] Monitorando ocorrências em log e disparando alarme
Date: Fri, 29 Apr 2011 19:40:19 -0300

Complementando, seria bom ler:

http://pt.wikipedia.org/wiki/M%C3%A1quina_de_estados_finitos

Em 29 de abril de 2011 16:25, Enio Onodera <address@hidden> escreveu:

>
>
> Não seria possível analisar e deletar linha por linha ao invés do
> arquivo.log.buffer todo?Desse modo, mesmo que algumas linhas sejam
> acrescentadas, ela vai ser detectada no próximo evento do cronjob.
>
> Abs,Enio Onodera
> --- Em sex, 29/4/11, Kurt Kraut <address@hidden> escreveu:
>
> De: Kurt Kraut <address@hidden>
> Assunto: [shell-script] Monitorando ocorrências em log e disparando alarme
> Para: address@hidden
> Data: Sexta-feira, 29 de Abril de 2011, 12:29
>
>
>
>
> Aloha,
>
> Tenho que monitorar um daemon proprietário que felizmente gera um arquivo
>
> .log em tempo real, com uma transação por linha. Eu preciso detectar a
>
> ocorrência de linhas nesse log que tenham os termos 'publish' ou
> 'unpublish'
>
> e tomar ações baseado no surgimento desses termos no log. É tolerável que a
>
> solução leve 5 minutos ou menos para detectar a ocorrência desses termos.
>
> Minha dúvida é, qual a melhor abordagem? O que pensei foi:
>
> tail -f arquivo.log | grep -F "publish" >> /tmp/arquivo.log.buffer
>
> E fazer um cronjob que rodasse a cada minuto verificando linha a linha do
>
> /tmp/arquivo.log.buffer para tomada de decisão e apagando o conteúdo do
>
> arquivo após analizado. Porém, como esse arquivo não parará de ser escrito,
>
> corre o risco de acontecer a seguinte sequência de eventos:
>
> 1) /tmp/arquivo.log.buffer é escrito com conteúdo
>
> 2) o cronjob que realmente analiza o conteúdo dele é disparado
>
> 3) Uma nova ocorrência é gravada em /tmp/arquivo.log.buffer
>
> 4) O arquivo /tmp/arquivo.log.buffer é apagado/limpo sem que a ocorrência
> do
>
> item acima seja detectada
>
> Uma forma de evitar isso seria sempre copiar o /tmp/arquivo.log.buffer para
>
> um arquivo temporário $(mktemp) antes de ser analisado. Mas fico com a
>
> sensação que já é gambiarra demais. Gostaria de ter uma solução limpa pois,
>
> no futuro, pretendo transformar isso num script do Nagios para que ele se
>
> encarregue de monitorar as ocorrências e disparar os alarmes.
>
> Alguém sugere alguma abordagem?
>
> Cordialmente,
>
> Kurt Kraut
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Oscar Marques
address@hidden
http://www.dunkelheit.com.br
Twitter: @f117usbr
+55 21 9293-9343

------------------------------------
Participe do I Hack'n Rio <http://hacknrio.org/>
------------------------------------


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]