Поделиться через


Управление хранилищем файлов журналов IIS

Джим ван де Эрв

Вы можете управлять объемом дискового пространства сервера, используемого файлами журналов СЛУЖБ IIS, с помощью сжатия, удаленного хранилища и удаления сценариев.

Общие сведения

Файлы журналов, создаваемые службами IIS, со временем могут занимать большой объем дискового пространства. Журналы потенциально могут заполнить весь жесткий диск. Чтобы устранить эту проблему, многие пользователи полностью отключают ведение журнала. К счастью, существуют альтернативные варианты, например:

Описанные выше способы устранения рисков описаны в разделах ниже. Для управления использованием диска также может потребоваться выполнить следующие действия.

  • Ограничение размера журнала путем пропуска ненужных полей свойств
  • Создание отдельных журналов для веб-сайтов и приложений
  • Сохранение ресурсов памяти с помощью централизованного двоичного ведения журнала.

Дополнительные сведения см. в разделе Настройка ведения журнала в IIS.

Включение сжатия папок

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

  1. Щелкните значок диспетчера файлов на панели значков.
  2. Перейдите в папку, содержащую файлы журнала IIS (по умолчанию ). %SystemDrive%\inetpub\logs\LogFiles
  3. Щелкните правой кнопкой мыши папку и выберите пункт Свойства.
  4. На вкладке Общие на странице Свойства нажмите кнопку Дополнительно.
  5. Щелкните Сжать содержимое, чтобы сэкономить место на диске, а затем нажмите кнопку ОК. Включение сжатия
  6. Нажмите кнопку Применить, а затем укажите, следует ли сжать только папку или папку, ее вложенные папки и файлы.
  7. Нажмите кнопку ОК. Убедитесь, что содержимое папки сжато. Имя папки и имя каждого файла должны быть выделены синим цветом, а размер файла сжатия должен быть меньше.

Это простой способ снизить использование диска. Однако это не окончательное решение, так как использование диска по-прежнему растет со временем и может в конечном итоге заполнить жесткий диск.

Если папка уже содержит значительный объем данных, сжатие содержимого может занять некоторое время. Кроме того, обратите внимание, что этот одноразовый процесс может замедлить работу компьютера во время начального сжатия, поэтому, если это рабочий сервер, выполните эту операцию в часы низкой нагрузки, чтобы предотвратить ухудшение работы службы.

Перемещение папки журнала в удаленную систему

Файлы журналов IIS по умолчанию хранятся в папке %SystemDrive%\inetpub\logs\LogFiles сервера IIS. Папка настраивается в свойстве Directory на странице Ведение журнала для сервера или отдельного сайта. Чтобы уменьшить проблему использования диска журнала, можно переместить файлы журналов IIS в папку на другом сервере с большим объемом места. Этот сервер может находиться в том же домене, что и локальный сервер IIS, или в другом домене. Вы можете удаленно сохранять файлы журналов для всего сервера или для отдельных веб-сайтов.

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

Измените расположение файла журнала IIS на удаленную общую папку следующим образом:

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

  2. На странице Свойства папки на вкладке Общий доступ нажмите кнопку Общий доступ , чтобы предоставить общий доступ к каталогу. На вкладке Безопасность назначьте группы и пользователей с соответствующими разрешениями. Убедитесь, что соответствующие группы и пользователи могут считывать файлы журнала и записывать их в них. Свойства папки журнала

    Дополнительные сведения см. в разделе Настройка разрешений для удаленного ведения журнала.

    Примечание. Если вы хотите записывать файлы журналов на удаленный сервер в другом домене, см. статью Настройка сеанса null для междоменного ведения журнала.

  3. Откройте диспетчер IIS на локальном веб-сервере.

  4. В диспетчере IIS в области Подключения выберите сервер или веб-сайт.

  5. Дважды щелкните ведение журнала. Значок ведения журнала

  6. В текстовом поле Каталог введите полный UNC-путь к каталогу, созданному на удаленном сервере. Например, введите \servername\Logs, где "servername" представляет имя удаленного сервера, а "Журналы" — имя общей папки, в которой хранятся файлы журнала. Страница «Ведение журналов»

  7. В области Действия нажмите кнопку Применить, а затем нажмите кнопку ОК. Все веб-сайты в каталоге должны начать запись данных в удаленный общий ресурс.

    Дополнительные сведения см. в разделе Удаленное ведение журнала.

Удаление старых файлов журнала по скрипту

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

Следующий VBScript проверка возраст каждого файла журнала в папке и удаляет все файлы журнала старше указанного возраста. Чтобы настроить скрипт в соответствии с вашими целями, просто измените имя и путь к папке в строке 1 скрипта, а максимальный возраст — на нужное значение в днях в строке 2.

sLogFolder = "c:\inetpub\logs\LogFiles"
iMaxAge = 30   'in days
Set objFSO = CreateObject("Scripting.FileSystemObject")
set colFolder = objFSO.GetFolder(sLogFolder)
For Each colSubfolder in colFolder.SubFolders
        Set objFolder = objFSO.GetFolder(colSubfolder.Path)
        Set colFiles = objFolder.Files
        For Each objFile in colFiles
                iFileAge = now-objFile.DateCreated
                if iFileAge > (iMaxAge+1)  then
                        objFSO.deletefile objFile, True
                end if
        Next
Next

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

Чтобы запустить скрипт вручную, выполните следующий сценарий в командной строке администратора: cscript.exe c:\scripts\retentionscript.vbs

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

Запуск скрипта в качестве запланированной задачи

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

  1. Откройте диспетчер сервера, в меню Сервис выберите пункт Планировщик задач.
  2. В области Действия диалогового окна Планировщик задач щелкните Создать задачу. Создание элемента управления
  3. На вкладке Общие диалогового окна Создание задачи введите имя задачи, например "Удалить файлы журнала". Задайте свойства безопасности, выбрав учетную запись пользователя с достаточными привилегиями для запуска скрипта. Диалоговое окно
  4. Откройте вкладку Триггеры и нажмите кнопку Создать. В диалоговом окне Новый триггер установите для свойства Начать задачу значение По расписанию. Выберите периодичность, например Ежедневно. Введите дату начала , выберите дополнительные параметры и убедитесь, что выбран параметр Включено , если вы готовы инициировать расписание. Нажмите кнопку ОК. Диалоговое окно
  5. Перейдите на вкладку Действия, а затем щелкните Новое. В диалоговом окне Новое действие выберите значение для параметра Действие, в данном случае — Запуск программы. В разделе Программа/скрипт введите cscript, а в поле Добавить аргументы (необязательно) введите путь и имя файла скрипта, например C:\iis\Log\_File\_Deletion.vbs. Нажмите кнопку ОК. Диалоговое окно
  6. Нажмите кнопку ОК.
  7. Убедитесь, что задача добавлена в область Активные задачи .
  8. Щелкните правой кнопкой мыши новую задачу и выберите Выполнить. Диалоговое окно
  9. Перейдите в папку, в которую выполнялся скрипт, и убедитесь, что соответствующие файлы журнала были удалены.
  10. Вернитесь к планировщику задач, щелкните правой кнопкой мыши задачу и выберите команду Завершить , чтобы вернуться к состоянию Готово и задача готова к запланированным запускам.