На одном из хостов Windows Server 2019 после анализа свободного места, обнаружили что каталог ETLLogs с нескольким десятками Гб файлов расширением ETL (Event Trace Log).
Что интересно, обнаружить аномально разросшийся каталог ETLLogs с помощью утилит просмотра свободного места (типа WinDirStat или TreeSize) не удавалось, даже когда утилита была запущена с правами администратора. Найти проблемный каталог удалось, запустив утилиту от имени SYSTEM (для запуска программы от имени Local System используется команда:
psexec.exe -i -s WinDirStat.exe
).
Полный путь к папке с ETL логами
C:\ProgramData\Microsoft\Diagnosis\ETLLogs
. На сервере в этом каталоге оказалось несколько сот файлов с именами формата {GUID}_APPRAISER_UTC.etl с размерами около 100 Мб. Судя по датам ETL файлов, они создавались процессом CompatTelRunner.exe каждый день в течении длительного времени, что привело к исчерпанию свободного места на диске.
Данные логи с диагностическим данными создаются службами телеметрии Windows. ETL файлы логов в этом каталоге можно удалить вручную, это безопасно. Также для быстрой очистки собранных диагностических данных, перейдите в раздел Settings -> Privacy -> Diagnostics & feedback -> нажмите кнопку Delete в разделе Delete diagnostic data. Здесь же в параметре Feedback frequency измените значение на Never.
Чтобы предотвратить дальнейший сбор ETL логов, нужно изменить параметры служб телеметрии.
- Уменьшить уровень логирования диагностических данных. В Settings -> Diagnostics выберите опцию отправки только основных диагностических данных (Required diagnostic data).
- Изменить настройки телеметрии в локальной GPO. Откройте редактор локальной политики gpedit.msc, перейдите в Computer Configuration -> Administrative Templates -> Windows Components -> Data Collection and Preview Builds. Найдите параметр Allow Telemetry (или Allow diagnostic data в Windows 11 / Windows Server 2022). Включите политику и измените значение на Diagnostic Data off.
Этот параметр можно настроить напрямую через реестр:
reg add "HKLM\Software\Policies\Microsoft\Windows\DataCollection" /v "AllowTelemetry" /t REG_DWORD /d "0" /f
- Затем в GPO отключите участие в программе повышения качество ПО Windows: Computer Configuration -> Administrative Templates -> System ->Internet Communication Management -> Internet Communication settings. Включите параметр политик Turn off Windows Customer Experience Improvement Program.
- Отключить в планировщике задания Microsoft Compatibility Appraiser и ProgramDataUpdater. Отключим задания планировщика с помощью PowerShell:
Get-ScheduledTask 'Microsoft Compatibility Appraiser', ProgramDataUpdater | Disable-ScheduledTask
- Зтем отключите службы dmwappushservice и DiagTrack (Connected User Experiences and Telemetry):
Get-Service dmwappushservice, DiagTrack | Stop-Service
Get-Service dmwappushservice, DiagTrack | Set-Service -StartupType Disabled
Это позволит уменьшить размер сбора диагностических данных в ETLLogs.