Назад | Перейти на главную страницу

Выяснение, какая строка журнала вызвала уведомление logcheckd?

Мы используем logcheck пакет в Debian для мониторинга журналов.

Если я правильно понимаю, logcheck отслеживает журналы, отфильтровывает известные (нормальные и неважные) сообщения и отправляет электронное письмо, если возникает какое-либо сообщение, которое может указывать на проблему.

Logcheck отправляет мне отрывок из журнала (системные события). Но журнал не выглядит подозрительным. Он содержит такие сообщения, как:

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

Я думаю, что logcheck отправляет также окружающую часть журнала, если есть строка, которая инициировала уведомление, но как я могу узнать, какая именно строка инициировала это письмо?

Один из способов проверить статус проверки журнала - скопировать все ваши правила в файл, а затем использовать egrep для анализа:

# 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" 

Оказалось, что в итоге многие из тех сообщений, которые мы получили, запускали проверку журнала.

В системе есть файл "courier-pop", но он подходит для courierpop3login. Поэтому мы просто скопировали этот файл и изменили строку на pop3d.

Команды

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

чтобы показать, что еще не отфильтровано в этом файле

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

показать что Спички правила файла или даже

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

чтобы увидеть, что не фильтруется никакими правилами,

очень полезны для отладки.