Blog of Khlebalin Dmitriy

(Записки из мира IT…)

Статистика по почтовым сообщениям Exchange 2010.


В рамках «разбора полетов» о том, как мы оказались в блек-листах интересно было понять, кто, что, куда, пересылает для этого интересно было посмотреть очереди и статистику за последние пару дней например, после того, как поток почтовых сообщений с нашего сервера возрос в разы.

Предыдущий пост на эту тему читаем здесь: https://khlebalin.wordpress.com/2014/08/07/%D0%BA%D0%B0%D0%BA-%D0%BC%D1%8B-%D1%81%D1%82%D0%B0%D0%BB%D0%B8-%D0%B7%D0%BB%D0%BE%D1%81%D1%82%D0%BD%D1%8B%D0%BC%D0%B8-%D1%81%D0%BF%D0%B0%D0%BC%D0%B5%D1%80%D0%B0%D0%BC%D0%B8-%D0%BF%D1%80%D0%B8%D1%87/

Если копать не глубоко, можно первоначально глянуть вот сюда:

snap

Если вы ничего массово не рассылаете, то очередь должна быть короткой, как сейчас… (в нашем случае, когда нас как раз «забанили», мы наблюдали совершенно иную картину, висело столько исходящих сообщений, что сервер на некоторое время «впадал в гидростопор» при попытке посмотреть куда и от кого это сообщение направляется.

Это достаточно поверхностный анализ, если необходим детальный, то лучше воспользоваться PowerShell:

Получения данной информации воспользуемся командлетом Get-MessageTrackingLog

Простой запуск данного командлета выведет на экран содержимое всех (по умолчанию хранится информация за последние 30 дней) лог-файлов почтового сервера (Message Tracking Logs). Вернее не всех, а лишь части, ограниченной тысячью записей. Чтобы снять это ограничение, воспользуемся ключем -resultsize unlimited

Get-MessageTrackingLog -resultsize unlimited

выведет нам список всех записей, доступных в лог-файлах.

Например нам нужно узнать, сколько сообщений было отправлено пользователям домена mail.ru за период с 1 по 10 августа  2014 года. Для получения данной информации нам нужно установить ограничение временного интервала. За это отвечают параметры Start и End. Так как нам нужно получить список отправленных сообщений, то нам необходимо установить отбор по типу события «Send«. Делается это при помощи ключа EventId. В итоге наша команда принимает вид:

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -End «08/10/2014» -EventId «Send»

Добавим вывод только нужных нам полей, например время события, отправитель сообщения, тема сообщения (данное действие делается лишь для наглядности вывода, если необходимо просто подсчитать количество сообщений, то ограничение, накладываемое функцией Select-Object можно не использовать)

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -End «08/10/2014» -EventId «Send» | Select-Object timestamp, sender, recipients, messagesubject

Теперь из списка всех отправленных сообщений выделим те, которые отправлялись получателям домена mail.ru
Для этого добавим выборку

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -End «08/10/2014» -EventId «Send» | Where {$_.Recipients -like «*@mail.ru»} | Select-Object timestamp, sender, recipients, messagesubject

Теперь на осталось только посчитать строчки, которые у нас получились.
Сделать это можно двумя способами.

1) воспользоваться командлетом Measure-Object

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -End «08/10/2014» -EventId «Send» | Where {$_.Recipients -like «*@mail.ru»} | Select-Object timestamp, sender, recipients, messagesubject | Measure-Object

2) передать вывод полученной нами команды в переменную, для которой затем воспользоваться командой count

$col = Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -End «08/10/2014» -EventId «Send» | Where {$_.Recipients -like «*@mail.ru»} | Select-Object timestamp, sender, recipients, messagesubject

$col.count

При должной фантазии можно получить вывод разнообразной интересной информации. Например, получить количество всех сообщений полученных из вне за период с 1 по 10 августа 2014 года.
Для этого воспользуемся конструкцией вида:

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -End «08/10/2014» -EventId «Receive» | Where {$_.Sender -notlike «*@yourdomain.com»} | Select-Object timestamp, sender, recipients, messagesubject | Measure-Object

В нашем текущем случае нам интересны  TOP-10 адресов, которые отправили самое большое число сообщений за  период с 1 августа 2014 года (если ранее не удалось понять, кто шлет тучи исходящих сообщений, то как раз таким образом мы увидим, что происходит).
Для начала получим список отправленных сообщений и выведем значения полей Sender и MessageId :

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -EventId «Send» | Select-Object Sender, MessageId

Затем из полученного списка возьмем только уникальные строки:

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -EventId «Send» | Select-Object Sender, MessageId | Get-Unique -AsString

Сгруппируем полученный результат по отправителю:

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -EventId «Send» | Select-Object Sender, MessageId | Get-Unique -AsString | Group-Object -Property Sender

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

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -EventId «Send» | Select-Object Sender, MessageId | Get-Unique -AsString | Group-Object -Property Sender | Select-Object name,count | sort count -desc

Ну и последним шагом оставим лишь первые TOP-10 отправителей:

Get-MessageTrackingLog -resultsize unlimited -Start «08/01/2014» -EventId «Send» | Select-Object Sender, MessageId | Get-Unique -AsString | Group-Object -Property Sender | Select-Object name,count | sort count -desc | select -first 10 | ft -auto

Запрос как раз и показал нам, что первым в с списке  TOP-10 отправителей и является пользователь hotline с данного ящика была попытка отправить 367000 (все они как раз стояли в очереди на отправку на момент блокировки, а сколько удалось отправить писем с этого ящика за выходные дни, это одному БОГУ известно).

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

Всем хорошей работы !!!

Реклама

12.08.2014 - Posted by | ms exchange 2010

3 комментария

  1. Дмитрий, а не хотели бы вы поставить ссылку на источник, откуда эта статья была взята?

    комментарий от Пупкин Василий | 20.08.2014


Sorry, the comment form is closed at this time.

%d такие блоггеры, как: