Статья расскажет вам о том, по какому принципу организуется
очередность в Exchange 2007. Начну, пожалуй, с пояснения, чем
отличаются архитектуры Exchange 2003 и 2007. При этом затрону
тему существования базы данных очередности в версии 2007.
Далее я расскажу о новом средстве для просмотра очередности в
Exchange 2007, что оно на самом деле делает, и зачем оно нам
нужно. И в конце я дам ответ на вопрос, как средство просмотра
очередности связано с PowerShell(силовая оболочка), дам
несколько полезных советов.
Очередность сообщений , введение.
Еще начиная с пятых версий (возможно даже 4), в Microsoft
Exchange была возможность просмотра обработанных сообщений,
тем не менее легкость и функциональность доступа менялась от
версии к версии. Так же случилось и с переходом от Exchange
2003 на Exchange 2007. Способ формирования очередности очень
сильно изменился, мы перешли от метода, при котором каждый
SMTP виртуальный сервер имел свою собственную директорию на
разделе NTFS, на метод создания базы данных(с информацией о
очередности), используя стандартный движок «расширяемого
хранилища»( Extensible Storage Engine (ESE)). Лучшим
подтверждением полного изменения интерфейса в Exchange 2007
является тот факт, что он основан на новой консоли
управления(Microsoft Management Console (MMC) v3). Чтобы
подчеркнуть отличия интерфейсов, предлагаю посмотреть на
скриншоты, представленные ниже;
Рисунок
1: Местоположение очередей в Exchange 2003
В этой версии, действительно, было легко найти что-либо,
тем не менее был существенный недостаток – в каждый отдельный
момент времени можно было просмотреть очередь лишь одного
сервера.
Рисунок
2: Просмотр очередей в Exchange 2003
На рисунке номер 2 легко можно увидеть тип очереди и ее
статус. В данном случае нетрудно увидеть, что есть пара писем,
ждущих отправки. Скорее всего они представляют собой отчеты о
неудачной отправке со спам-адресов.
Используя Exchange 2007, очередность просматривается с
помощью специального средства Queue Viewer («просмотрщик»
очереди), которое можно найти среди других утилит на панели
управления (Toolbox area), которая показана на рисунке 3.
Рисунок
3: Новая панель управления в Exchange 2007
Открыв Queue Viewer, становится ясно, что он построен на
MMC(Microsoft Management Console) 3 версии, обратите внимание
на рисунок 4.
Рисунок
4: Интерфейс средства просмотра очередности
Основным преимуществом является возможность создать
собственную консоль, используя всего лишь одно средство
просмотра.Это позволит вам следить сразу за несколькими
серверами одновременно.
Рисунок
5: Добавление консоли в средство просмотра очередности
Казалось бы, посмотрев на изменения в интерфейсе, самое
время перейти к фундаментальной теории, исходя из которой
строятся очереди в Exchange 2007, тем не менее до этого вам
следует знать еще кое-что. Не все сервера Exchange 2007
записывают информацию о очередях. Огромная разница заключается
в том, что в Exchange 2003 все сервера были вовлечены в
передачу сообщений, каждый их них обладал очередностью. В
Exchange 2007 только центральный и крайний(граничный)
транспортные сервера хранят информацию о очередях.
Теория очередности
Итак, мы хотим узнать, куда же дели базу данных? Как
говорилось выше, вся информация об очередности хранится в базе
данных ESE. Файл базы данных(основной) назван mail.que и по
умолчанию его можно найти C:\Program Files\Microsoft\Exchange
Server\TransportRoles\data\Queue
Рисунок
6: Папка, которая содержит файлы базы данных
Тут же находятся и другие файлы.
- Trn.chk – Файл проверки(контрольный)
- Trn.log – Лог-файл конкретной операции
- Trntmp.log – Еще один лог-файл
операций, созданный на опережение. (временный)
- Trnnnn.log – Другой лог-файл операций,
который создается, если trn.log достигает максимального
размера
- Trnres00001.jrs – Резервный лог-файл
- Trnres00002.jrs – Второй резервный файл
- Temp.edb – Временный файл базы, с
которым происходит сверка при загрузке.
Вы наверняка захотите узнать, что происходит с логами во
время работы. Принцип работы круговой, каждый раз после
завершения всех операций, логи конкретных операций
удаляются.
Перед тем как перейти к другой области, было бы разумно
остановиться на вопросе перемещения баз данных. Основной
причиной их передвижений является производительность. Другая
менее известная причина – жесткий диск, содержащий базу
данных, должен иметь не менее 4Гб свободного места, иначе
сервер будет испытывать сильное давление, что приведет к
уменьшению скорости передачи потока сообщений.
При перемещении базы данных и логов конкретных операций
соблюдаются определенные правила. Чтобы переместить базу
данных, вам необходимо отредактировать файл конфигурации
EdgeTransport.exe(граничный, краевой транспорт), который по
умолчанию можно найти C:\Program Files\Microsoft\Exchange
Server\Bin\EdgeTransport.exe.config,
затем необходимо остановить и перезапустить сервис
msexchangetransport(перемещение ms exchange).
Что вам нужно знать до того, как вы начнете редактировать
файл конфигурации? Исходная директория содержит правильные
разрешения(как установлено ниже). Таким образом директория
будет создана для вас.
- Network Service: Full Control (сетевая
служба – полный контроль)
- System: Full Control (Система – полный
контроль)
- Administrators: Full Control
(Администраторы – полный контроль)
Соответствующие строки показаны ниже. Чтобы переместить
базу данных, нужно отредактировать строку, содержащую
“QueueDatabasePath”, для перемещения логов следует изменить
строку, содержащую “QueueDatabaseLoggingPath”. На рисунке 7
показан пример того, как я переместил мою базу данных и логи
на H:
Рисунок
7: Изменение файла конфигурации
EdgeTransport.exe.config
Посмотрев на базу данных, самое время понять, что в нее
входит. Существует несколько различных очередей:
- (Submissions)К обработке: используется
для хранения всех сообщений, которые необходимо обработать и
переправить с помощью транспортных агентов.
- (Poison message)Вредоносные сообщения:
особая очередь, содержащая изолированные сообщения, которые
были признаны потенциально опасными для системы после
неудачной попытки обработать.
- (Remote delivery)Удаленная доставка:
очередь содержит сообщения, отправляющиеся на удаленный
сервер с использованием SMTP.
- (Mailbox delivery)Почтовая доставка:
очередь содержит сообщения, отправляющиеся на почтовый ящик,
используя зашифрованные Exchange RPC.
- (Unreachable destination)Недостижимое
местоназначение: Каждый транспортный сервер содержит лишь
одну такую очередь, в нее записываются сообщения, которые не
могут быть доставлены адресату.
Использование очередности
Теперь с использованием MMC v3 интерфейс стал очень
простым. По умолчанию средство просмотра сообщений отображает
очереди транспортного сервера, на котором Вы залогинены. Чтобы
подсоединиться к другому серверу, используйте средство
«Connect to Server» (соединиться с сервером).
Рисунок
8: Процесс подключения к серверу
Основное окно средства просмотра очередности открывается с
двумя метками наверху, которые показывают все очереди и
сообщения по умолчанию. После открытия двойным щелчком
появляется другая метка, показывающая только сообщения в
конкретной очереди.
Рисунок
9: Отображение меток в средстве просмотра очередности
Чтобы управлять очередностью, вам необходимо лишь выделить
объект и посмотреть возможные действия на правой стороне окна,
как показано на рисунке 9.
Ключевая особенность Exchange 2007 – фильтрация сообщений.
Приведем пример использования фильтра в случае спам-атаки.
Будучи администратором, вы можете использовать преимущество
«Bulk Action» (массового действия), особенности, которая
воздействует на все сообщения, содержащие похожий параметр,
указанный в настройках фильтра. Это позволит избавиться от
спама с NDR или без него.
Рисунок
10: Фильтрация, показанная в метке сообщения
Рисунок
11: Еще несколько опций фильтрации
Еще несколько опций средства просмотра очередности показаны
ниже.
- Suspend queue(Приостановление очередь)
– действие временно приостанавливает отправку сообщений,
содержащихся в этой очереди.
- Resume queue(Возобновление очереди) –
действие противоположное Suspend queue.
- Retry queue(Повтор очереди) – когда
соединение со следующей ступенью очереди неудачно,
происходит установка таймера. Действие вызывает немедленную
попытку соединения.
- Suspend message(Остановленное
сообщение) – действие временно прекращает отправку одного
сообщения.
- Resume message(Возобновленное
сообщение) – противоположное действие Suspend message.
- Remove message(Удалить сообщение) –
действие навсегда прекращает попытку отправки сообщения.
- Export message(Экспорт сообщения) –
действие копирует сообщение в указанное Вами место. При этом
не удаляется из очереди, до того как вы сможете это сделать,
следует поместить его в suspend message queue.
Очередность и PowerShell(силовая оболочка)
Нам известно, что вся консоль (Exchange Management Console)
основана на PowerShell. Нужно отметить, что при открытом окне
средства просмотра сообщений можно попробовать остановить
сервис msexchangetransport, появится ошибка. На рисунке 12
видны команды PowerShell, которые исполняются, чтобы добраться
до интерфейса средства просмотра очередности.
Рисунок
12: Командная ошибка PowerShell
Я пришел к выводу, что можно использовать PowerShell для
управления очередностью. Для начала я использовал команду,
представленную ниже, чтобы вывести список всех возможных
действий с очередностью.
Get-command *queue*
Рисунок
13: Get-command *queue*
Затем я попытался получить список возможных команд,
применимых к сообщениям
Рисунок
14: get-command *message*
Обладая этим знанием, я запустил команду получения очереди
(get-queue)
Рисунок
15: get-queue (получение очереди, вызов списка)
Далее я стал искать какую-нибудь очередь, в которой
содержится менее 100 сообщений. Было обнаружено 3 очереди,
которые не содержали ни одного сообщения.
Все очереди кроме submission queue (к обработке, была
описана выше) после доставок всех сообщений удаляются. В
submission queue всегда есть какие-либо сообщения, ожидающие
разбиения на категории.
Рисунок
16: get-queue с фильтрацией
Вы заметили, что управление очередями при помощи
PowerShell(а точнее через команды, встроенные туда, которые
запускают конкретный скрипт) значительно проще, чем при
использовании VBScript. Да, пускай примеры выше довольно
просты, но знание их поможет двинуться дальше, никто не
запретит вам удалять сообщения, которые идут от некого
anything@spammer.com с рейтингом SCL выше, чем 5.
Remove-Message -Filter {FromAddress -like "*spammer.com*" -and SCL -gt 5} -withNDR $false
Вывод
Надеюсь, что работа позволила понять Вам как работать с
очередями в Exchange 2007. Для дополнительной информации о
внутренней организации очередей обратитесь к файлу помощи
Exchange 2007, который можно скачать здесь:
http://www.microsoft.com/downloads/details.aspx?familyid=555F5974-9258-475A-B150-0399B133FEDE&displaylang=en