CNXSoft: Это обзор от гостя Ренато Кисс, менеджера по программному обеспечению в Toradex, объясняющий, в котором объясняется, как можно использовать мониторинг устройств IoT с программными инструментами с открытым исходным кодом, такими как Fluent Bit, для повышения надежности продукта, на примере мониторинга температуры.
Невозможно отделить подключенные устройства от современной жизни. Они присутствуют в домах, офисах, на предприятиях — практически в каждом бизнесе подключенные устройства играют жизненно важную роль.
На рынке, который оценивается в 24,1 миллиарда устройств и с доходом более 1,5 триллиона долларов США к 2030 году, IoT будет расти за счет как потребительских, так и бизнес-приложений. На оборудование будет приходиться около одной трети этой стоимости, при этом большая часть будет распределяться в виде услуг, включая подключение к системе.
В рамках этого роста к бизнесу IoT будет добавлено больше услуг, и, по оценкам некоторых специалистов, экономический потенциал, включая продукты и услуги IoT, к 2030 году может составить не менее 5,5–12,6 трлн долларов США. Этот экономический потенциал включает в себя ценность, получаемую клиентами и потребителями продуктов и услуг IoT. Около 65% общей ценности, которую может создать IoT, будет приходиться на приложения B2B, во главе с заводскими и производственными средами. B2C также быстро растет, чему способствует широкое внедрение IoT-решений в домашних условиях.
Мониторинг устройств как услуга будет небольшой частью услуг, предлагаемых компаниями. Однако это будет иметь решающее значение для ценности, которую клиенты могут создать, используя IoT-устройства. Мониторинг устройств может помочь клиентам отслеживать и улучшать процессы, получать предупреждения о безопасности, понимать использование ресурсов системы, проверять данные об окружающей среде и почти бесконечное количество приложений, развернутых именно в той точке, где клиент может извлечь наибольшую ценность из полученных данных.
Что такое мониторинг устройств?
Проще говоря, мониторинг устройства — это сбор и проверка данных, связанных с состоянием, производительностью или ресурсами электронного устройства. В контексте Интернета вещей термин «мониторинг устройств» лучше использовать как мониторинг удаленных устройств, но для упрощения в этой статье (и на рынке Интернета вещей) слово «удаленный» будет опущено.
Мониторинг устройств, строго говоря, не новинка. Локальный мониторинг устройств является частью каждой производственной линии по всему миру. Данные собирались на заводских устройствах для улучшения процесса и использования машин на протяжении десятилетий. Обслуживающий персонал может измерять температуру, скорость вращения вентилятора, уровень шума и любые соответствующие данные для сравнения с предыдущим или предварительно заданным диапазоном значений. Итак, если это не новый бизнес, то почему такая шумиха вокруг мониторинга IoT-устройств? Основная причина заключается в возможности делать это удаленно и, что более важно, нет необходимости в каком-либо внешнем оборудовании или человеке для локального мониторинга оборудования или продукта. Устройства могут делать это самостоятельно и отправлять все соответствующие данные через Интернет в концентратор агрегатора данных, где эти данные могут быть обработаны, отображены и/или сохранены.
Устройства могут быть сгруппированы в парки при развертывании в полевых условиях. Парк объединяет похожие устройства и может значительно помочь в управлении и мониторинге устройств. Мониторинг устройств неразрывно связан с мониторингом парка. Одно относится к данным и переменным, специфичным для устройства. Другое относится к данным о населении и статистике сгруппированных устройств.
Из этого контекста можно извлечь некоторые преимущества использования мониторинга устройств: вам не нужен человек или оборудование на каждом объекте для проверки желаемых параметров. Но это только отправная точка!
Преимущества мониторинга устройств
Современные подключенные устройства имеют решающее значение в этом процессе. Они умны и иногда берут под свой контроль части процесса или даже весь процесс. Сбой может поставить под угрозу не только устройство, но и всю бизнес-цепочку. Мониторинг IoT-устройства — это не только модно, но и критически важно. Мониторинг устройств позволяет обнаруживать возможные проблемы до того, как они вызовут распространение у заказчика.
Мониторинг устройств может принести большую пользу уже на этапе разработки продукта. Это может обеспечить ценную обратную связь, пока продукт все еще находится в разработке и в пилотных запусках.
После того, как проект будет завершен, с мониторингом устройств, от сотен до десяти тысяч устройств могут быть развернуты в полевых условиях, а все критические ресурсы могут быть проверены удаленно одним щелчком мыши. Журналы, метрики, предупреждения и отчеты можно получать с географически удаленных сайтов и сравнивать друг с другом для улучшения качества продукта, исправления программных ошибок, принятия мер до возникновения сбоя или просто улучшения базы данных для разработки следующего продукта.
Невозможно получить доступ ко всем необходимым данным со всех устройств, развернутых в полевых условиях или даже внутри завода или бизнес-подразделения, без простой в использовании и надежной системы мониторинга устройств.
Повышение ценности продуктов
Существует множество случаев, когда мониторинг устройств может быть разницей между надежной и ненадежной системой.
Начиная с этапа разработки, парки прототипов можно развертывать в реальных условиях и постоянно контролировать. Каждая проблема с журналом может быть связана с физическим фактором или фактором окружающей среды. Например, паника ядра может быть напрямую связана с использованием ЦП, используемой памятью или даже с температурой или напряжением. Отправка правильных метрик дает пользователю полное представление о прошлом устройства.
Устройства, работающие в условиях высокой нагрузки, могут быть выбраны заранее для профилактического обслуживания или просто для более частого и тщательного мониторинга.
Во время новых обновлений программного обеспечения важно отслеживать ресурсы после развертывания, чтобы проверить неожиданные изменения в основном количестве устройств, чтобы предотвратить непроверенные или аварийные условия в полевых условиях. Это может быть сделано в сочетании с кампаниями по обновлению программного обеспечения, когда обновление программного обеспечения может выполняться последовательными пакетами. Например, начать с 10% парка и внимательно следить за обновленными устройствами. Используя реальные метрики и журналы, все возможные сбои, ошибки или неправильное поведение приложения могут быть обработаны с большей точностью, а исправления могут быть выпущены с высокой степенью уверенности в том, что «настоящая проблема» решена. Никаких предположений, основанных на смоделированных лабораторных условиях.
В течение срока службы продукта некоторые условия могут быть упреждены или управляемы, чтобы позволить продукту прослужить и быть дольше доступным. Это особенно важно для оборудования, относящегося к критически важным службам, работающим круглосуточно и без выходных. План технического обслуживания должен быть тщательно скоординирован, и простоев можно избежать. Для такого оборудования, даже в случае отказа, мониторинг устройства может сократить время, необходимое для решения проблемы. Имея в руках нужные данные и решение, легко объяснить причины сбоя и подготовить дополнительные барьеры для смягчения таких сбоев в будущем. Во всех случаях мониторинг устройств приведет к снижению общих затрат и снижению стрессовых ситуаций.
Некоторые возможные варианты использования журналов и метрик :
- Обнаружение аномальных изменений в вычислительных ресурсах, таких как ОЗУ, флэш-память, использование ЦП
- Отслеживайте изменения в использовании или доступности ресурсов для приложений или ОС, таких как кэш-память, зарезервированная память приложений, пропускная способность сети.
- Обнаружение неожиданных задержек или ухудшения времени отклика некоторых функций или задач
- Измерение окружающей среды и датчиков, таких как напряжение, энергопотребление, температура
- Обнаружение утечек памяти, даже если для ее увеличения требуется много времени
- Проверка, не запущены ли службы или контейнеры приложений.
- Измерение цикла батареи и использование скорости заряда и разряда
Данные мониторинга позволяют действовать и планировать:
- Исправить утечку системной памяти до того, как она повлияет на систему
- Понять и обойти ситуации внезапной перезагрузки или зависания продукта
- Заменить батареи или отправить клиенту нескольких объявлений о покупке новой.
- Сократить количество отзывов или запланировать отзыв до катастрофического сбоя
- Определить, использует ли устройство слишком большую пропускную способность или ваш интернет-провайдер не предоставляет тарифный план, на который вы подписались.
- Выявить проблемы до отказа оборудования и превентивно действовать, чтобы избежать обслуживания
- Динамический расчет ожидаемого срока службы
- Определение, ведет ли себя конкретное устройство иначе, чем другие устройства того же типа
- Получение статистики, когда продукт выходит из строя. Создание истории жизни продукта с реальными данными.
Как работает мониторинг IoT-устройств?
Чтобы отправлять данные со встроенных устройств в Интернет, необходимо использовать устройство под управлением операционной системы с агентом мониторинга, веб-платформу для получения и отображения данных и интернет-соединение между ними.
Начиная с данных, мы можем разбить их на три типа мониторинга устройств встроенных систем:
- metrics: это числовое значение, которое мы можем измерять и сообщать через регулярные промежутки времени с течением времени, например использование памяти, температура процессора или пользовательские данные из приложений наших пользователей.
- logs: это просто вывод журнала различных частей системных продуктов, включая журналы контейнера докеров, журналы ядра и журналы приложений из journald.
- alerts: это особые события или ошибки, которые устройство хочет инициировать в режиме реального времени, поскольку они требуют внимания или исправления, например, когда не удается запустить важное приложение или на устройстве заканчивается место для хранения.
В этой статье будет использоваться компьютер Toradex на основе i.MX (также известный как система-на-модуле) под управлением TorizonCore.
TorizonCore — это промышленный встраиваемый дистрибутив Linux с открытым исходным кодом, предназначенный для простоты использования. Он поставляется с удаленным клиентом обновления по беспроводной сети (OTA) с безопасностью автомобильного уровня и агентом мониторинга устройств. По умолчанию TorizonCore будет сообщать некоторую базовую информацию о системе, но вы также можете создавать и отправлять свои собственные метрики для создания информационных панелей, отображающих наиболее важные для вас данные.
TorizonCore использует агент мониторинга, который может собирать все три типа данных: метрики, журналы и оповещения и отправлять их либо в Torizon Platform Services , либо независимо в другие внешние службы, такие как AWS, Microsoft Azure и GCP (см. его онлайн-документацию). В качестве агента мониторинга был выбран Fluent Bit.
Fluent Bit — это процессор и пересылка журналов с открытым исходным кодом, который позволяет устройству собирать любые данные, такие как метрики и журналы, из разных источников (аппаратных и программных), обогащать их фильтрами и отправлять их в несколько мест назначения. Fluent Bit — это облегченная реализация Fluentd на C, ориентированная на встраиваемые устройства.
Fluent Bit можно использовать для сбора, обработки и пересылки журналов. Данные обрабатываются в конвейере с использованием 3 типов плагинов:
- inputs: плагины для сбора и анализа информации из различных источников.
- filters: плагины, позволяющие модифицировать данные перед их доставкой по назначению.
- outputs: плагины, которые позволяют определить место назначения для данных.
В TorizonCore данные Fluent Bit отправляются через прокси данных устройства. Ориентированный на безопасность устройства и конфиденциальность данных, прокси-сервер данных устройства — это функция, доступная в клиенте обновлений Aktualizr-Torizon для отправки небольших фрагментов информации об устройстве в Torizon Platform Services.
Прокси открывает локальный порт TCP и ожидает на нем данных в формате JSON. Прокси работает в отдельном потоке, и принимаются только соединения с локального хоста. Полученные данные будут отправлены в Torizon Platform Services через API SendDeviceData() libaktualizr .
Что еще более важно, начиная с версии 5.4.0, мониторинг в TorizonCore уже готов к работе.
Torizon Platform Services — это безопасная платформа, которая позволяет удаленно обслуживать устройства. Платформа предлагает набор функций для обслуживания и управления парками IoT. От OTA и автономных обновлений до мониторинга парка и устройств, Torizon Platform представляет собой постоянно совершенствуемую систему и предлагает веб-интерфейс для удовлетворения большинства потребностей клиентов.
Настройка и мониторинг устройств
Первый шаг — получить подходящую SoM и плату Carrier. В данном случае мы использовали SoM Apalis iMX6 и плату Ixora Carrier.
Мы воспользуемся предустановленным Toradex Easy Installer и установим последний образ TorizonCore. Самый простой способ — следовать краткому руководству .
С установленным TorizonCore вы можете войти на плату с помощью последовательного терминала или ssh, а также разработать и настроить Fluent Bit. Он интегрирован и включен в TorizonCore 5.4.0 или более поздних версиях.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# systemctl status fluent-bit * fluent-bit.service - Fluent Bit Loaded: loaded (/usr/lib/systemd/system/fluent-bit.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-01-29 18:39:03 UTC; 1h 54min ago Main PID: 636 (fluent-bit) Tasks: 3 (limit: 4660) Memory: 4.4M CGroup: /system.slice/fluent-bit.service `-636 /usr/bin/fluent-bit -c /etc/fluent-bit/fluent-bit.conf Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: * Copyright (C) 2019-2021 The Fluent Bit Authors Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: * Copyright (C) 2015-2018 Treasure Data Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: * Fluent Bit is a CNCF sub-project under the umbrella of Fluentd Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: * https://fluentbit.io Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: [2022/01/29 18:39:03] [ info] [engine] started (pid=636) Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: [2022/01/29 18:39:03] [ info] [storage] version=1.1.1, initializing... Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: [2022/01/29 18:39:03] [ info] [storage] in-memory Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: [2022/01/29 18:39:03] [ info] [storage] normal synchronization mode, checksum disabled, max_chunks_up=128 Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: [2022/01/29 18:39:03] [ info] [cmetrics] version=0.1.6 Jan 29 18:39:03 apalis-imx6-10618613 fluent-bit[636]: [2022/01/29 18:39:03] [ info] [sp] stream processor started |
По умолчанию Fluent Bit настроен на мониторинг ЦП, памяти, температуры и демона докера, а также на отправку информации на платформу Torizon.
Приведенный ниже файл конфигурации (/etc/fluent-bit/fluent-bit.conf) используется для Fluent Bit для отправки CPU, памяти, температуры и состояния демона Docker на платформу Torizon через прокси-сервер каждые 5 минут (300 секунд). Вы можете изменить эту конфигурацию, переопределив параметры interval_sec.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
[SERVICE] flush 1 daemon Off log_level info parsers_file parsers.conf plugins_file plugins.conf [INPUT] name cpu tag cpu interval_sec 300 [FILTER] Name nest Match cpu Operation nest Wildcard * Nest_under cpu [INPUT] name mem tag memory interval_sec 300 [FILTER] Name nest Match memory Operation nest Wildcard * Nest_under memory [INPUT] name thermal tag temperature name_regex thermal_zone0 interval_sec 300 [FILTER] Name nest Match temperature Operation nest Wildcard * Nest_under temperature [INPUT] name proc proc_name dockerd tag proc_docker fd false mem false interval_sec 300 [FILTER] Name nest Match proc_docker Operation nest Wildcard * Nest_under docker [OUTPUT] name tcp port 8850 format json_lines match * |
С Fluent Bit вы можете отправлять пользовательские метрики. Это делается с использованием другого подхода. Мы добавляем новое настраиваемое поле в раздел ввода /etc/fluent-bit/fluent-bit.conf в качестве примера:
1 2 3 4 5 6 |
{ "custom": { "my_metric_1": 123.4, "my_metric_2": 567.8 } } |
Используем плагин ввода, который принимает необработанный JSON в качестве ввода, например плагин ввода HTTP , вкладываем его под пользовательский ключ с плагином фильтра Nest и добаляем следующее в /etc/fluent-bit/fluent-bit.conf
1 2 3 4 5 6 7 8 9 10 11 |
[INPUT] name http host localhost port 9999 [FILTER] Name nest Match custom Operation nest Wildcard * Nest_under custom |
В Torizon Platform Services вы должны выполнить настройку своего устройства. Дополнительную информацию можно найти на странице Предоставление нового устройства на веб-странице разработчика .
Очень скоро устройства можно будет предварительно инициализировать во время перепрошивки в процессе тестирования продукта или на сборочных линиях. Поэтому их легче подключить, как только они прибудут в конечную точку. Нет необходимости, выполнять подготовку вручную. Это важно для развертывания конечных продуктов или их доставки конечному потребителю.
Пример мониторинга температуры
Чтобы проиллюстрировать одно реальное использование, была создана среда моделирования, чтобы увидеть, как может вести себя устройство и как измерения устройства могут помочь отслеживать и обнаруживать потенциальные проблемы.
Температура имеет решающее значение для любой электронной системы. Это может негативно повлиять на систему и привести к некоторым очевидным, легко воспринимаемым и обнаруживаемым проблемам, таким как перезагрузка системы или перегрев. Однако повышенная температура может быть вызвана массой других проблем, как в хронической, так и в острой форме.
- Сокращение срока службы продукта
- Уменьшение среднего времени безотказной работы
- Увеличение шума движущихся частей
- Уменьшение твердости некоторых пластиков или других компонентов
- Увеличение или уменьшение механических зазоров (сгибание или создание пустот, ухудшение общего внешнего вида и качества)
- Потеря гарантии
С помощью простого измерения ЦП мы можем обнаружить некоторые проблемы и вовремя принять меры, чтобы предотвратить будущие проблемы, вызванные превышением температуры. Эта мера присутствует в платформе Torizon по умолчанию и не требует дополнительных затрат, поскольку она использует внутренний датчик температуры i.MX.
На следующем рисунке мы представляем данные мониторинга устройства с измерением температуры ЦП в различных средах. На одной плате был запущен Torizon в неклиматизированном помещении. Другая плата находилась в той же комнате, но в корпусе. Температура наружного воздуха колеблется от 20°C до почти 31°C.
Этот простой пример отражает колебания температуры в течение дня, как вы можете видеть на графиках. В помещении с контролируемой температурой изменения могут показать, является ли ваша система климатизации нестабильной или имеет неправильные размеры. В неклиматизированном помещении он покажет изменение границ платы.
Плата 1 имитирует использование продукта в нормальных условиях и практически без нагрузки на ЦП. Все вентиляционные отверстия открыты, и плата работает так, как задумано. Плата 2 находится в тех же температурных условиях, что и первая плата, но из-за того, что все вентиляционные отверстия закрыты, эта плата показывает температуру процессора примерно на 10°C выше ожидаемой. Эти две платы могут представлять любую плату во флоте. Плата 2 может быть продуктом, который был неправильно установлен или установлен не в том месте. Он также может имитировать продукт с вентиляционными отверстиями, заблокированными внешним объектом, например книгой или мебелью. Плата 2 также может изображать изделие в грязной среде с забитыми пылью отверстиями – в этом случае повышение температуры будет постоянным и будет достигать одного и того же максимума.
Если плате 2 необходимо использовать полную производительность ЦП, происходит значительное повышение температуры. Это может повлиять на срок службы продукта в зависимости от квалификации продукта. Продукты, работающие при температуре, близкой к температуре Si Junction, прослужат меньше, чем другие, работающие в более мягком температурном диапазоне.
В этом примере, как показано на приведенном выше графике показателей, ЦП запускались с небольшой нагрузкой, а затем перешли на работу с полной мощностью. Температура увеличилась, как и ожидалось, но без открытых вентиляционных отверстий для теплообмена температура продолжает медленно расти. Примерно в 21:20 ограждение сняли, и температура начала падать. Температура в помещении была около 23°С.
Спецификация i.MX показывает, что он может поддерживать этот диапазон температур в некоторых квалификационных классах. Помните, что это затрагивает все компоненты платы, поэтому важно использовать сертифицированные платы.
В реальном продукте, при более сложном анализе, ОС будет пытаться уменьшить мощность, но не без воздействия на систему. Например, DVFS может управлять напряжением и частотой, уменьшая их и уменьшая мощность и тепловыделение. Однако ЦП станет медленнее, а выполнение задач займет больше времени, поэтому это влияние следует учитывать в приложении.
В разрабатываемом продукте эти показатели могут в некоторых случаях привести к добавлению радиатора к микропроцессору, добавлению дополнительных отверстий в корпусе, вентилятора корпуса или даже к повышению квалификации используемой платы.
Для обычного продукта он может проводить профилактическое обслуживание для очистки от пыли, перемещения блокирующего объекта или продукта в лучшее место.
При правильно подобранных деталях, напряжении, частоте и рабочей температуре вы можете использовать приведенные выше графики для определения количества часов работы вашего продукта во включенном состоянии. В зависимости от того, какую марку использует ваш продукт, вы можете повлиять на ожидаемый срок службы. Мониторинг устройств в этом случае может не только помочь вам избежать сокращения срока службы, но и помочь понять причины.
Заключение
С растущей сложностью IoT и подключенных встроенных устройств нам приходится обращаться к новым инструментам и стратегиям, чтобы максимизировать качество продукции, предоставляемой на рынки.
Мониторинг устройств, в соответствии с этой тенденцией, является одной из ключевых услуг, гарантирующих доступ к лучшим и наиболее точным данным, а также для выявления и решения ежедневных проблем вашего проекта. Независимо от того, происходит ли это на этапе разработки продукта или в течение срока службы продукта.
При правильном использовании мониторинг устройств может повысить надежность и значительно снизить затраты на обслуживание и время реакции. Это помогает использовать все возможности продукта в течение более длительных периодов времени.
В конце концов, правильное использование мониторинга устройств в продукте позволяет нам всегда получать желаемые преимущества для наших проектов и продуктов: постоянное совершенствование, превращение процесса разработки в более инновационный, более быстрый выход на рынок, высокая удовлетворенность клиентов и, как мы узнали в условиях распространения пандемии, вызванной вирусом Covid, сокращении ненужных поездок.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.