Descobrir qual linha de log acionou uma notificação de logcheckd?

3

Estamos usando o pacote logcheck no Debian para o monitoramento de logs.

Se eu entendi corretamente, o logcheck monitora os logs, filtra as mensagens conhecidas (normais e sem importância) e aciona um e-mail se ocorrer alguma mensagem que possa indicar um problema.

Logcheck está me enviando um trecho do log (System Events). Mas o log não parece suspeito. Ele contém mensagens como:

Jul 31 08:22:03 example pop3d: Connection, ip=[::ffff:123.456.789.123]

Eu acho que o logcheck envia também a parte circundante do log, se houver uma linha que acionou a notificação - mas como posso descobrir qual linha exata acionou este e-mail?

    
por Alex 29.07.2013 / 09:21

1 resposta

1

Uma maneira de verificar o status da verificação de log é copiar todas as suas regras para um arquivo e, em seguida, usar egrep para a análise:

# First of all:
cat /etc/logcheck/ignore.d.server/ > /tmp/logcheckrules

# color last 10 log lines. Darken matches (which would not trigger a warning)
tail -n10 /var/log/syslog | GREP_COLOR=30 egrep --color -f /tmp/lcd

# When you have a single line and what to check wether your regex is working:
tail n-10 /var/log/syslog | GREP_COLOR=32 egrep --color "singleRegExpGoesHere" 

Descobrimos que no final muitas dessas mensagens que recebemos, acionaram a verificação de log.

No sistema há um arquivo "courier-pop" - mas isso corresponde a courierpop3login . Então, simplesmente copiámos esse arquivo e alteramos a string para pop3d .

Os comandos

cat /var/log/syslog|egrep -v -f /etc/logcheck/ignore.d.server/LOCAL

para mostrar o que ainda não foi filtrado neste arquivo

cat /var/log/syslog|egrep -f /etc/logcheck/ignore.d.server/LOCAL

para mostrar o que corresponde às regras de um arquivo, ou mesmo

cat /etc/logcheck/ignore.d.server/* | egrep -v -f /dev/stdin /var/log/syslog

para ver o que não é filtrado por nenhuma regra,

são bastante úteis para a depuração.

    
por 06.08.2013 / 12:12