Где найти логи IIS

Обновлено 18.12.2022

iis logo

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами рассматривали, как можно установить Internet Information Services. Сегодня я хочу продолжить данную тему и показать вам где хранятся файлы журналов IIS, так как файлы журналов  Internet Information Services (IIS) содержат ценную информацию об использовании и состоянии Web приложений. Однако не всегда легко найти, где они  находятся, чтобы определить важные аспекты использования приложения, например, когда были сделаны запросы к серверу, кем и другие проблемы пользовательского трафика. Давайте разбираться.

Что такое журнал IIS?

Ведение журнала IIS — это ведение журнала на стороне сервера, которое включено для группы URL-адресов. Журналы IIS имеют фиксированный текстовый формат ASCII и не могут быть настроены. Там можно получить много ценной информации, когда вы ищите источник проблем на вашем веб-сервере. Очень частая ситуация, веб-приложение получает ошибку 5хх, не всегда по коду понятно, в чем причина, что делать, куда смотреть. Лично я такие обращения получаю от разработчиков раз в месяц стабильно.

🗒Расположение журналов IIS

По умолчанию логи IIS после установки располагаются по пути:

%SystemDrive%\inetpub\logs\LogFiles

Данную папку вы можете посмотреть в проводнике Windows. В папке LogFiles вы найдете папки с именами в формате:

  • ✅ W3SVC1
  • ✅ W3SVC2
  • ✅ W3SVC3

Число в конце имени папки соответствует идентификатору сайта. Таким образом, W3SVC2 соответствует идентификатору сайта 2.

Расположение логов IIS в проводнике Windows

Чтобы узнать ID у сайта вам нужно перейти в его дополнительные свойства.

Как узнать ID сайта IIS

Как узнать ID сайта IIS

Размер журналов будет зависеть от интенсивности записи в них и можете спокойно достигать по 500 МБ.

Размер журналов IIS

Так же вы можете посмотреть ошибки по пути:

%SystemDrive%\Windows\System32\LogFiles\HTTPERR

папка HTTPERR

📌Что делать, если вы не можете найти файлы логов IIS?

Администраторы или другой IT-персонал могут легко перенести каталог, в котором они хранятся, в другое расположение. В этом случае очень важно, чтобы пользователи могли быстро находить файлы журналов IIS, чтобы отслеживать работоспособность приложений, устранять неполадки или находить базовую информацию по проблемам кибербезопасности и управления данными.

Чтобы их найти, вы должны запустить оснастку Internet Information Services. Для этого запустите окно "Выполнить" и введите:

Запуск InetMgr.exe

Найдите интересующий вас сайт, после чего кликните по иконке "Logging".

Диспетчер IIS расположение логов

В разделе "Directory" вы увидите, где у вас лежат логи Internet Information Services. При желании вы можете это поменять. Обратите внимание на формат ведения журнала, по умолчанию будет W3C.

W3C используется для централизованного формата файла журнала W3C, для регистрации информации обо всех сайтах на сервере. Этот формат обрабатывается HTTP.sys и представляет собой настраиваемый текстовый формат ASCII, что означает, что вы указываете регистрируемые поля. Укажите поля, которые регистрируются в диалоговом окне "W3C Logging Fields", щелкнув "Select Fields" на странице Ведение журнала. Поля разделены пробелами, а время записывается в формате всемирного координированного времени (UTC). 

Настройка расположения логов IIS

 

По мимо текущих журналов, вы можете еще отслеживать ошибки и предупреждения IIS в логах просмотра событий. Так в журнале "Система" вы можете активировать фильтр с источником WAS. В результате вы получите много ценной информации по поиску проблем на IIS или его пулах.

Журнал WAS в Windows Server

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

  • ✅ IIS-CentralCertificateProvider
  • ✅ IIS-Configuration
  • ✅ IIS-Logging

Включение ведения дополнительных журналов IIS

⚙️Как найти файлы журналов IIS в Azure

Облако Azure:

  1. Файлы журналов IIS автоматически сохраняются в облачных службах Azure .
  2. Доступ к файлам журнала с помощью удаленного рабочего стола для подключения к определенному серверу. Там файлы хранятся по пути, похожему на этот: C:\Resources\directory\{какой-то случайный guid}.{имя приложения}.DiagnosticStore\LogFiles\Web\W3SVC{случайный номер}

Службы приложений Azure :

  1. Убедитесь, что ведение журнала веб-сервера включено.
  2. Настройте ведение журнала веб-сервера для сохранения в файловой системе.
  3. Файлы расположены в папке: D:\home\LogFiles\http\RawLogs через консоль KUDU.

📡Как узнать расположение логов IIS с помощью PowerShell

В оболочке PowerShell введите:

Get-Website yoursite | % { Join-Path ($_.logFile.Directory -replace '%SystemDrive%', $env:SystemDrive) "W3SVC$($_.id)" }

