Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:
IoT Edge 1.5
Внимание
IoT Edge 1.5 LTS — это поддерживаемый выпуск. IoT Edge 1.4 LTS достиг срока окончания службы 12 ноября 2024 года. Если вы используете более ранний выпуск, ознакомьтесь с Update IoT Edge.
Вы можете удаленно отслеживать парк IoT Edge с помощью Azure Monitor и встроенной интеграции метрик. Чтобы включить эту возможность на устройстве, добавьте модуль сборщика метрик в развертывание и настройте его для сбора и передачи метрик модуля в Azure Monitor.
Чтобы настроить мониторинг на устройстве IoT Edge, следуйте инструкциям tutorial для мониторинга устройств IoT Edge. Вы узнаете, как добавить модуль сборщика метрик на устройство. В этой статье представлен обзор архитектуры мониторинга и описаны варианты настройки метрик на устройстве.
Azure Monitor для IoT Edge(4:06)
Архитектура
| Примечание. | Описание |
|---|---|
| 1 | Все модули должны выдавать метрики с помощью модели данных Prometheus. Хотя встроенные метрики обеспечивают широкую видимость рабочей нагрузки по умолчанию, пользовательские модули также могут выдавать метрики, относящиеся к сценариям, для улучшения решения мониторинга. Узнайте, как инструментировать пользовательские модули с помощью библиотек с открытым кодом в статье "Добавление пользовательских метрик ". |
| 2️ | Модуль сборщика метрик — это модуль, предоставленный корпорацией Майкрософт IoT Edge, который собирает метрики модуля рабочей нагрузки и переносит их вне устройства. Для сбора метрик используется пуллинговая модель. Можно настроить частоту сбора, конечные точки и фильтры для управления исходящими данными из модуля. Дополнительные сведения см. в разделе конфигурации сборщика метрик в этой статье. |
| 3️ | Отправлять метрики из модуля metrics-collector в облако можно двумя способами.
Option 1 отправляет метрики в Log Analytics.1 Собранные метрики передаются в указанную рабочую область Log Analytics с помощью фиксированной, собственной таблицы с именем InsightsMetrics. Схема этой таблицы совместима с моделью данных метрик Prometheus.Для этого варианта требуется доступ к рабочей области на исходящем порту 443. Идентификатор и ключ рабочей области Log Analytics должны быть указаны в рамках конфигурации модуля. Сведения о включении в ограниченных сетях см. в разделе "Включение в сценариях ограниченного доступа к сети " в этой статье. |
| 4️ | Каждая запись метрики содержит ResourceId, который вы указываете как часть конфигурации модуля. Эта связь автоматически связывает метрику с указанным ресурсом (например, IoT Hub). В результате курируемые шаблоны рабочих книг IoT Edge могут получать метрики, выдавая запросы к ресурсу. Этот подход также позволяет нескольким центрам Интернета вещей безопасно совместно использовать одну рабочую область Log Analytics в качестве базы данных метрик. |
| 5️ |
Option 2 отправляет метрики в IoT Hub.1 можно настроить модуль сборщика для отправки собранных метрик в кодировке UTF-8 в формате JSON как сообщения от устройства к облаку через модуль edgeHub. Этот параметр разблокирует мониторинг заблокированных IoT Edge устройств, которым разрешен внешний доступ только к конечной точке IoT Hub. Он также позволяет отслеживать дочерние IoT Edge устройства в вложенной конфигурации, где дочерние устройства могут получать доступ только к родительскому устройству. |
| 6️ | Когда метрики направляются через IoT Hub, необходимо один раз настроить облачный рабочий процесс. Рабочий процесс обрабатывает сообщения, поступающие из модуля сборщика метрик, и отправляет их в рабочую область Log Analytics. Рабочий процесс позволяет использовать функции курированных визуализаций и оповещений даже для метрик, поступающих через этот альтернативный маршрут. Дополнительные сведения о настройке этого облачного рабочего процесса см. в разделе "Метрики маршрутов " в этой статье. |
1 В настоящее время использование option 1 для прямой передачи метрик в Log Analytics с устройства IoT Edge является более простым путем, требующим минимальной настройки. Первый вариант предпочтителен, если для конкретного сценария не требуется подход option 2, чтобы устройство IoT Edge взаимодействовать только с IoT Hub.
Модуль сборщика метрик
Модуль сборщика метрик майкрософт можно добавить в развертывание IoT Edge для сбора метрик модуля и отправки их в Azure Monitor. Код модуля open source доступен в репозитории IoT Edge GitHub.
Модуль сборщика метрик предоставляется как образ контейнера Docker с несколькими арками, поддерживающий Linux X64, ARM32, ARM64 и Windows X64 (версия 1809). Он доступен в общедоступном реестре артефактов Майкрософт по адресу mcr.microsoft.com/azureiotedge-metrics-collector.
Настройка сборщика данных
Настройте сборщик метрик с помощью переменных среды. Минимально необходимо указать переменные, помеченные как обязательные в этой таблице.
| Имя переменной среды | Описание |
|---|---|
ResourceId |
Идентификатор ресурса центра Интернета вещей, с которым взаимодействует устройство. Дополнительные сведения см. в разделе "Идентификатор ресурса". Required Значение по умолчанию: нет |
UploadTarget |
Определяет, отправляются ли метрики непосредственно в Azure Monitor по протоколу HTTPS или IoT Hub в виде сообщений D2C. Дополнительные сведения см. в разделе "Отправка целевого объекта". Возможные значения — AzureMonitor или IoTMessage. Не требуется Значение по умолчанию: AzureMonitor |
LogAnalyticsWorkspaceId |
Идентификатор рабочей области Log Analytics. Требуется только в том случае, если UploadTarget — AzureMonitor Значение по умолчанию: нет |
LogAnalyticsSharedKey |
Ключ рабочей области Log Analytics. Требуется только в том случае, если UploadTarget — AzureMonitor Значение по умолчанию: нет |
ScrapeFrequencyInSecs |
Повторяющийся интервал времени в секундах для сбора и транспорта метрик. Пример: 600. Не требуется Значение по умолчанию: 300 |
MetricsEndpointsCSV |
Список конечных точек, разделенных запятыми, для сбора данных для Prometheus. В этом списке должны быть все конечные точки модуля для сбора метрик. Пример: http://edgeAgent:9600/metrics, http://edgeHub:9600/metrics, http://MetricsSpewer:9417/metrics Не требуется Значение по умолчанию: http://edgeHub:9600/metrics, http://edgeAgent:9600/metrics |
AllowedMetrics |
Список метрик, которые необходимо собирать; все остальные метрики игнорируются. Установите пустую строку, чтобы отключить. Дополнительные сведения см. в разделе "Разрешить и блокировать списки". Пример: metricToScrape{quantile=0.99}[endpoint=http://MetricsSpewer:9417/metrics] Не требуется Значение по умолчанию: пустой |
BlockedMetrics |
Список метрик, которые нужно игнорировать. Переопределяет разрешенные метрики, поэтому метрика не сообщается, если она включена в оба списка. Дополнительные сведения см. в разделе "Разрешить и блокировать списки". Пример: metricToIgnore{quantile=0.5}[endpoint=http://VeryNoisyModule:9001/metrics], docker_container_disk_write_bytes Не требуется Значение по умолчанию: пустой |
CompressForUpload |
Определяет, следует ли использовать сжатие при отправке метрик. Применяется ко всем целевым объектам загрузки. Пример: true Не требуется Значение по умолчанию: true |
AzureDomain |
Указывает домен верхнего уровня Azure, используемый при приеме метрик непосредственно в Log Analytics. Пример: azure.us Не требуется Значение по умолчанию: azure.com |
ИД ресурса
Модуль сборщика метрик должен иметь идентификатор Azure Resource Manager Центра Интернета вещей, к которому принадлежит устройство IoT Edge. Введите этот идентификатор в качестве значения переменной среды ResourceID .
Идентификатор ресурса использует следующий формат: /subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Devices/IoTHubs/<iot hub name> Идентификатор ресурса можно найти на странице Properties центра Интернета вещей на портале Azure.
Кроме того, для получения идентификатора можно использовать команду az resource show :
az resource show -g <resource group> -n <hub name> --resource-type "Microsoft.Devices/IoTHubs"
Цель загрузки
Параметр конфигурации UploadTarget определяет, отправляются ли метрики непосредственно в Azure Monitor или в IoT Hub.
Если вы настроили UploadTarget значение IoTMessage, модуль публикует метрики в виде сообщений Интернета вещей. Конечная точка /messages/modules/<metrics collector module name>/outputs/metricOutput выдает эти сообщения в формате JSON в кодировке UTF8. Например, если модуль сборщика метрик IoT Edge называется IoTEdgeMetricsCollector, конечная точка /messages/modules/IoTEdgeMetricsCollector/outputs/metricOutput. Используется следующий формат:
[{
"TimeGeneratedUtc": "<time generated>",
"Name": "<prometheus metric name>",
"Value": <decimal value>,
"Label": {
"<label name>": "<label value>"
}
}, {
"TimeGeneratedUtc": "2020-07-28T20:00:43.2770247Z",
"Name": "docker_container_disk_write_bytes",
"Value": 0.0,
"Label": {
"name": "AzureMonitorForIotEdgeModule"
}
}]
Списки разрешённых и заблокированных
Параметры конфигурации AllowedMetrics и BlockedMetrics принимают списки селекторов метрик, разделенные пробелами или запятыми. Метрика соответствует списку и включается или исключается, если она соответствует одной или нескольким метрикам в любом списке.
Для селекторов метрик используется формат, аналогичный подмножеству языка запросов PromQL.
metricToSelect{quantile=0.5,otherLabel=~Re[ge]*|x}[http://VeryNoisyModule:9001/metrics]
Селекторы метрик состоят из трех элементов:
Имя метрики (metricToSelect).
- В именах метрик можно использовать подстановочные знаки (любые символы
*) и?(любой один символ). Например,*CPUсовпадает сmaxCPUиminCPU, но не сCPUMaximum.???CPUсовпадает сmaxCPUиminCPU, но не сmaximumCPU. - Этот компонент является обязательным в селекторе метрик.
Селекторы на основе меток ({quantile=0.5,otherLabel=~Re[ge]*|x}).
- Включите несколько значений метрик в фигурные скобки. Значения должны быть разделены запятыми.
- Метрика сопоставляется, если по крайней мере все метки в селекторе присутствуют, а также совпадают.
- Как и в PromQL, допускаются указанные ниже операторы сопоставления.
-
=Метки, точно равные указанной строке (с учетом регистра). -
!=Нахождение меток, которые точно не соответствуют заданной строке. -
=~Сопоставьте метки с заданным регулярным выражением. Пример:label=~CPU|Mem|[0-9]* -
!~Исключать метки, которые не соответствуют предоставленному регулярному выражению. - Регулярное выражение полностью привязано (Якорь
^и$автоматически добавляются в начало и конец каждого регулярного выражения) - Этот компонент является необязательным в селекторе метрик.
-
Селектор конечных точек ([http://VeryNoisyModule:9001/metrics]).
- URL-адрес должен точно соответствовать URL-адресу, указанному в параметре
MetricsEndpointsCSV. - Этот компонент является необязательным в селекторе метрик.
Метрика должна соответствовать всем частям конкретного селектора, чтобы быть выбрана. Он должен соответствовать имени и иметь все те же метки с соответствующими значениями и поступать из данной конечной точки. Например, mem{quantile=0.5,otherLabel=foobar}[http://VeryNoisyModule:9001/metrics] не соответствует селектору mem{quantile=0.5,otherLabel=~foo|bar}[http://VeryNoisyModule:9001/metrics]. Используйте несколько селекторов для создания поведения ИЛИ, а не поведения AND.
Например, чтобы разрешить пользовательскую метрику mem с любой меткой из модуля module1, но разрешить эту же метрику из module2 только с меткой agg=p99, добавьте следующий селектор в AllowedMetrics:
mem{}[http://module1:9001/metrics] mem{agg="p99"}[http://module2:9001/metrics]
Чтобы разрешить пользовательские метрики, такие как mem и cpu, для любых меток или конечных точек, добавьте следующее в AllowedMetrics:
mem cpu
Включение в сценариях с ограниченным сетевым доступом
Если вы отправляете метрики непосредственно в рабочую область Log Analytics, разрешите исходящий доступ к следующим URL-адресам:
https://<LOG_ANALYTICS_WORKSPACE_ID>.ods.opinsights.azure.com/*https://<LOG_ANALYTICS_WORKSPACE_ID>.oms.opinsights.azure.com/*
Соображения, связанные с использованием прокси-сервера
Модуль сборщика метрик записывается в .NET Core. Используйте те же рекомендации, что и системные модули, чтобы разрешить обмен данными через прокси-сервер.
Коллекция метрик из локальных модулей использует http протокол. Чтобы запретить локальные маршруты через прокси-сервер, задайте переменную среды NO_PROXY. Установите значение NO_PROXY как список имен узлов, которые следует исключить, разделенных запятой. Используйте в качестве имен узлов имена модулей. Например: edgeHub,edgeAgent,myCustomModule.
Метрики маршрутизации
Иногда необходимо получить метрики через IoT Hub вместо отправки их непосредственно в Log Analytics. Например, при мониторинге устройств IoT Edge в вложенной конфигурации где дочерние устройства имеют доступ только к центру IoT Edge родительского устройства. Другим примером является развертывание устройства IoT Edge с исходящим сетевым доступом только к IoT Hub.
Чтобы включить мониторинг в этом сценарии, настройте модуль сборщика метрик для отправки метрик в виде сообщений в облако (D2C) через модуль EdgeHub. Включите возможность, установив переменную UploadTarget среды в IoTMessage сборщика на .
Совет
Не забудьте добавить маршрут edgeHub для доставки сообщений метрик из модуля сборщика в IoT Hub. Маршрут выглядит следующим образом FROM /messages/modules/replace-with-collector-module-name/* INTO $upstream.
Для этого параметра требуется дополнительная настройка, настройка облачного рабочего процесса для доставки сообщений метрик, поступающих в IoT Hub в рабочую область Log Analytics. Без этой настройки другие части интеграции, такие как курированные визуализации и оповещения , не работают.
Примечание.
Помните о дополнительных затратах с этим вариантом. Сообщения с метриками учитываются в вашей квоте сообщений IoT Hub. Взимается также плата за сбор данных с помощью Log Analytics и ресурсы облачных рабочих процессов.
Пример облачного рабочего процесса
Облачный рабочий процесс, предоставляющий сообщения метрик из IoT Hub в Log Analytics, доступен в рамках примера IoT Edge ведения журнала и мониторинга. Пример можно развернуть в существующих облачных ресурсах или использовать в качестве справочника по рабочему развертыванию.
Следующие шаги
Изучите типы подобранных визуализаций, которые предоставляет Azure Monitor.