Мониторинг 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. Тестирование работоспособности скрипта

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