или

Get-Website yoursite | % { $_.logFile.Directory, $_.id }

или для всех сайтов

(Get-Website * | % { $_.logFile.Directory});ls $GetIISLogs\W3SVC1\*

Чтобы получить бонусные баллы, добавьте | iiк первой команде, которую нужно открыть в Проводнике, или | gciк просмотру содержимого папки.

Как удобно изучать логи IIS

Если использовать обычный блокнот для поиска информации в журналах Internet Information Services, то вы увидите, что это неудобно. Для более продуктивной работы я вам советую использовать бесплатную утилиту Log Parser. Я ее использовал уже для удобной работы с файлами формата log.

Где хранятся трассировки IIS

Если вы включите трассировки на сайте, то посмотреть соответствующие журналы можно по пути указанному в дополнительных свойствах сайта. Вам потребуется раздел "Failed Request Tracing". В моем случае это:

%SystemDrive%\inetpub\logs\FailedReqLogFiles

 

Где хранятся трассировки IIS FailedReqLogFiles

Как настроить расписание создания логов IIS

Если вы хотите настроить по какому расписанию должны создаваться журналы логов IIS, то вам это нужно сделать через диспетчер. Данная настройка делается, как на уровне всех сайтов, так и на уровне отдельного сайта. Найдите значок "Logging".

Расписание для создания нового файла журнала IIS

В разделе "Log File Rollover" выберите один из следующих вариантов. Расписание: для создания нового файла журнала на основе одного из следующих значений:

  • Ежечасно (Hourly): новый файл журнала создается каждый час.
  • Ежедневно (Daily): каждый день создается новый файл журнала.
  • Еженедельно (Weekly): каждую неделю создается новый файл журнала.
  • Ежемесячно (Monthly): каждый месяц создается новый файл журнала.

Вид ведения журналов логов IIS

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

Указание размера логов IIS

Выберите "Использовать местное время для именования и смены (Use local time for file naming and rollover)" файлов журнала, чтобы указать, что для именования файлов журнала и времени смены файлов журнала используется время локального сервера. Если этот параметр не выбран, используется всемирное координированное время (UTC).

Как выбрать поля W3C для регистрации

Для того, чтобы сделать для себя нужный список полей, которые должны появляться в логах Internet Information Services. Вы должны на уровне сервера или сайта нажать кнопку "Select Fiels" в разделе "Format"

Как выбрать поля W3C для регистрации

  • Дата (дата): дата, когда произошел запрос.
  • Время (время): время по всемирному координированному времени (UTC), когда был получен запрос.
  • IP-адрес клиента (c-ip): IP-адрес клиента, отправившего запрос.
  • Имя пользователя (cs-username): имя аутентифицированного пользователя, который получил доступ к вашему серверу. Анонимные пользователи обозначаются дефисом.
  • Имя службы (s-sitename): номер экземпляра сайта, выполнившего запрос.
  • Имя сервера (s-computername): имя сервера, на котором была создана запись в файле журнала.
  • IP-адрес сервера (s-ip): IP-адрес сервера, на котором была создана запись в файле журнала.
  • Порт сервера (s-port): номер порта сервера, настроенный для службы.
  • Метод (cs-метод): запрошенное действие, например, метод GET.
  • Основа URI (cs-uri-stem): универсальный идентификатор ресурса или цель действия.
  • Запрос URI (cs-uri-query): запрос, если таковой имеется, который пытался выполнить клиент. Запрос универсального идентификатора ресурса (URI) необходим только для динамических страниц.
  • Состояние протокола (sc-status): код состояния HTTP или FTP.
  • Подстатус протокола (sc-substatus): код подстатуса HTTP или FTP.
  • Состояние Win32 (sc-win32-status): код состояния Windows.
  • Отправлено байтов (sc-bytes): количество байтов, отправленных сервером.
  • Получено байтов (cs-bytes): количество байтов, полученных сервером.
  • Затраченное время (time-taken): продолжительность действия в миллисекундах.
  • Версия протокола (cs-версия): версия протокола, которую использовал клиент.
  • Хост (cs-host): имя хоста, если есть.
  • Пользовательский агент (cs(UserAgent)): тип браузера, который использовал клиент.
  • Cookie (cs(Cookie)): содержимое отправленного или полученного файла cookie, если таковой имеется.
  • Referrer (cs(Referrer)): сайт, который последний раз посещал пользователь. Этот сайт предоставил ссылку на текущий сайт.

Как очищать старые логи IIS

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

Дополнительные ссылки

  • https://learn.microsoft.com/en-us/iis/manage/provisioning-and-managing-iis/configure-logging-in-iis
  • https://learn.microsoft.com/en-us/iis/manage/provisioning-and-managing-iis/managing-iis-log-file-storage
Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *