[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]
- Monitorando ocorrências em log e disparando alarme,
Kurt Kraut <=