Мы используем 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
чтобы увидеть, что не фильтруется никакими правилами,
очень полезны для отладки.