2010-12-13 2 views
2

Мы разрабатываем более крупное веб-приложение базы данных с Perl Catalyst и PostgreSQL под Linux. Пользователи могут входить в систему, загружать и загружать файлы данных (научные измерения).Как реализовать долгосрочную статистику и кратковременный журнал?

Мне интересно, как реализовать систему регистрации/статистики.

  1. Мы должны рассматривать общие тенденции доступа, и хочет анализировать трафик, вызванный некоторыми пользователей/IP-адресами и получить номера доступа к определенным файлам или темам. Я думал о чем-то вроде RRDtool, чтобы реализовать это или записать общие числа в другую таблицу базы данных. Мне было бы неплохо получить некоторые визуальные графики из данных доступа :-)

  2. Кроме того, нам необходимо проанализировать активность за последние дни в деталях. Если возникли проблемы или атаки, их следует понимать и отменять. IMO для этого необходим журнал действий в таблице базы данных.

Можете ли вы дать мне некоторое вдохновение о том, как реализовать эти вещи? Я хотел бы использовать ту же систему как для ведения журнала, так и для долгосрочной статистики. Возможно, мы можем накапливать данные журнала после периода, например. 7 дней. Не то чтобы я понятия не имел, как это сделать, но я хотел бы услышать мнение кого-то другого.

Подсказки к полезным модулям CPAN приветствуются. Мы знаем и уже используем log4perl, но это слишком детализировано для хранения в течение ~ 7 дней ...

+0

К сожалению, не модуль CPAN, но на работе мы добавили аудит в одно из наших веб-приложений в виде плагина DBIx :: Class. По сути, каждое действие (в любом случае, важные важные), которые влияют на данные, регистрируются пользователем и до и после данных. Может быть, это не так полезно для загрузки, но может быть что-то для рассмотрения. –

ответ

0

На самом деле, я думаю, вы ответили сами, RRDTool довольно хорош для долгосрочного использования, я использую его для 1/2hr автоматические показания счетчиков для общей котельной системы с трехлетним окном. Хорошие графики тоже.

Однако я предполагаю, что все это выполняется под веб-сервером, а загрузки и загрузки генерируют записи в файле журнала Apache (например), тогда у вас есть много вариантов: http://httpd.apache.org/docs/current/mod/mod_log_config.html.

Это будет означать, что вы могли бы использовать Webalizer для «обычных» отчетов и писать ролл-своего собственного для деталей, может быть, начиная с: http://search.cpan.org/~ulpfr/Logfile-0.302/Logfile.pod

надеюсь, что это немного полезно, это широкий, широкий вопрос хоть.