Pull to refresh
0
Microsoft
Microsoft — мировой лидер в области ПО и ИТ-услуг

Кроссплатформенный IoT: Выявление неисправностей

Reading time 4 min
Views 1.9K
Original author: Nik Sachdeva
Привет, Хабр! Ранее мы рассматривали Azure IoT CLI и обозреватель центра IoT, которые предназначены для управления центром, устройствами, а также для отправки и получения сообщений. В этом посте мы обсудим программу по выявлению неисправностей, которая предоставляет дополнительную поддержку и возможности для центра IoT. Заглядывайте под кат!



Цикл статей «Кроссплатформенный IoT»


1. Кроссплатформенный IoT: Использование Azure CLI и Azure IoT Hub
2. Кроссплатформенный IoT: Операции с устройствами
3. Кроссплатформенный IoT: Выявление неисправностей

Для чего нужна программа диагностики?


Бывают ситуации, когда что-то идет не так, и вы пытаетесь определить причину. Труднее всего, как правило, с сетевым подключением, будь то блокировка порта сетевым экраном или недостаточно широкая полоса пропускания. А результат один — неустойчивое соединение. Поскольку мониторинг операций для центра IoT обеспечивается с помощью портала управления Azure, а также конечной точки центра IoT, доскональное изучение журналов и аварийных дампов может отнимать драгоценное время и требовать открытие не одной заявки в службе поддержки. Программа диагностики центра IoT — это недавнее дополнение к набору средств для центра IoT. Это эффективная утилита для проверки связи, которая предоставляет первоначальные данные о возможных неисправностях в случае, если центр IoT функционирует неправильно.

Инструмент также написан на node.js и является программным решением с открытым исходным кодом (MIT). Для установки инструмента на ваше оборудование выполните следующую команду в терминале:

npm install -g iothub-diagnostics

Запуск инструмента диагностики достаточно прост, все, что вам нужно, это строка соединения вашего центра IoT. Никакие другие опции или команды не предусмотрены.

Судя по результатам моих тестов, инструменту требуется разрешение iothubowner. Я не пробовал применять его со всеми политиками, вероятно, можно ограничить доступ или использовать политики с меньшим уровнем прав.

iothub-diagnostics "HostName=youriothub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=="

Как только подключение установлено, инструмент запускается для выполнения ряда тестов:

  1. Вначале производятся тесты сети для проверки разрешения DNS, программа проверяет связь с URL, чтобы убедиться, что подключение к Интернет возможно. На данный момент pingURL привязан к http://www.microsoft.com. В коде предусмотрено указание вашего DNS или адреса, чтобы вы могли произвести настройку по вашему усмотрению.
  2. Далее проверяется доступность портов и требования TLS-шифрования. В этом случае тесты также включают проверку связи по HTTPS (443), по умолчанию httpsRequestUrl привязан к https://www.microsoft.com.
  3. Последняя стадия проверки производится в самом центре: сначала регистрируется временное устройство, а затем тестируются подключения D2C (устройства к облаку) и C2D (облака к устройству) с использованием всех поддерживаемых протоколов: (HTTPS (443), AMQP (5672 и 5671) и MQTT (1833 и 8883)).

Результат, полученный по завершении тестов, должен выглядеть примерно так:

2017-03-16T07:38:51.193Z - info: *******************************************
2017-03-16T07:38:51.196Z - info: * Executing the Microsoft IOT Trace tool. *
2017-03-16T07:38:51.196Z - info: *******************************************
2017-03-16T07:38:51.197Z - info:  
2017-03-16T07:38:51.198Z - info: --- Executing network tests ---
2017-03-16T07:38:51.222Z - info:  
2017-03-16T07:38:51.223Z - info: Starting DNS resolution for host 'www.microsoft.com'...
2017-03-16T07:38:51.254Z - info: --> Successfully resolved DNS to 23.204.149.152.
2017-03-16T07:38:51.255Z - info:  
2017-03-16T07:38:51.255Z - info: Pinging IPV4 address '23.204.149.152'...
2017-03-16T07:38:51.291Z - info: --> Successfully pinged 23.204.149.152
2017-03-16T07:38:51.291Z - info:  
2017-03-16T07:38:51.291Z - info: Sending https request to 'https://www.microsoft.com/'
2017-03-16T07:38:51.444Z - info: --> Completed https request
2017-03-16T07:38:51.445Z - info:  
2017-03-16T07:38:51.445Z - info: --- Executing IOT Hub tests ---
2017-03-16T07:38:54.731Z - info:  
2017-03-16T07:38:54.732Z - info: Starting AMQP Test...
2017-03-16T07:38:59.141Z - info: --> Successfully ran AMQP test.
2017-03-16T07:38:59.142Z - info:  
2017-03-16T07:38:59.142Z - info: Starting AMQP-WS Test...
2017-03-16T07:39:03.460Z - info: --> Successfully ran AMQP-WS test.
2017-03-16T07:39:03.466Z - info:  
2017-03-16T07:39:03.466Z - info: Starting HTTPS Test...
2017-03-16T07:39:08.036Z - info: --> Successfully ran HTTPS test.
2017-03-16T07:39:08.059Z - info:  
2017-03-16T07:39:08.060Z - info: Starting Mqtt Test...
2017-03-16T07:39:11.828Z - info: --> Successfully ran Mqtt test.

В случае ошибки при тестировании соответствующее исключение будет зафиксировано в журнале и выведено на экран.

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

Безусловно, в него можно добавить дополнительные функции и средства отчетности, позволяющие получить больше информации о типах проводимых тестов. Мне бы хотелось, чтобы инструмент был интегрирован в канал CI/CD, а тесты базовых операций были расширены за счет тестов собственной разработки.
Tags:
Hubs:
+8
Comments 0
Comments Leave a comment

Articles

Information

Website
www.microsoft.com
Registered
Founded
Employees
Unknown
Location
США