Что хранить в обычном журнале доступа?

StackOverflow https://stackoverflow.com/questions/6331216

  •  27-10-2019
  •  | 
  •  

Вопрос

Я подумал о следующем:

  • идентификатор пользователя, если доступен
  • IP-адрес пользователя
  • отметка времени
  • действие выполнено

Я что-то упускаю?Есть ли какие-нибудь рекомендации?

Это было полезно?

Решение

На самом деле существуют разные виды журналов доступа. Наиболее распространенные из них предназначены для доступа к вашей странице и могут иметь формат, описанный сэром Дариусом (обычно это называется генеральным кодом кода).

Кроме того, существует также регистрация внутренних действий (обычно это называется генеральным кодом кода). Многие из них будут на низком уровне ведения журнала (это означает, что вы обычно не видите их, но можете временно включить их).

Если вы не примете мер предосторожности, вы получите журнал вроде:

  • Запрос XYZ выполняется за 2 мс
  • Запрос ABC выполняется за 1 мс.
  • Начало транзакции
  • Заказать отправку
  • Начало транзакции
  • Заказ удален
  • Запрос ABC выполняется за 1 мс

При исследовании производственной проблемы это часто бесполезно. Все остальные строки могут принадлежать тому же пользователю или разным пользователям. Вы не знаете.

Мне было легко иметь такой формат для каждой такой строки журнала:

  • Время
  • IP-адрес
  • Идентификатор сеанса
  • Идентификатор пользователя
  • Идентификатор / название темы
  • Идентификатор последовательности

Идентификатор или имя потока важны, чтобы вы могли различить ситуацию, когда один и тот же пользователь выполняет несколько запросов к вашему приложению одновременно.

Идентификатор последовательности - это счетчик, который внутренне считает каждый запрос, выполняемый пользователем с начала его сеанса (в Java я использовал для этого AtomicInteger). Идентификатор последовательности удобен, поскольку это более простой метод поиска при проверке всего, что произошло во время определенного запроса, поскольку идентификаторы потоков, конечно, повторно используются при обслуживании совершенно разных запросов. Это также удобно, когда вы обрабатываете один запрос внутренне, используя несколько потоков.

С небольшими усилиями такой формат журнала позволяет извлекать действия отдельного пользователя из журнала и увеличивать масштаб отдельных запросов.

Другие советы

Существуют руководящие принципы, которые следует использовать, если вы собираетесь использовать журналы доступа для сбора статистики для таких инструментов, как AWStats или Webalizer.

Например, есть комбинированный формат журнала :

родовое слово

определяется в Apache как:

родовое слово

Этот формат широко используется в Интернете и понятен большинству программ.

W3C определяет другой формат под названием Расширенный формат файла журнала , который указан здесь: http://www.w3.org/TR/WD-logfile.html

Этот формат используется, например, IIS, и его понимает AWStats.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top