Проблема. Есть софт DLP для разбора всех писем организации. Включено журналирование на exchange 2016 в определённый ящик “securet”. Так вот он долга обрабатывает письма. Рвёт соединение по imap. Пример:
2021-03-03 06:22:47,557 ERROR [ImapConnector.cs:611.ProcessDataFromServerAsync] IMAP-подключение 1 (Imap): Cannot get and save message (ID: 1365556909:5301357): System.IO.IOException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at MailKit.Net.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) --- End of inner exception stack trace ---
И не мог удалить. 5 раз пытался и отваливался:
2021-02-20 00:03:29,986 ERROR [ImapConnector.cs:759.ProcessDataFromServerAsync] IMAP-подключение 1 (Imap): Cannot delete messages from server: MailKit.Net.Imap.ImapCommandException: The IMAP server replied to the 'EXPUNGE' command with a 'NO' response: EXPUNGE failed. at MailKit.Net.Imap.ImapFolder.<ExpungeAsync>d__108.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at FalconGaze.SecureTower.MailProcessingServer.ImapConnector.<ProcessDataFromServerAsync>d__5.MoveNext()
Сначала думали на ограничение по imap. Сделали отдельную политику ThrottlingPolicy.
Get-ThrottlingPolicy FMCC | Set-ThrottlingPolicy -ImapMaxConcurrency 200 -ImapMaxBurst 2400000 -ImapRechargeRate 3600000 -ImapCutoffBalance 6000000
Не помогло тока проц на сервере exchange жрать начал.
Потом зашёл на owa. И вижу много писем в удалённых пол миллиона. DLP должна сразу удалять письма мимо корзины. Поиски привели меня
https://docs.microsoft.com/ru-ru/exchange/policy-and-compliance/recoverable-items-folder/recoverable-items-folder?view=exchserver-2019
По умолчанию срок хранения удаленных элементов 14 дней, а квота элементов для восстановления 30 gb.
При удалении сообщений из почтового ящика пользователя сообщение фактически не удаляется, а перемещается в скрытую папку Recoverable Items.
Смотрим заполнился или нет
Get-MailboxFolderStatistics -Identity "secure" -FolderScope RecoverableItems | Format-Table Name,FolderAndSubfolderSize,ItemsInFolderAndSubfolders -Auto
Квота заполнилась. Надо почистить.
Search-Mailbox -Identity secure -SearchDumpsterOnly -DeleteContent
После этого проверяем
Для того, чтобы избежать повторения ситуации есть два способа – увеличить лимит на папку Recoverable Items, либо снизить время хранения в ней сообщений.
Первый вариант:
Set-Mailbox mailbox -RecoverableItemsQuota 50GB -UseDatabaseQuotaDefaults $false
Второй вариант (например, уменьшаем срок хранения 0):
Set-Mailbox mailbox -UseDatabaseRetentionDefaults $false -RetainDeletedItemsFor 0
Запустил политику принудительно
get-mailbox secure | start-managedfolderassistant
Я применил оба так как очень много писем журналируются.
Проверить настройки ящика
Get-Mailbox "secure" | Format-List *Quota*,RetainDeletedItemsFor,UseDatabaseRetentionDefaults,*singlei*
Ps:
Сделал еще удаление из папки удаленные. Подумал зачем удалять сначала в корзину, а потом из корзины в восстановление.
Сделал тег хранения в exchange
New-RetentionPolicyTag "1 day Delete basket secure" -Type "DeletedItems" -Comment "Deleted Items are purged in 1 days" -RetentionEnabled $true -AgeLimitForRetention 1 -RetentionAction PermanentlyDelete
Потом связал тег с политикой хранения
New-RetentionPolicy "1 day Delete basket secure" -RetentionPolicyTagLinks "1 day Delete basket secure"
Потом повесил политику на ящик.
Set-Mailbox "secure" -RetentionPolicy "1 day Delete basket secure"
Ну и проверить что политика на месте
Get-Mailbox secure | Select RetentionPolicy
Similar Posts:
- Zabbix. Очистить базу zabbix.
- Как вывести квоту и размер ящика через exchange management shell
- Как очистить ящик exchange от устройств если их нету в мобильных устройствах и в Get-ActiveSyncDeviceStatistics через powershell
- Как подключиться к почте Exchange через Powershell на другом сервере и создать почтовый ящик пользователю.
- Как узнать кто давно не подключался к почтовому ящику в exchange.