Переміщаємо і чистимо логи Exchange 2013
- Переміщаємо і чистимо логи Exchange 2013
- Transaction logs
- Queue Database
- Transport Logs
- IIS log files
- папка Logging
Переміщаємо і чистимо логи Exchange 2013
При впровадженні Exchange виникає неприємна ситуація - ми начебто всі вимоги за місцем для Exchange виконали, але воно невблаганно зменшується ... починаємо розбиратися і розуміємо що всілякі логи ростуть швидше ніж ми припускали, так як же з ними боротися? Далі описані способи по усіканню \ переміщенню різних логів, загалом все те, що допоможе нам вирішити проблему. Окремо зауважу, що вся інформація є в технічній бібліотеці technet 🙂 і тут вона всього лише підібрана для певної задачі: нагадати способи вирішення проблем з нестачею місця через розростання логів.
Transaction logs
Журнал транзакцій найважливіший елемент Exchange. Наведемо приклад: при відправці повідомлення транзакція спочатку записується в журнал. Поки транзакція не передалася в базу даних Exchange, ці дані існують тільки в системній пам'яті і журналах транзакцій. У разі аварії ви втрачаєте вміст пам'яті, і все, що у вас залишається, це записи в журналі транзакцій. Ці журнали важливі для відновлення пошкодженої бази. Те ж саме стосується і інших транзакцій: отриманих повідомлень, видалених елементів і повідомлень, переміщених в інші папки. Відповідно дані логи ростуть дуже швидко, як же їх зменшити?
1. Створення резервних копій
Однією з функцій, які виконуються при успішному завершенні повної або додаткової архівації, є усічення файлів журналу транзакцій, які більше не потрібні для відновлення бази даних. Exchange 2013 підтримує тільки резервні копії Exchange на основі служби тіньового копіювання томів (VSS).
Відмінна стаття з налаштування резервного копіювання з використанням Windows Server Backup тут
2. Включення Circular Logging
При включенні circular logging журнал транзакцій очищається відразу після того, як транзакції поміщаються в базу даних.
За допомогою EAC Circular Logging включається так:
При включеному циклічному веденні журналу розширеного обробника сховищ додаткові файли журналу не створюються, натомість при необхідності перезаписується поточний файл журналу. Однак в середовищі з безперервною реплікацією (DAG) файли журналу необхідні для доставки і перетворення журналів. В результаті при включенні циклічного ведення журналу безперервної реплікації поточний файл журналу не буде перезаписано, а для процесу доставки і перетворення журналів створюються закриті файли журналу, тобто забезпечується безперервність журналів, а журнали не видаляються, поки вони необхідні для реплікації. Служба реплікації Microsoft Exchange і служба банку даних Microsoft Exchange взаємодіють за допомогою віддаленого виклику процедур (RPC), що стосуються того, які файли журналу можуть бути видалені.
3. Переміщення Transaction logs
Ну і врешті-решт ми можемо перемістити логи разом з базою в інше місце \ інший диск.
Для цього є прекрасний командлет Move-DatabasePath. Наведемо приклад перенесення бази даних MDB01 і журналів транзакцій на диск M до відповідних директорії:
Move-Databasepath "MDB01" -EdbFilepath "M: \ DB \ MDB01 \ database \ mdb01.edb" -LogFolderpath "M: \ DB \ MDB01 \ logs \"
Queue Database
Це звичайно не логи, але якщо вам необхідно звільнити місце то переміщення даної бази може вам допомогти. Queue Database - це тимчасове сховище повідомлень, які мають наступну стадію обробки. Кожна чергу представляє собою логічний набір повідомлень, які обробляються сервером транспорту в певному порядку. Все черзі зберігаються в одній базі даних ESE. Черги розміщуються тільки на серверах поштових скриньок або на прикордонних транспортних серверах. Місцезнаходження бази даних черзі і її журналів транзакцій контролюється ключами в XML-файлі конфігурації програми% ExchangeInstallPath% Bin \ EdgeTransport.exe.config.
Все що ми можемо зробити з нею, це перемістити її в інше місце. Досить вичерпна інформація про переміщення знаходиться в бібліотеці technet в статті Change the Location of the Queue Database
Transport Logs
Журнали транспорту надають відомості про те, що відбувається в транспортному конвеєрі. Досить вичерпна інформація про відключення \ включенні логування та їх переміщенні знаходиться в бібліотеці technet в статті Transport Logs .
У Microsoft Exchange Server 2013 доступні наступні журнали транспорту:
- Agent logs
- Connectivity logs
- Message tracking and delivery reports
- Pipeline tracing
- Protocol logs
- Routing table logs
Наприклад змінити шлях зберігання Protocol logs через EAC: servers \ servers \ вибрати сервер \ transport logs \ protocol log
Наприклад змінити шлях зберігання Message Tracking через EAC: servers \ servers \ вибрати сервер \ transport logs \ message tracking log.
Окремо зауважу що перемістити можна тільки в локальну папку. Проблему з розміщенням на мережевому ресурсі можна обійти використавши команду mklink і створивши посилання на мережевий ресурс. Наприклад створіть посилання mklink / d «D: \ HubReceiveSMTPLog» \\ Server \ HubReceiveSMTPLog, тепер ви можете використовуючи командлет Set-TransportService і параметр -ReceiveProtocolLogPath «D: \ HubReceiveSMTPLog» зберігати ReceiveSMTP логи на мережевому ресурсі. Даний спосіб підходить і для інших логів.
IIS log files
У балці IIS у вас буде інформація наприклад про підключення вашого ipad за допомогою протоколу activesync. Розмір IIS логів, якщо за ним не встежити може бути дуже великим. Як же їх автоматом видалити або перемістити на інший диск?
1.Автоматіческое видалення логів
Запускайте щодня через scheduler наступний скрипт ps1 (змініть шлях зберігання логів якщо потрібно) і всі ваші логи IIS старше 30 днів будуть видалятися не вимагаючи вашої уваги.
set-location c: \ inetpub \ logs \ LogFiles \ W3SVC1 \
foreach ($ File in get-childitem) {
if ($ File.LastWriteTime -lt (Get-Date) .AddDays (-30)) {
del $ File
}
}
Запускати скрипт ps1 через scheduler ви можете наступним чином:
- Створіть завдання в scheduler
- Створіть action: start a program
- В поле program / script: C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe
- В поле add arguments (optional): -command "pathTOscript \ name.ps1"
2.Перемещеніе логів в інше місце
- Відкрийте IIS Manager from Administrative Tools і виберете Default Web Site.
- Відкрийте Logging (клацніть два рази на іконці Logging)
- Змініть місце зберігання логів
- Збережіть зміни. Наступний файл логу запишеться в нове місце зберігання
- Теж саме можна зробити при мощі powershell:
Import-Module WebAdministration
Set-ItemProperty 'IIS: \ Sites \ Default Web Site' -name logfile.directory «D: \ IISLogs»
папка Logging
І нарешті папка Logging яка за замовчуванням знаходиться в 'C: \ Program Files \ Microsoft \ Exchange Server \ V15 \ Logging. Тут зберігається безліч балок різних служб, і може займати досить велику кількість місця. Особливо виділяються за обсягом diagnostic and performance log files які знаходяться в папці 'C: \ Program Files \ Microsoft \ Exchange Server \ V15 \ Logging \ Diagnostics
На просторах інтернету було знайдено просте рішення цього питання, запускайте щодня через scheduler і все логи з цих папок старше 14 днів перестануть вас турбувати 🙂
gci 'C: \ Program Files \ Microsoft \ Exchange Server \ V15 \ Logging', 'C: \ inetpub \ logs' -Directory | gci -Include '* .log', '*. blg' -Recurse | ? LastWriteTime -lt (Get-Date) .AddDays (-14) | Remove-Item
PS Я особисто віддаю перевагу різати тільки diagnostics:
gci 'C: \ Program Files \ Microsoft \ Exchange Server \ V15 \ Logging \ Diagnostics' -Directory | gci -Include '* .log', '*. blg' -Recurse | ? LastWriteTime -lt (Get-Date) .AddDays (-2) | Remove-Item
Починаємо розбиратися і розуміємо що всілякі логи ростуть швидше ніж ми припускали, так як же з ними боротися?Відповідно дані логи ростуть дуже швидко, як же їх зменшити?
Як же їх автоматом видалити або перемістити на інший диск?
Blg' -Recurse | ?
Blg' -Recurse | ?