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

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

Monitorando ocorrências em log e disparando alarme


From: Kurt Kraut
Subject: Monitorando ocorrências em log e disparando alarme
Date: Fri, 29 Apr 2011 12:29:51 -0300

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]



reply via email to

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