Очистка папки Logging Exchange 2013

Logging Exchange 2013
www.microsoft.com

Папка Logging Exchange 2013 располагается в каталоге установки сервера – %ExchangeInstallPath%. В ней находятся логи множества служб, обеспечивающих нормальную работу сервера, данные основных метрик производительности ПО и оборудования. Проблем добавляет тот факт, что в 2013 версии сервера ведение большинства логов активировано по умолчанию, что как минимум увеличивает потребность в свободном месте, а как максимум – добавляет головную боль системным администраторам (разумеется только тем из них, кому не наплевать на администрируемый ими сервис).


Найти больше информации по настройке и администрированию Exchange 2013 на моем блоге вы сможете в основной статье тематики – Exchange 2013 — Установка, настройка, администрирование.

См. также Логи IIS — очистка


Очистка папки Logging Exchange 2013

Для начала немного теории. Пропустите следующую главу, если хотите перейти сразу к делу.

Структура логов

Каталог %ExchangeInstallPath%Logging содержит в себе множество других папок в основном с .log-файлами. Структура для сервера Exchange 2013 с двумя ролями (CAS и MBX) выглядит приблизительно так:

exchange 2013 logging cleanup 01

При этом на серверах Exchange 2013 Edge также представлен этот каталог, но он имеет уже значительно меньшее количество подпапок, собственно как и компонентов, необходимых для работы роли:

exchange 2013 logging cleanup 08

Особенно интересна папка %ExchangeInstallPath%Logging\Diagnostics\DailyPerformanceLogs 1, в которой хранятся .blg-файлы, содержащие историю данных производительности сервера. Введение этого каталога в Exchange 2013 призвано упростить процедуру контакта с поддержкой Microsoft, сразу предоставляя им эти данные для анализа.

Команда для очистки

Для очистки папки можно использовать различные скрипты, которые в большом количестве представлены на просторах интернета 2, в том числе и на официальных ресурсах 3. Теоретически можно произвести очистку и вручную, но гуру Exchange так делать не рекомендуют. С чем это связано, непонятно, ведь те же скрипты выполняют самую обычную очистку директорий с некоторыми условиями – например удаляют файлы старше пары дней. Вот часть кода из упоминаемого выше скрипта:

Командлет Get-ChildItem 4 рекурсивно получает список файлов, ну а чуть ниже Remove-Item эти файлы удаляет:

Таким образом, если опустить различные проверки и доп. функционал типа уведомлений по электронной почте, удаление всех необходимых файлов из каталога Logging сводится к выполнению лишь одной команды:

Ну а теперь автоматизируем процесс.

Запланированное задание

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

Я предпочитаю выполнять запланированные задания с минимальными правами, которые необходимы для успешного выполнения задачи. Самый простой вариант – запланировать задание под вашей текущей учетной записью, под которой вы логинитесь на сервер. Но ведь у этой учетки как минимум права администратора сервера Exchange, а то и права администратора домена/схемы/предприятия. Не совсем правильно стартовать одну команду из под учетки с такими привилегиями. Сделаем по-другому.

Создадим отдельную учетную запись, администратором её делать не нужно:

exchange 2013 logging cleanup 03

Дадим учетной записи права Вход в качестве пакетного задания 5 (через оснастку управления политиками gpedit.msc):

Конфигурация компьютера\Конфигурация Windows\Параметры безопасности\Локальные политики\Назначение прав пользователя

exchange 2013 logging cleanup 04

Дальше необходимо выдать пользователю права на каталог %ExchangeInstallPath%Logging. Достаточно прав на чтение + права на удаление файлов и папок:

exchange 2013 logging cleanup 05

Следующий шаг – создание запланированного задания (в аргументах вставьте команду, о которой речь шла выше):

exchange 2013 logging cleanup 060

Ну и напоследок не забудьте проверить задание – выполните вручную и если все прошло хорошо (см. журнал задания), поставьте выполнение через 2-3 минуты от текущего времени, чтобы проверить как оно работает при автоматическим запуске.

exchange 2013 logging cleanup 07

Небольшая статистика: папка Logging стала занимать примерно 18ГБ на моем тестовом сервере после 3 месяцев его работы. При этом никакой реальной нагрузки на сервере не было. В продакшене логи могут разрастаться до сотен гигабайт и больше. Хорошо, если у вас виртуальная машина и вы можете не выключая её расширить объем системного диска (такая функция есть в Windows Server 2012 R2 для виртуальных машин второго поколения), а если у вас Exchange установлен на физическом сервере и увеличить диск С:\ возможности нет?..

Яндекс.Метрика