В
данной лекции мы рассмотрим четыре типа журналов,
расскажем об их настройке и ведении на сайтах
IIS, о методах фиксации данных в формате,
содержащим информацию о пользователях,
подключающихся к веб-сайту.
Каждый тип журнала имеет как преимущества, так и
недостатки (см. табл. 11.1).
Таблица 11.1. Преимущества и недостатки
журналов
Тип журнала |
Преимущества |
Недостатки |
W3C Extended (Расширенный
формат журнала W3C) |
Наибольшее количество
параметров и информации. Самый
распространенный формат. Запись
кодов подсостояний |
Большой размер файла
при выборе слишком многих параметров. |
Microsoft IIS (Формат
журнала Microsoft IIS) |
Простота
импортирования в другие форматы
Неизменяемый ASCII-формат. |
Содержит только
основную информацию. |
NCSA Common (Общий
формат журнала NCSA) |
Распространенный
формат файлов, используемый многими
веб-серверами. Совместимость с
журналами веб-серверов не от
Microsoft |
Неизменяемый ASCII-формат.
Отсутствует возможность записи для
FTP-сайтов. Регистрирует самые
основные данные. |
ODBC (Журнал ODBC) |
Запись информации в
базу данных. Генерирование отчетов.
|
Многие
программы-анализаторы журналов не
работают с этим форматом. Фиксирует
меньше данных по сравнению с
расширенным форматом. |
Форматы
журналов
В
IIS используются четыре формата журналов:
- W3C
Extended (Расширенный формат журнала W3C);
- Microsoft
IIS (Формат журнала Microsoft IIS);
- NCSA
Common (Общий формат журнала NCSA);
- ODBC (Журнал
ODBC).
Форматы W3C Extended, Microsoft IIS и NCSA
Common являются текстовыми ASCII-форматами. В
журналах расширенного формата W3C и общего
формата NCSA используется четырехзначный формат
года, в журналах Microsoft IIS – двузначный
формат года (для обеспечения совместимости с
предыдущими версиями IIS).
Ведение
журналов на сайте
Ведение журналов настраивается либо на уровне
отдельного сайта, либо на компонентном уровне
IIS. Веб-сайты и FTP-сайты сгруппированы на
уровнях Web Sites и FTP Sites соответственно.
NNTP- и SMTP-сайты на компонентном уровне не
сгруппированы, и каждый узел представлен
отдельной записью в списке узлов локального
компьютера консоли IIS. Если ведение журнала
настраивается на компонентном уровне, то
указываемые настройки будут действовать для всех
сайтов рассматриваемого сервера. Если ведение
журналов настраивается на уровне отдельного
сайта, оно будет работать только для данного
сайта. Для включения журнала выполните следующие
действия.
- Откройте
консоль IIS MMC с помощью команды
Start\Administrative Tools\Internet
Information Services (IIS) Manager (Пуск\Администрирование\Диспетчер
IIS).
- Щелкните
правой кнопкой мыши на сайте или компоненте,
для которого настраивается журнал, и
выберите пункт Properties (Свойства).
- Параметры
ведения журнала всегда отображаются на
вкладке, открывающейся по умолчанию в окне
свойств выбранного компонента (см. рис.
11.1).
- Отметьте
опцию Enable Logging (Включить журнал).
- Выберите
нужный тип журнала в ниспадающем меню Active
Log Format (Формат активного журнала).
Рис. 11.1. Окно свойств веб-сайта
Окно свойств журнала
Нажмите на кнопку Properties (Свойства) в
области Enable Logging (Включить журнал) окна
свойств. Отобразится окно Logging Properties (Свойства
журнала) (см. рис. 11.2). Для каждого типа
журнала, кроме ODBC, вкладка General (Общие)
выглядит одинаково. Вкладка с дополнительными
параметрами отображается только при
использовании формата W3C Extended Logging (Расширенный
формат W3C).
Рис. 11.2. Окно свойств журнала
New Log Schedule (Расписание создания новых
журналов). В данной области указывается время
создания новых журналов.
- Hourly
(Ежечасно). Создается каждый час.
- Daily
(Ежедневно). Первая запись фиксируется
каждый день после полуночи
- Weekly
(Еженедельно). Первая запись фиксируется
после полуночи субботы, т.е. ранним утром в
воскресенье.
-
Monthly (Ежемесячно). Первая запись
фиксируется после полуночи последнего дня
месяца (т.е. в первый день следующего месяца).
-
Unlimited (Не ограничено). Всегда
используется один и тот же файл журнала. В
этом случае доступ к файлу журнала возможен
только при остановке службы, использующей
этот файл.
- When
The File Size Reaches (Когда размер
файла достигает). Файл журнала создается по
достижении указанного значения – от 1 до
4000 Мб.
Совет.
Выбор более короткого промежутка времени
приводит к созданию большего количества
журналов на жестком диске и позволяет более
точно контролировать периодичность записей
при помощи различных программных средств
управления журналами. При указании большого
размера журнал занимает, соответственно,
больше места на диске и дольше открывается.
Use Local Time for File Naming and Rollover
(Использовать местное время в имени файла).
Данная опция отображается только в окне свойств
журнала W3C Extended, потому что в остальных
форматах используется местное время. Расширенный
формат W3C использует время по Гринвичу (GMT)
или универсальное время (Universal Time Format,
UTC). Поскольку местное время обычно отличается
от универсального времени, эту опцию необходимо
включить.
Совет.
Рекомендуется проверять настройку временного
пояса на сервере. Если временной пояс
установлен неправильно, то время в журналах
будет интерпретироваться некорректно, что
приведет к искажению данных веб-анализа.
Choose the Log File Directory (Каталог файла
журнала). Для указания каталога, в котором будет
сохраняться журнал, введите путь к файлу журнала
либо нажмите на кнопку Browse (Обзор) и
перейдите в нужный каталог. По умолчанию указан
каталог %systemroot%\System32\LogFiles.
Каждый сайт имеет в этом каталоге свою
собственную папку. Для сайтов используются
следующие правила именования.
Веб-сайты |
W3SVC# |
FTP-сайты
|
MSFTPSVC# |
SMTP-сайты
|
SmtpSvc# |
NNTP-сайты |
NntpSvc# |
Символ "#"
обозначает номер конкретного узла. Каждому
создаваемому узлу присваивается свой номер,
сгенерированный случайным образом. Номер
веб-сайта по умолчанию всегда равен 1, поэтому
папка журнала сайта по умолчанию называется
W3SVC1. Если номер
второго веб-сайта –34523453,
то папка журнала этого сайта называется
W3SVC34523453.
Правила именования
журналов
Файлы журналов именуются в соответствии с
определенными правилами. Имя файла назначается
по периоду времени, в течение которого
фиксировались данные. Это позволяет определить,
к какому промежутку времени относится журнал.
Для
каждого типа журнала предусмотрены следующие
правила именования.
Hourly (Ежечасно) |
XXггммддчч.log |
Daily
(Ежедневно) |
XXггммдд.log |
Weekly (Еженедельно) |
XXггммнн.log |
Monthly (Ежемесячно) |
XXггм.log |
Символы "XX"
заменяются аббревиатурой, указывающей типа
журнала.
Журналы W3C |
ex |
Журналы Microsoft IIS |
in |
Журналы NCSA |
nc |
Примечание.
О журналах ODBC вы узнаете в разделе "Журналы
ODBC" далее в лекции.
При
ведении журнала с неограниченным размером файла
и при указании размера файла используются
одинаковые правила именования, индивидуальные
для каждого типа журнала.
Журналы W3C |
extend#.log |
Журналы Microsoft IIS |
inetsv#.log |
Журналы NCSA |
ncsa#.log |
Файлы журналов и
дисковое пространство
Если при добавлении записи в журнал
обнаруживается отсутствие свободного
пространства на жестком диске, то ведение
журналов отключается. В журнале приложения
сервера фиксируется соответствующее событие. IIS
выполняет мониторинг дискового пространства, и
после высвобождения на диске необходимого места
журнал IIS снова активируется.
Форматы
журналов
Каждый файл журнала имеет свой формат.
Рассмотрим форматы текстовых файлов журналов.
Расширенный
формат журнала W3C
Наиболее распространенным форматом журнала
является расширенный формат W3C. Он обеспечивает
высокую гибкость настройки параметров ведения
журнала. Данный формат предложен Консорциумом
WWW (W3C) – организацией, которая занимается
разработкой спецификаций для интернет-технологий.
Веб-сайт W3C расположен по адресу
http://www.w3.org.
Расширенный формат W3C является настраиваемым
ASCII-форматом, он позволяет задавать поля,
фиксируемые в журнале, ограничивая тем самым его
размер. Компания Microsoft использует несколько
дополнительных полей в формате W3C. Рассмотрим
этот формат более подробно.
Спецификации
расширенного формата журнала
Расширенный формат разработан для обхода
ограничений, имеющихся в общем формате, а также
для введения стандарта журналов, не зависящего
от операционной системы или веб-сервера.
Расширенный формат использует обычный ASCII-текст.
Каждая строка называется директивой или записью.
Директивы журнала. Директивы содержат
информацию о файле журнала и его свойствах.
Директивы отображаются в начале журнала, им
предшествует символ "#". Имеется всего семь
директив, однако только две из них являются
обязательными.
-
Version (Версия). Определяет версию
журнала W3C.
-
Software (Программное обеспечение).
Указывает программный пакет, с помощью
которого сгенерирован журнал.
-
Start-Date (Дата начала). Указывает дату
и время начала ведения журнала.
-
End-Date (Дата окончания). Указывает
дату и время окончания ведения журнала.
- Date
(Дата). Указывает дату и время добавления
директив в начало журнала.
- Remark
(Комментарии). Комментарии, вводимые в
журнал. Эта запись игнорируется программными
анализаторами журнала.
- Fields
(Поля). Указывает поля, используемые в
журнале. Это наиболее важная директива,
поскольку содержит подробную информацию о
том, как должны считываться данные из записи.
В директиве Fields содержится префикс,
определяющий ассоциирование данных с
клиентом и/или сервером.
Записи журнала. Записи журнала фиксируют
события текущего пользователя или события
процесса. Каждая запись включает префикс и поле.
Префикс отображается перед любым полем и
обозначает клиента и/или сервер, с которым
связаны данные. Описание префиксов приведено
ниже.
c |
Клиент |
s |
Сервер |
r |
Удаленный |
cs |
Клиент-сервер |
sc |
Сервер-клиент |
sr |
Сервер-удаленный сервер |
rs |
Удаленный сервер-сервер |
x |
Приложение |
Примечание.
Реализация расширенного формата журнала не
предусматривает использование префиксов
sr,
rs и
x. Они
включены в список для полноты повествования.
Каждая запись журнала отображается в отдельной
строке и отделяется пробелом. Это исключает
использование какого-либо символа (например,
запятой) для разделения записей. Ведь символ
разделения может находиться в самой записи, что
приведет к отрезанию содержимого журнала,
расположенного после него. Если запись в поле
отсутствует, то для обозначения пустой записи
используется символ "-". Таким образом, все
записи журнала содержат одинаковое число полей.
В
таблице 11.2 приведены поля, определенные для
ведения журнала в формате W3C.
Поскольку формат W3C является настраиваемым, в
него могут быть добавлены и другие поля.
Реализация журналов W3C от Microsoft
предусматривает дополнительные поля (см. табл.
11.3).
Таблица 11.2. Стандартные поля
расширенного формата журнала W3C
Поле |
Описание |
date |
Дата выполнения
транзакции. Имеет формат ГГГГ-ММ-ДД
и записывается согласно времени по
Гринвичу. |
time |
Время выполнения
транзакции. Имеет 24-часовой формат
и записывается согласно времени по
Гринвичу. |
time-taken |
Время , затраченное
на выполнение транзакции (с). |
bytes |
Количество переданных
байтов. |
cached |
Фиксирует успешное
обращение в кэш. |
ip |
IP-адрес и (необязательно)
номер порта (IIS использует
отдельное поле). |
dns |
Полное имя DNS (FQDN). |
status |
Состояние в терминах
FTP и HTTP. |
comment |
Комментарий,
связанный с кодом состояния. |
method |
Используемый метод. |
uri |
Полный URI.
|
uri-stem |
Основная часть URI. |
uri-query |
Часть URI,
представляющая собой запрос. |
Таблица 11.3. Дополнительные поля
расширенного формата журнала W3C
Поле |
Описание |
username |
Имя пользователя для
выполненной транзакции. |
sitename |
Номер службы
интернета и номер экземпляра, к
которому осуществил доступ клиент. |
computername |
Имя сервера, на
котором сгенерирована запись. |
port |
Номер порта. |
Win32-status
|
Состояние в терминах
Windows. |
version |
Версия протокола для
данной транзакции. |
host |
Содержимое заголовков
узлов. |
user-agent
|
Браузер клиента. |
Cookie |
Содержимое
отправленных или принятых элементов
cookie. |
referrer |
Адрес предыдущего
сайта. |
Примечание.
Некоторые пользователи могут спросить,
почему вместо URL используется URI. Ответить
на данный вопрос довольно сложно, поскольку
существуют классические и современные
интерпретации URI и URL. Даже W3C и IETF
согласны с тем, что эти сокращения часто
становятся причиной путаницы. Так как W3C
использует URI, в рамках этой лекции (и в
целях простоты) будем интерпретировать URI
как элемент, идентичный URL.
Расширенные параметры
ведения журнала W3C
Область Extended Logging Options (Расширенные
опции ведения журнала) во вкладке Advanced (Дополнительно)
(см. рис. 11.3) отображает свойства, указываемые
при создании файла журнала. После каждой опции в
скобках показан соответствующий префикс. В
реализации от Microsoft формат W3C оптимизирован
для ведения журналов с наиболее
распространенными полями. Расширенный формат
журнала использует стандарт W3C для префиксов и
полей.
Отметьте опции, соответствующие элементам,
которые необходимо включить в файл журнала.
Расширенные опции журналов W3C приведены в табл.
11.4.
Рис. 11.3. Окно Extended Logging Options
(Расширенные параметры ведения журнала)
Таблица 11.4. Расширенные опции журнала
W3C
Опция |
Префикс |
Описание |
Date |
|
Дата транзакции. |
Time |
|
Время транзакции. |
Client IP address
|
c-ip |
IP-адрес клиента. |
User Name
|
cs-username |
Имя пользователя,
используемое клиентом для
подключения к серверу; анонимные
пользователи обозначаются дефисом
("-"). |
Service Name |
s-sitename |
Имя сайта сервера. |
Server Name
|
s-computername |
Имя компьютера
сервера. |
Server IP Address
|
s-ip |
IP-адрес сервера. |
Server Port
|
s-port |
Номер порта,
используемого сайтом на сервере. |
Method |
cs-method |
Метод, используемый
клиентом для доступа к серверу (например,
HTTP GET). |
URI Stem |
cs-uri-stem |
Основная часть URI,
отправленная клиентом серверу, путь
к документу (все, что указывается
после имени сервера). |
URI Query
|
cs-uri-query |
Запрос URI,
отправленный клиентом серверу (если
таковой имеется). |
Protocol Status
|
sc-status |
Сообщение о состоянии
протокола (например, "404: HTTP не
найден"). |
Win32 Status
|
sc-win32-status |
Состояние Windows от
сервера клиенту (равно нулю при
отсутствии ошибок). |
Bytes Sent |
sc-bytes |
Количество байт,
отправленных сервером клиенту. |
Bytes Received
|
cs-bytes |
Количество байт,
отправленных клиентом серверу. |
Time Taken
|
time-taken |
Время, затраченное на
транзакцию (с). |
Protocol Version
|
cs-version |
Версия протокола (например,
HTTP/1.1). |
Host |
cs-host |
Заголовки узлов,
использованные клиентом для доступа
к серверу. |
User Agent |
cs(User-Agent) |
Тип браузера клиента. |
Cookie |
cs(Cookie) |
Содержимое элементов
сookie. |
Referer |
cs(Referer) |
Адрес предыдущего
сайта. |
Коды ошибок
подсостояния
Журналы расширенного формата W3C позволяют
фиксировать ошибки на страницах. IIS6 не
возвращает коды ошибок подсостояний HTTP,
поэтому браузер не может определить, в чем
заключается ошибка. Например, состояние HTTP 404
означает следующее: "Файл или каталог не найден".
Эта ошибка возникает по многим причинам, и коды
подсостояний позволяют разъяснять их. Например,
состояние HTTP 404.2 означает, что политика
блокировки запрещает получение данного файла.
Для ASP необходимо включить расширение
веб-службы для активных страниц сервера.
Cообщение об ошибке полностью отображается в
файле журнала, а вот клиент получит только часть
этого сообщения – номер 404. Коды подсостояний
учитываются только в журнале расширенного
формата W3C.
На
рисунке 11.4 показан фрагмент журнала
расширенного формата W3C, открытый в программе
Notepad (Блокнот).
Несмотря на свою сложность, расширенный формат
W3C является очень гибким и позволяет
фиксировать максимальное количество параметров.
Рис. 11.4. Фрагмент журнала расширенного
формата W3C
Формат журнала
Microsoft IIS
Журнал Microsoft IIS представляет собой
неизменяемый файл ASCII, включающий основную
информацию о каждой транзакции. Этот формат
использует разделители-запятые и поэтому
прекрасно импортируется в Microsoft Excel. Поля
в журнале являются предопределенными и
неизменными, поэтому информация о заголовках не
очень важна, в отличие от формата W3C. Для этого
формата отсутствует окно расширенных параметров.
Пустое поле обозначается дефисом ("-"), время
фиксируется в местном 24-часовом формате.
Поля журнала Microsoft
IIS
Журнал Microsoft IIS включает следующие поля.
Поле |
Описание |
Client IP Address
|
IP-адрес компьютера
клиента. |
User Name
|
Имя пользователя,
используемое клиентом для
подключения к серверу; анонимные
пользователи обозначаются дефисом
("-"). |
Date |
Дата транзакции. |
Time |
Время транзакции. |
Service and Instance
|
Номер службы и
экземпляр определенного сайта (например,
W3SVC1). |
Computer Name
|
Имя NetBIOS сервера (примечательно,
что это не DNS-имя). |
Server IP-address |
IP-адрес сервера. |
Time Taken
|
Время, затраченное на
выполнение транзакции. |
Bytes Sent
|
Количество байт,
отправленных сервером клиенту. |
Bytes Received
|
Количество байт,
отправленных клиентом серверу. |
Service Status Code
|
Сообщение о состоянии
протокола (например, "404: HTTP не
найден"). |
Windows Status Code |
Состояние Windows от
сервера клиенту (равно нулю при
отсутствии ошибок). |
Request Type
|
Метод, используемый
клиентом для доступа к серверу (например,
HTTP GET). |
Target URL
|
Основная часть URI. |
Parameters
|
Параметры, переданные
сценарию. |
На
рисунке 11.5 показан фрагмент журнала в формате
Microsoft IIS.
Рис. 11.5. Фрагмент журнала Microsoft
IIS
Общий формат
журнала NCSA
Общий формат журнала NCSA представляет собой
неизменяемый) ASCII-файл. Он был разработан для
HTTP-сервера CERN – самого первого веб-сервера.
Данный формат не совместим с FTP-сайтами, тем не
менее, его можно использовать на SMTP- и NNTP-сайтах
IIS. Журнал NCSA фиксирует основную информацию о
транзакции. Поля в журнале разделяются пробелами,
пустое поле обозначается дефисом ("-"). Время
фиксируется в местном 24-часовом формате.
Поля журнала общего
формата NCSA
Журнал общего формата NCSA включает следующие
поля.
Поле |
Описание |
Remote hostname or IP
address |
IP-адрес удаленного
пользователя либо имя узла (при
наличии DNS), посредством которого
обработано имя. |
User Name |
Имя пользователя при
удаленном входе. |
Authenticated name |
Имя пользователя при
аутентификации на сервере. |
Date |
Дата, время и
временной пояс запроса. |
Request |
Использованные в
запросе метод, основная часть URI и
протокол. |
HTTP status code
|
Сообщение о состоянии
протокола (например, "404: HTTP не
найден"). |
Bytes transferred
|
Количество байт,
переданных клиентом серверу. |
На
рисунке 11.6 показан фрагмент журнала NCSA.
Рис. 11.6. Фрагмент журнала общего
формата NCSA
Преобразование журналов
в формат NCSA
Журналы, представленные другими форматами, можно
преобразовывать в формат NCSA. Для этого
используется утилита
convlog.exe, расположенная в каталоге
%systemroot%\System32.
При переводе журнала в формат NCSA отсутствующие
в этом формате поля игнорируются, а остальные
поля преобразуются в стандарт NCSA.
Утилиту Convlog
целесообразно применять в том случае, если
анализатор файлов журнала работает только с
форматом NCSA, либо преобразование файла
требуется для совместимости с веб-серверами,
работающими с форматом NCSA. Утилита
Convlog.exe
запускается из командной строки. Синтаксис
команды имеет следующий вид:
convlog [параметры] [файл
журнала]
Утилита convlog
поддерживает следующие параметры.
Параметр |
Описание |
-ii |
Задает в качестве
формата Microsoft IIS. |
-in |
Задает в качестве
формата NCSA. |
-ie |
Задает в качестве
формата W3C Extended. |
-t ncsa: |
Задает временной пояс
относительно времени по Гринвичу (например,
-0600). |
-o |
Задает папку данных
выхода. |
-x |
Задает сохранение
не-веб записей в отдельный файл
вывода с расширением
.dmp. |
-d |
Задает преобразование
IP-адресов в DNS-имена. |
-l0 |
Задает дату в формате
MM/DD/YY (по умолчанию) – это формат
даты США. |
-l1 |
Задает дату в формате
YY/MM/DD – это формат даты Японии. |
-l2 |
Задает дату в формате
DD.MM.YY – это формат даты Германии. |
Рассмотрим использование утилиты на примерах.
Пусть требуется преобразовать файл журнала в
формат Microsoft IIS, настроить его на
шестичасовое смещение относительно времени по
Гринвича и задать имя файла
in021104.log.
Команда примет следующий вид:
convlog -ii
in021104.log -d -t ncsa:-0600
Теперь преобразуем файл
ex040211.log из расширенного формата W3C
в формат NCSA, разместим его в папке
logfiles на
удаленном сервере server1
и заменим IP-адреса именами DNS:
convlog -ie
ex040211.log -d -o \\server1\logfiles
Присвоение имен файлам в утилите
Convlog. Файл,
получаемый после преобразования, называется так
же, как исходный, а его расширение зависит от
опции преобразования DNS. Файлы журналов,
сконвертированные без преобразования в
DNS-имена, имеют расширение
.ncsa. Файлы
журналов, сконвертированные с преобразованием в
DNS-имена, имеют расширение
.ncsa.dns.
Исходный файл журнала не удаляется.
Журналы ODBC
Журналы ODBC – это более сложный тип журналов,
он не имеет всех опций, доступных в журнале W3C.
Тем не менее, если вы хотите использовать свои
собственные, а не стандартные, оповещения о
событиях IIS, вам потребуется журнал ODBC.
Преимуществом журналов ODBC является то, что
файлы журналов для каждого IIS-сайта сохраняются
в одном месте, используется любая база данных,
совместимая с ODBC, например, MS Access, SQL
Server или Oracle. IIS не содержит готовой базы
данных, поэтому ее нужно создать
заблаговременно.
Примечание. ODBC открывает доступ к базе
данных для сохранения информации с помощью
стандартного программного интерфейса.
Журналы ODBC имеют фиксированные поля данных,
поэтому их нельзя изменять. Максимальное
количество символов в каждом поле ограничено –
255. Это не вызовет проблем, если записываемые в
поля адреса URL не слишком длинные. В журналах
ODBC фиксируется местное время.
Формат журнала ODBC
Журнал ODBC использует следующие поля.
Поле |
Описание |
ClientHost |
IP-адрес клиента. |
username |
Входное имя
пользователя. |
LogTime |
Время внесения записи
в журнал. |
service |
Идентификатор IIS
службы (например, W3SVC1). |
machine |
Имя компьютера
клиента. |
serverip |
IP-адрес,
используемый клиентом для доступа к
серверу. |
processingtime |
Время, затраченное на
обработку запроса (мс). |
bytesrecvd |
Количество байт,
отправленных клиентом серверу. |
bytessent |
Количество байт,
отправленных сервером клиенту. |
servicestatus |
Записывает сообщение
о состоянии протокола (например,
"404: HTTP не найден") |
win32status |
Записывает состояние
Windows с сервера на клиент. |
operation |
Метод, используемый
клиентом для доступа к серверу. |
target |
Основная часть URI,
отправленная клиентом серверу, а
также путь к документу (все, что
указано после имени сервера). |
parameters |
Параметры, переданные
сценарию. |
Создание базы данных
для журналов ODBC
Для установки базы данных создайте новую базу
данных. В рамках нашего примера используется MS
Access.
- Запустите
программу MS Access.
-
Отобразится диалоговое окно со следующими
вариантами: создание пустой базы данных,
использование мастера или открытие
имеющегося файла. Выберите создание пустой
базы данных. Вам будет предложено сохранить
базу данных.
- Укажите
любое имя и место расположения, поскольку
IIS будет использовать DSN для подключения к
базе данных.
Теперь создайте таблицу для хранения информации.
Вы можете создать таблицу и все поля вручную с
помощью графического пользовательского
интерфейса либо воспользоваться SQL. Создадим
таблицу с помощью SQL.
- В главном
окне базы данных выберите Insert\Query (Вставка\Запрос),
затем – Design View (Дизайн).
- После
выбора создания нового запроса появится окно
Show Table (Показ таблицы).
- Нажмите
Close (Закрыть), чтобы перейти в окно Select
Query (Выбор запроса).
- Выберите
команду View\SQL View (Просмотр\В виде SQL),
чтобы изменить представление.
Совет.
Если вы проводите тестирование или ведете
журналы только для одного веб-сайта, то
можно использовать MS Access. Если ведение
журналов организуется для более серьезных
целей, и журналы нескольких сайтов
записываются в одну базу данных,
настоятельно рекомендуем работать с более
серьезной базой данных. Microsoft свободно
распространяет продукт Microsoft Data
Environment (MSDE), который позволяет вести
журналы для нескольких сайтов. Суммарный
размер журналов в базе данных – 2 Гб. Для
очень больших журналов используйте Microsoft
SQL Server.
Для создания таблицы введите SQL-код, например:
create table inetlog (
ClientHost varchar(255),
username varchar(255),
LogTime datetime,
service varchar( 255),
machine varchar( 255),
serverip varchar( 50),
processingtime int,
bytesrecvd int,
bytessent int,
servicestatus int,
win32status int,
operation varchar( 255),
target varchar(255),
parameters varchar(255)
)
В
результате его выполнения будет создана таблица
inetlog, в которой содержатся все столбцы,
необходимые для хранения данных сайта IIS.
Синтаксис команды имеет следующий вид:
[имя_таблицы] [тип
данных (максимальный размер)]
В
нашем примере в таблице отсутствуют поля длиной
более 255 символов, причем размер поля задается
только для полей типа varchar (текстовых).
Если нужно переименовать таблицу (например, все
таблицы для сайтов должны находиться в одной
базе данных), то задайте другое имя в выражении
SQL. Запомните это имя, поскольку оно
потребуется при настройке свойств журнала.
Примечание. Приведенный здесь код SQL
содержится в файле
%systemroot%\System32\inetsrv\logtemp.sql
и может использоваться для создания таблицы
в любой серьезной СУБД (не только в Access).
После вставки сохраните SQL-код и закройте окно,
затем присвойте запросу имя для дальнейшего
использования. Теперь нужно выполнить запрос. В
результате будет создана таблица, отображающая
стандартное предупреждение. Закройте базу
данных, запомните ее название и место
расположения – эти данные потребуются в
дальнейшей работе.
Создание DSN для базы
данных
Создадим имя источника данных Data Source Name (DSN)
для оповещения системы о месте расположения базы
данных, чтобы выполнять обращение к базе по
имени, не указывая весь путь целиком. Выполните
следующие действия.
- Выберите
команду Start\Administrative Tools\Data
Sources (ODBC) (Пуск\Администрирование\Источники
данных ODBC).
- Откройте
вкладку System DSN (Системный DSN).
- Нажмите
на кнопку Add (Добавить) для добавления
нового источника данных.
- Появится
окно Create New Data Source (Создание нового
источника данных). Выберите источник данных,
который следует установить. В нашем примере
это будет Microsoft Access Driver (*.mdb).
- Нажмите
на кнопку Finish (Готово).
Появится диалоговое окно ODBC Microsoft Access
Setup (Установка драйвера ODBC для Microsoft
Access) (см. рис. 11.7). В этом окне укажите имя
источника данных DSN.
Рис. 11.7. Окно ODBC Microsoft Access
Setup (Установка драйвера ODBC для Microsoft
Access)
Это имя будет использоваться в окне свойств
журнала ODBC для подключения к базе данных,
поэтому должно быть легко запоминающимся. В
нашем примере задайте имя inetlogdb. Описание
укажите по своему усмотрению, введя нужную
информацию в соответствующее поле, например,
задайте путь:
D:\InetDB\LogFile.mdb.
Предупреждение. В имени для источника
данных настоятельно не рекомендуем
использовать пробелы, так как у некоторых
программ есть особенности, связанные с их
наличием в именах DSN. Избегайте
использования пробелов!
Теперь следует выбрать базу данных.
- В
диалоговом окне ODBC Microsoft Access Setup
(Установка драйвера ODBC для Microsoft
Access) нажмите на кнопку Select (Выбрать) и
перейдите к базе данных Access, созданной
ранее (в нашем примере это путь
InetDB\LogFile.mdb.
- Выберите
базу данных Access, после чего нажмите на
кнопку OK несколько раз, пока не закроется
ODBC Administrator.
Теперь все готово для настройки свойств журнала
ODBC, и следующий раздел можно пропустить. Если
вы работаете не с MS Access, то следующий раздел
– для вас.
Создание базы данных
без MS Access
Базу данных Access можно создать в окне ODBC
Microsoft Access Setup (Установка ODBC для
Microsoft Access). Здесь также выполняются
операции с существующими базами данных.
Для открытия окна настройки выполните следующие
действия.
- Выберите
команду Start\Control Panel\Administrative
Tools\Data Sources (ODBC) (Пуск\Панель
управления\Администрирование\Источники
данных ODBC.
- В окне
ODBC Data Source Administrator
(Администратор источников данных ODBC)
откройте вкладку System DSN (Системный DSN).
- Щелкните
на созданном вами источнике данных.
- Нажмите
на кнопку Configure (Настройка).
- Нажмите
на кнопку Create (Создать).
- В
диалоговом окне New Database (Создание базы
данных) укажите имя и расположение для базы
данных.
Выберите нужные опции.
- Format
(Формат). Номер версии используемой машины
базы данных Jet (не версией MS Access).
Значением по умолчанию для является версия
4.x. Не рекомендуется изменять это значение,
так как версии 3.x и 2.x не поддерживают
Unicode.
- System
Database (Системная база данных). При
выборе опции база данных создается как
системный DSN. Если при создании базы данных
вы находились во вкладке System DSN
(Системный DSN), имя источника данных будет
создано в этой вкладке по умолчанию.
-
Encryption (Шифрование). Позволяет
включить шифрование, чтобы информацию в базе
данных нельзя было прочесть с помощью
текстовых редакторов.
-
Network (Сеть). Позволяет связать
устройство с другим компьютером для
размещения на нем базы данных.
- Locale
(Национальные настройки). Позволяет выбрать
язык базы данных.
При создании базы данных описываемым способом
по-прежнему требуется таблица, и. возможно, это
легче сделать в MS Access. При отсутствии MS
Access используйте такой способ создания базы
данных, а затем с помощью SQL сформируйте
таблицу. MS Query (программа, поставляемая с MS
Excel) выполняет запросы базы данных Access. Для
получения дополнительной информации обратитесь к
документации по MS Query.
Настройка сайта на
журналы ODBC
Теперь выполним настройку веб-сайта на запись
информации в журнал базы данных.
- Перейдите
в окно свойств сайта, для которого
настраивается журнал ODBC, и выберите формат
активного журнала ODBC Logging (Журнал
ODBC).
- Нажмите
на кнопку Properties (Свойства) для открытия
окна свойств журнала ODBC (см. рис. 11.8).
- Введите
ранее созданный DSN (в нашем примере –
inetlogdb).
- Введите
имя таблицы (в нашем примере –
inetlog).
Рис. 11.8. Окно свойств журнала ODBC
Ниже приведены параметры окна свойств журнала
ODBC.
- ODBC
Data Source Name (DSN) (Имя источника
данных ODBC [DSN]). Укажите имя DSN,
выбранное ранее (в нашем примере –
inetlogdb).
- Table
(Таблица). Введите имя таблицы, созданное с
помощью выражения SQL (в нашем примере –
inetlog).
- User
Name and Password (Имя пользователя и
пароль). Если базе данных требуется имя
пользователя и пароль для доступа, их
следует ввести здесь. В нашем примере
оставьте поле пустым.
После настройки журнал ODBC готов к работе. Для
записи новой информации в базу данных журнала
сначала необходимо остановить сайт, для которого
ведется журнал.
Работа с
пользовательскими модулями журналов
Пользовательские модули журналов позволяют
создать свой собственный формат журнала с новыми
полями. Для этого создается COM-объект,
использующий интерфейс
IlogPlugin или
IlogPluginEx , а затем IIS с помощью
данного объекта вносит записи в журнал. При
использовании особых параметров ведения журнала
IIS отключает кэш режима ядра, поэтому
производительность системы снижается. Для
получения подробной информации о создании
COM-объекта обратитесь к документации IIS SDK.
IIS по умолчанию записывает файлы журнала в
папку %systemroot%\System32\LogFiles.
HTTP.SYS обычно поддерживает запись информации
журнала в эту папку. После определения
собственного модуля журнала он использует
учетную запись рабочего процесса, в котором
выполняется. Рабочие процессы выполняются в
учетной записи Network Service (Сетевая служба)
по умолчанию, поэтому могут возникнуть проблемы
при записи в папку %systemroot%.
Лучший способ обойти эту проблему – настроить
ваш модуль журнала на запись в другой каталог и
предоставить группе IIS_WPG разрешения на запись
в этот каталог.
Настройка
собственного модуля журнала в IIS
При использовании собственного модуля журнала
сначала нужно зарегистрировать его в системе.
Затем с помощью его глобально уникального
идентификатора (GUID) нужно выполнить
идентификацию модуля в метабазе. После
идентификации модуль можно использовать в IIS,
выбирая его в ниспадающем меню Active Log Fornat
(Формат активного журнала) в области Enable
Logging (Включить ведение журнала) консоли MMC.
- Откройте
файл MetaBase.xml
в программе Notepad (Блокнот) (здесь
подразумевается, что опция внесения
изменений во время работы включена; за более
подробной информацией по этой опции
обратитесь к лекции 9).
- Перейдите
в область
IISLogModules файла метабазы (см. рис.
11.9).
- Вставьте
запись IIsLogModule
для вашего модуля журнала, указав
дружественное, информативное имя. Это имя
будет отображаться в ниспадающем меню Active
Log Format (Формат активного журнала).
- Вставьте
LogModuleId с
помощью cls_id
COM-объекта.
- Вставьте
LogModuleUild
с помощью cls_id
UI COM-объекта.
Предупреждение. При неправильном
изменении или неточности в форматировании
метабазы вы можете нарушить работу IIS.
Пожалуйста, будьте осторожны!
Рис. 11.9. Область IISLogModule файла
метабазы
COM-объектом по умолчанию является
{FF160663-DE82-11CF-BC0A-00AA006111E0} –это
элемент управления собственным журналом или
iislog.dll. После
настройки этот элемент добавляется в ниспадающее
меню Active Log Format (Формат активного журнала)
в IIS MMC. Перечень доступных модулей журналов
индивидуален для каждой службы, например, служба
WWW может содержать опции, отсутствующие в
службе FTP. Если службе нужен журнал, то следует
включить ведение этого журнала с помощью
редактирования метабазы.
- Откройте
файл MetaBase.xml
в программе Notepad (здесь подразумевается,
что включена опция внесения изменений во
время работы).
- Перейдите
в область Info. Каждая служба имеет свою
собственную секцию:
IIsWebInfo,
IIsSmtpInfo,
IIsNntpInfo и
IIsFtpinfo.
- Добавьте
свой модуль в список ключа
LogModuleList
метабазы. Остальные записи представлены в
формате с разделителями запятыми.
Теперь вы можете выбрать пользовательский формат
журнала в списке Active Log Format (Формат
активного журнала) (см. рис. 11.10).
Рис. 11.10. Список форматов активного
журнала с созданным модулем
Централизованное ведение журналов в двоичной
форме
Посредством централизованного ведения журналов в
двоичной форме все веб-сайты сервера записывают
свои журналы в один файл. Если на сервере
находится много веб-сайтов, то файлы журналов
могут занимать значительную часть ресурсов
сервера. Централизованное ведение журналов
использует для фиксирования данных в журнале
один двоичный файл, что положительно влияет на
уровень производительности системы.
Централизованное ведение журналов является
свойством сервера, поэтому при включении
применяется ко всем сайтам сервера. После
установки централизованного ведения нельзя
выполнить настройку журналов на отдельных
серверах.
Установка
централизованного ведения журналов
Самым простым способом установки
централизованного ведения журналов в двоичной
форме является использование сценария
adsutil.vbs,
расположенного в каталоге
Inetpub\AdminScripts.
- Откройте
командную строку.
- Перейдите
в каталог
C:\Inetpub\AdminScripts (по умолчанию
он расположен на диске C. В вашем случае это
может быть другое место.)
- Введите
cscript.exe
adsutil.vbs set
w3svc/centralbinarylogingenabled true.
- Нажмите
на клавишу Enter.
- Выполните
команду Start\Control Panel\Services
(Пуск\Панель управления\Службы).
-
Остановите и запустите службу WWW в панели
управления Services (Службы).
После перезапуска службы WWW активизируется
ведение журнала в двоичной форме. Файл журнала
имеет расширение .ibl,
его содержимое записывается в двоичном формате,
поэтому просмотреть его в программе Notepad (Блокнот)
нельзя. При открытии файла вы увидите
беспорядочный набор символов вместо обычного
текста. Для извлечения данных используется
утилита обработки, включенная в пакет IIS 6
Resource Kit.
Анализ данных
Теперь можно начать работу с данными журнала.
Они позволят определить следующие факты.
Место, откуда посетители подключались к сайту –
национальный провайдер, компания, частный ISP,
страна и т.д.
Способ, посредством которого посетители открыли
сайт (указывается адрес расположения, из
которого был совершен переход). Это помогает в
определении эффективности рекламы и ссылок,
генерирующих трафик.
Поврежденные ссылки на этом сайте или на других
сайтах (ссылающиеся на данный сайт).
Данные о неавторизованном или злоумышленном
использовании сайта.
Наиболее и наименее популярные области сайта.
Файлы журнала, создаваемые IIS, имеют обычный
текстовый формат, но их анализ сложно выполнить
с помощью просмотра файла. Журналы не
упорядочивают данные должным образом, особенно
если фиксируют информацию нескольких сайтов. Для
просмотра журналов требуются специальные
программы просмотра. В WS03 таких программ нет,
поэтому придется их приобрести дополнительно. На
рынке имеется множество программ просмотра;
некоторые являются бесплатными, некоторые
коммерческими. Ниже приведены примеры таких
программ:
- WebTrends;
- Xcavate;
- Awstats;
- утилита
MS Log Parser.
Если вы хотите серьезно отслеживать данные
своего веб-сайта, то имеет смысл приобрести одну
из этих программ.
|