Что хранить в типичном журнале доступа? - PullRequest
0 голосов
/ 13 июня 2011

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

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

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

Ответы [ 2 ]

1 голос
/ 13 июня 2011

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

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

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

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

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

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

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

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

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

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

1 голос
/ 13 июня 2011

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

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

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"

определено в Apache как:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...