среда, 24 сентября 2008 г.

Мое выступление на MCP клубе

Ну вот и свершилось! 16-ого сентября я выступил с докладом на MCP клубе. Уже не нужно никому объяснять что MCP клуб это встречи IT-специалистов. Встречи регулярно проходят в офисе Microsoft и каждый раз это очень интересные доклады, новые знакомства и вкусная пицца. :)

16-ого сентября было открытие нового сезона встречь. http://www.itcommunity.ru/blogs/locst_11_2_1.aspx/archive/2008/09/18/25607.aspx Мы говорили на тему Disaster Recovery и восстановления Exchange Server. Я делился своим опытом составления Disaster Recovery Plan’а и показывал как восстановить Exchange Server 2003. Так же была затронута тема восстановления Exchange Server 2007.

Запись презентации доступна здесь http://cid-29463fbb916d1951.skydrive.live.com/self.aspx/MCP%20Club%20Moscow/MDanshin%20Exchange%20Disaster%20Recovery%7C_080916.wmv, а слайды тут http://www.itcommunity.ru/blogs/locst_11_2_1.aspx/attachment/25342.ashx

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

Если Вас интересует какая ни будь тема связанная с Exchange и вы хотите, что бы я подготовил доклад на эту тему, то прошу Вас сообщить об этом. Я с удовольствием соберу материал, подготовлю презентацию и выступлю с докладом в рамках MCP.

четверг, 18 сентября 2008 г.

Как посчитать количество сообщений обработанных сервером Exchange?

Перед тем как внедрять Exchange Server в организации необходимо рассчитать мощность сервера. Для этого используются утилиты типа LoadSim или JetStress. Они создают нагрузку на сервер по заданным вами параметрам, и вы можете определить, удовлетворяет ли ваш сервер заданным или планирующимся нагрузкам.
А как быть когда вам нужно измерить текущую нагрузку на сервер? Соответствует ли она запланированной или нагрузка возросла?
Что если ваш сервер загружен почтовым потоком. Как определить, возрос почтовый поток или вас атакуют спамеры?
Нужно анализировать логи! Логично, но как и какие? Сложность так же заключается в том, что Microsoft не предоставляет инструмента для подобного анализа.
Для решения поставленной задачи нам понадобится утилита Log Parser. Я уже писал об этой утилите и о том как ей пользоваться для анализа журналов безопасности.
Аудит журнала безопасности или Чем анализировать события аудита NTFS
Теперь мы используем ее для анализа Message Tracking логов.
Для тех, кто хоть раз сталкивался с проблемами хождения почты наверняка знаком с инструментом Message Tracking Center (MTC). Лично я не раз (и не два) использовал этот инструмент для определения дошло ли письмо до адресата или нет. В организациях где больше одного Exchange Server'а данный инструмент вообще не заменим. Он сможет показать весь путь письма от его возникновения и до окончания передачи. Через какие сервера, внутри организации, он проследовало письмо или где оно застряло.
Работает этот инструмент очень просто. Он анализирует логии, в которых храниться вся информация, которая происходит с письмом от момента его возникновения и до момента доставки или не доставки. К сожалению единственное, что этот инструмент не делает это не может подсчитать количество сообщений. А производя трекинг не может вывести более тысячи записей. Но логи, с которыми он работает можно проанализировать вручную при помощи утилиты Log Parser. Скачать утилиту можно по следующей ссылке - http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en

Где лежат лог фалы можно посмотреть в свойствах сервера, через оснастку ESM. Как показано на скриншоте.
Если бы не их объем, то легко можно было бы открыть их в Microsoft Excel и наложить фильтр по нужным полям, но к сожалению Excel 2003 может открыть только 65535, а в Excel 2007 только 1048576, строк. Этого может оказаться мало. Да и времени на обработку уйдет гораздо больше. Если уметь пользоваться Log Parser, то проще воспользоваться им.
Для того, что бы собрать необходимые данные я использовал следующую строку запроса:

LogParser.exe" "SELECT MSGID INTO result.txt FROM 20080902.log GROUP BY MSGID " -i:TSV -nSkipLines:2 -o:CSV
Программа сделает выборку из файла 20080902.log по полю MSGID, сгруппирует их и запишет результаты в файл result.txt. В лог файле две первые строчки являются служебными и их нужно пропустить. Для этого мы используем параметр -i:TSV -nSkipLines:2, а параметр -o:CSV сообщает программе, что результаты нужно записать в формате CSV.
Для того, что бы можно делать выборку за определенный период времени я использую строку такого вида:
LogParser.exe" "SELECT Time, MSGID INTO result.txt FROM 20080902.log WHERE Time LIKE '8:%%' GROUP BY MSGID, Time" -i:TSV -nSkipLines:2 -o:CSV
Обратите внимание, в части SELECT добавилось поле Time. В запросе появился фильтр WHERE Time LIKE с параметром '8:%%', который сообщает, что нас интересует все, что начинается на 8:. В поле Time время храниться в следующем виде “8:0:0”, без незначащих нулей перед цифрой.
Т.к. мы добавили в запрос новое поле, строка группировки получила вид GROUP BY MSGID, Time.
В результате мы получили выборку только тех данных которые нам нужны. Все, что осталось сделать это посчитать кол-во строк. Это можно сделать при помощи той же утилиты, но в качестве входного файлы мы даем ей наш результирующий файл.
LogParser.exe" "SELECT COUNT(*) INTO result_COUNT.txt FROM result.txt " -i:CSV -o:CSV
В результате мы получим файл, который будет содержать количество строк, а в нашем случае количество писем, обработанных сервером за определенное время.
После этого я вставил результирующие данные в Excel и сделал график (см. рисунок в начале статьи), который можно отправлять руководству.