Я ищу несколько указателей, чтобы улучшить решение для следующей проблемы.Несмотря на то, что я работаю с набором инструментов Unix, я больше придерживаюсь общего подхода, а не реализации.
Вот и мы:
Каждый доступ к веб-сайту должен быть зарегистрирован, и бизнес-пользователи должнывозможность сообщить об этом почти в реальном времени (допустима 5-минутная задержка).Отчетность будет отфильтрована по пользователю или периоду времени или их комбинации.
Доступ анонимного пользователя также регистрируется, и информация перед входом в систему должна быть привязана к зарегистрированному пользователю после входа анонимного пользователя.
Я хочу регистрировать каждый доступ к странице (GET или POST) плюс любые параметры плюс отметка времени.
Требование о предоставлении отчетов: «Скажите, что сделал пользователь 1 с 11:15 до 11:18»
И ответ должен быть:
- В 11:15:23 он зашел на домашнюю страницу.
- В 11:15:49 он зашел на страницу о нас.
- В 11:16:23 он зашел на страницу входа.
- В 11:16:34 он попытался войти с именем пользователя "hacked".
- В 11:16:38 запрос на вход не выполнен - неверное имя пользователя / пароль
- В 11:16:45 он вошел в систему с именем пользователя "myuser"
- В 11:17:12 он перешел на страницу продуктов.
Решением было бы вставить все это, используя идентификатор сессии в качестве первичного ключа и идентификатор учетной записи, а также данные запроса в базу данных.
Чтобы не перегружать базу данных, подключите очередь сообщений между ними и отложите запись в базу данных.
Однако, учитывая количество данных в базе данных, создание отчетов может быстро замедлиться.
Мне известны такие решения, как woopra , однако я хотел бы хранить данные о посетителях внутри компании, а также мне нравится идея внутренней отчетности с внутренним доступом к данным на основе ролей и т. Д.
Редактировать : Как вы делали что-то подобное в прошлом или как бы вы поступили, если бы у вас был полный выбор вариантов?