Мне просто интересно, есть ли какой-то модуль, который может обнаруживать определенное событие в журнале доступа / ошибок и, если он соответствует ему, отправлять электронное письмо с информацией.
Пример: я хочу определять, когда кто-то делает такие запросы: www.mysite.com/../../../etc/passwd или аналогичные. Я хочу получать информацию по электронной почте, когда это произойдет.
Заранее спасибо.
Это не невозможно, но я бы не рекомендовал делать это с модулем.
Вместо этого используйте что-нибудь вроде апач-скальп для непрерывного анализа файла журнала и генерации сообщений о тревогах.
(Если вы действительно хотите сделать это с помощью модуля apache, вам нужно перенаправить эти запросы на страницу с ошибкой, состоящую из сценария, который будет отправлять почту. Ищите директивы Redirect и Location. Но это было бы большим хлопот поддерживать его в актуальном состоянии.)
Обычно такие вещи не нужны. На одном из моих LAMP я настроил fail2ban
для обнаружения большого количества 404 \ 503 \ и т.д. и запрета доступа httpd с IP пользователя на 10 минут. Я заставил старое оборудование предотвратить перегрузку сервера из-за большого количества одновременных запросов.
Следующая идея, вы могли бы написать парсер логов :)
Создайте скрипт под названием log_monitor.sh
:
#!/usr/bin/perl -w
use strict;
my $cachefile="/var/cache/lastpos-apache2-scan4maxclntOrSigKill";
my $logfile="/var/log/httpd/error_log";
my $searchstr="sigkill|reached maxclients|apply process slot|read data timeout|Premature end of script headers";
my $lastpos=0;
if (-f $cachefile) {
open FH,"<".$cachefile;
$lastpos=<FH>;
close FH;
};
my $newpos=(stat $logfile)[7];
open FH,"<".$logfile;
seek FH,$lastpos,0;
while (<FH>) {
print if m/$searchstr/i;
};
close FH;
open FH,">".$cachefile;
print FH $newpos;
close FH;
модифицировать $searchstr
по мере необходимости.
настроить скрипт на запуск каждые X минут через cron. чем больше значение X, тем меньше писем вы будете получать (только 1 электронное письмо каждые X минут для всех ошибок, соответствующих указанным вами строкам). результаты работы cron будут отправлены вам по электронной почте автоматически (если cron настроен правильно)