Мониторинг Lync с помощью синтетических транзакций или как выявить источник проблемы не выходя из кабинета.
Одним из интересных нововведений в Lync являются синтетические транзакции. Транзакции весьма полезны при при решении проблем, а также для выполнения задач по ежедневному мониторингу сервисов Lync.
По сути транзакции позволяют убедиться, что тестируемый сервис работает корректно. Так, например комадлет Test-CSRegistration позволяет убедиться, что пользователи могу зарегистрироваться в Lync, а Test-CsIM что сервис обмена мгновенными сообщениями работает. Всего в Lync включено 33 синтетических командлета (список и краткое описание можно посмотреть, набрав команду Get-Help “Test-Cs*” | Select Name, Synopsis | FL)
Транзакции называются синтетическими, так как не выполняют реальных действий (например, отправку рольного сообщения от одного пользователя другому) а симулируют процесс.
Запуск транзакций можно осуществить двумя способами – с помощью симуляции от имени реальных или тестовых учетных записей.
Выявляем проблемы не выходя из кабинета.
При запуске с помощью реальных учетных записей необходимо просто запустить командет, указав учетную запись. Пользователь даже не будет знать, что какая-то операция была выполнена от его имени.
Комадлеты могут помочь при решении проблем с Lync, например когда пользователь жалуется, что он не может выполнить вход или создать конференцию с другим пользователем – это первый инструмент проверки.
Ниже приведен результаты выполнения некоторых командетов (в первом примере пользователь andvis@contoso.ru временно отключен в панели управления Lync).
Рис.1 Проверка возможности регистрации пользователями на сервере
Рис 2. Проверка возможности обмена аудио и видео трафиком между пользователями
Обратите внимание, что командлеты также отображают скорость выполнения операции.
В моем случае командлеты не запросили паролей пользователей. Это связано с тем, что его запуск я производил на сервере Lync. Если вы запускаете командлеты с компьютера, на котором установлены только инструменты управления, вам необходимо будет ввести пароль пользователя. Но существуют транзакции, в которых ввод пароля потребуется обязательно. Например, в командлете Test-CSAuth, так как он запрашивает сертификат от имени пользователя и с его помощью проверяет корректность аутентификации.
Мониторим сервер.
Второй сценарий подразумевает запуск командлета с помощью тестовых учетных записей и пригодится для мониторинга сервера, например как часть ежедневной задачи по мониторингу. Следует упомянуть, что транзакции могут быть запущены как вручную, так и автоматически с помощью продукта Microsoft System Center Operation Manager.
Для настройки таких тестовых учетных записей служит командлет New-CsHealthMonitoringConfiguration в котором вы указываете учетные данные для выполнения транзакций, эти данные будут сохранены.
Примечание: можно создать эти данные на один раз с помощью добавления параметра -memory
Рис 3. Создание тестовой конфигурации
Теперь можно не указывать пользователей для проверки – будут использоваться тестовые пользователи
Рис 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”
}
Ну и собственно результаты выполнения двух тестов –в первом случае все работало штатно, во втором я запретил новые соединения к сервису Конференций
Рис 5. Тестирование работоспособности скрипта
Как видно синтетические транзакции достаточно мощный инструмент, помогающий администраторам выполнять поиск проблемы или решать ежедневные задачи по мониторингу серверов.