Мониторинг Lync с помощью синтетических транзакций или как выявить источник проблемы не выходя из кабинета.

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

По сути транзакции позволяют убедиться, что тестируемый сервис работает корректно. Так, например комадлет Test-CSRegistration позволяет убедиться, что пользователи могу зарегистрироваться в Lync, а Test-CsIM что сервис обмена мгновенными сообщениями работает. Всего в Lync включено 33 синтетических командлета (список и краткое описание можно посмотреть, набрав команду Get-Help “Test-Cs*” | Select Name, Synopsis | FL)

Транзакции называются синтетическими, так как не выполняют реальных действий (например, отправку рольного сообщения от одного пользователя другому) а симулируют процесс.

Запуск транзакций можно осуществить двумя способами – с помощью симуляции от имени реальных или тестовых учетных записей.

Выявляем проблемы не выходя из кабинета.

При запуске с помощью реальных учетных записей необходимо просто запустить командет, указав учетную запись. Пользователь даже не будет знать, что какая-то операция была выполнена от его имени.

Комадлеты могут помочь при решении проблем с Lync, например когда пользователь жалуется, что он не может выполнить вход или создать конференцию с другим пользователем – это первый инструмент проверки.

Ниже приведен результаты выполнения некоторых командетов (в первом примере пользователь andvis@contoso.ru временно отключен в панели управления Lync).

clip_image001

Рис.1 Проверка возможности регистрации пользователями на сервере

clip_image002

Рис 2. Проверка возможности обмена аудио и видео трафиком между пользователями

Обратите внимание, что командлеты также отображают скорость выполнения операции.

В моем случае командлеты не запросили паролей пользователей. Это связано с тем, что его запуск я производил на сервере Lync. Если вы запускаете командлеты с компьютера, на котором установлены только инструменты управления, вам необходимо будет ввести пароль пользователя. Но существуют транзакции, в которых ввод пароля потребуется обязательно. Например, в командлете Test-CSAuth, так как он запрашивает сертификат от имени пользователя и с его помощью проверяет корректность аутентификации.

Мониторим сервер.

Второй сценарий подразумевает запуск командлета с помощью тестовых учетных записей и пригодится для мониторинга сервера, например как часть ежедневной задачи по мониторингу. Следует упомянуть, что транзакции могут быть запущены как вручную, так и автоматически с помощью продукта Microsoft System Center Operation Manager.

Для настройки таких тестовых учетных записей служит командлет New-CsHealthMonitoringConfiguration в котором вы указываете учетные данные для выполнения транзакций, эти данные будут сохранены.

Примечание: можно создать эти данные на один раз с помощью добавления параметра -memory

clip_image003

Рис 3. Создание тестовой конфигурации

Теперь можно не указывать пользователей для проверки – будут использоваться тестовые пользователи

clip_image004

Рис 4. Проверка возможности обмена сообщениями с между тестовыми пользователями

Автоматизация – друг админа.

Выполнение этих командлетов и анализ подробных результатов хорош при разрешении проблем. Однако поммимо проблем у каждого администратора стоит задача ежедневного мониторинга.

Неплохо было бы прийдя с утра на работу запустить скрипт который сказал бы все хорошо с Lync или не очень.

Я для себя создал следующий скрипт проверяющий состояние трех сервисов – регистрации, обмена мгновенными сообщениями и конференций (естественно вы можете добавить любые командлеты) который выводит результаты на экран (естественно можно вывести в файл, журнал событий Windows или отправить почтой – справка по PowerShell в помощь)

 

$Test_Reg=Test-CSRegistration –TargetFQDN gc-lync-ls1.corp.contoso.ru

$Test_IM=Test_CSIM –TargetFQDN gc-lync-ls1.corp.contoso.ru

$Test_AV=Test-CSAVConference -TargetFQDN gc-lync-ls1.corp.contoso.ru

$a=$Test_Reg.TargetFQDN+” “+$Test_Reg.Error

$b=$Test_IM.TargetFQDN+” “+$Test_IM.Error

$c=$Test_AV.TargetFQDN+” “+$Test_AV.Error

If($Test_Reg.Result –eq “Success”)

{

Write-host “Registration Working” –ForegroundColor “Green”

}

Else

{

Write-host “Registration Failed with Error:” –foregroundcolor “Magenta”

Write-host $a –Foregroundcolor “Red”

}

If($Test_IM.Result –eq “Success”)

{

Write-host “IM Working” –ForegroundColor “Green”

}

Else

{

Write-host “IM Failed with Error:” –foregroundcolor “Magenta”

Write-host $b –Foregroundcolor “Red”

}

If($Test_AV.Result –eq “Success”)

{

Write-host “AV Working” –ForegroundColor “Green”

}

Else

{

Write-host “AV Failed with Error:” –foregroundcolor “Magenta”

Write-host $c –Foregroundcolor “Red”

}

Ну и собственно результаты выполнения двух тестов –в первом случае все работало штатно, во втором я запретил новые соединения к сервису Конференций

clip_image005

Рис 5. Тестирование работоспособности скрипта

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