_______________
Update:
Exchange Server 2013 – чистим мусор. Дополнение.
___________________
В Exchange Server 2013 есть одна особенность, которой не было в предыдущих версиях: журналы Exchange Server включены всегда. Почему так сделано? Чтобы быстрее находить и устранять неисправности. Если журнал выключен и произошёл сбой, то у вас нет или очень мало информации о причинах сбоя – нужно включить журналы и воспроизвести проблему, а это потеря времени, да и как воспроизвести проблему, если о ней ничего толком неизвестно? – замкнутый круг. Поэтому журналы всегда включены, и это порождает новое требование: необходимо дополнительно около 30Gb на диске для размещения журналов Exchange Server 2013. Это описано в документации. Более подробно ситуация описана в статье Exchange 2013 Logging and Space Requirements.
Но как всегда находятся подводные камни.
Exchange Server 2013 активно использует IIS, а его журналы также пишутся на диск, но в свои директории. И эти журналы могут достаточно быстро заполнять диск, т.к. никто их по умолчанию не контролирует и не удаляет. Их можно отключить, но если следовать выше описанной логике, то лучше этого не делать.
Штатных средств контроля за размером директории с журналами в IIS как не было, так и нет, поэтому нужно предпринять дополнительные усилия для настройки такого контроля и очистки директории с журналами IIS от старых файлов.
Скорее всего вам уже приходилось сталкиваться с такой проблемой в других ситуациях: там где используется IIS – там всегда есть возможность неконтролируемого роста его журналов. Например это может быть WSUS или Sharepoint.
Мне не хотелось слишком усложнять задачу, но хотелось бы иметь инструмент, который будет достаточно универсальным и сможет удалять файлы старых журналов IIS на любом сервере (я ограничился Windows Server 2012/2012 R2). Ниже приведен скрипт, который решает поставленную задачу. Его легко изменить, чтобы он работал не только с Exchange серверами.
Особенность скрипта в том, что он сам находит директории с журналами для всех сайтов IIS на указанном сервере. Если вы переместили журналы на другой диск или в другую директорию, то скрипт будет работать без изменений.
В переменной $daysholdlogs содержится число последних дней, за которые файлы журналов не удаляются. В переменной $MailServer укажите любой свой CAS сервер.
Скрипт работает по WS—Management (WinRS), который должен быть настроен. Это используется для подключения к Exchange серверу для получения списка Exchange серверов: нужны соответствующие права, или вы можете явно задать список имен IIS серверов, удалив код подключения к Exchange.
Скрипт в следубщей статье Exchange Server 2013 – чистим мусор. Дополнение.
Filed under: Exchange, Powershell, Windows | Tagged: Exchange, Exchange 2013, IIS, Powershell, Windows |
Можно просто включить компрессию NTFS для папок с журналами IIS, и поразиться результату.
Можно. Это увеличит допустимое время хранения.
Но все равно настанет время почистить мусор :-)
[…] Exchange Server 2013 – чистим мусор […]
Илья, я бы добавил в скрипт другие директории, тоже весьма тяжелые:
gci ‘C:\Program Files\Microsoft\Exchange Server\V15\Logging’,’C:\inetpub\logs’ -Directory | gci -Include ‘*.log’,’*.blg’ -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-1) | Remove-Item
[…] Exchange Server 2013 – чистим мусор, Exchange Server 2013 – чистим […]