The Natrix Management platform components
While the Natrix Gateway represents the ‘edge’ device of the Natrix framework, there are a couple of applications which are interconnected and communicating with the Gateway. These applications are running outside of the ‘edge’ environment, typically somewhere in the cloud.
Those applications are designed for device management, data collection, processing and visualization for typical IoT solutions. The Natrix Management platform does not provide everything what is important to manage highly scaled IoT solutions consistent in one application.
However, it leverages best-in-class open software solutions to accomplish typical IoT Management platform related tasks.
Main focus areas of the Natrix Management platform are:
- Provisioning and managing devices and assets
Provisioning, monitoring and controlling of our Natrix Gateways and all things connected to them in a secure way. Defining relations between devices, assets, customers or any other entities.
- Collecting and visualization of data
Collecting and storing telemetry data in a scalable and fault-tolerant way. Visualization of telemetry data with built-in or custom widgets and flexible dashboards. Sharing dashboards with the outside world.
- Processing and Reacting
Defining data processing rule chains. Raising alarms/notifications on incoming telemetry events, device inactivity/faults and user actions.
- Performance Management
Measuring and displaying performance attributes of the Natrix gateway such as response times, uptime, processor utilizations, memory consumption, storage capacity and error logs/traps.
Let’s introduce the various different applications which we leverage to accomplish all the tasks which we expect to be delivered from a highly flexible, robust and scalable platform such we expect the Natrix Management platform will be.
First of all, we need to distinguish between ‘functional’ and ‘operational’ applications. Functional applications are the core of the Natrix Management platform as they provide all required aspects to scalable and robust IoT solution. Operational applications on the other hand are mandatory to run and manage the application stack, which primarily uses the container technology.
Natrix Management platform – Functional applications
Eclipse Kapua™ – Open IoT Cloud Platform for managing edge devices and assets
Eclipse Kapua™ can be used to manage the connectivity between IoT devices and IoT gateways, which initially supports established IoT protocols such as MQTT. Management takes place via a message broker that is compatible with various protocols. The AMQP and WebSockets protocols are supported for application integration. The Device Connectivity module in Eclipse Kapua™ is responsible for the authentication and authorization of connections and for maintaining a device registry.
Device connectivity
Eclipse Kapua™ can also be used to manage the connectivity between IoT devices and IoT gateways, which initially supports established IoT protocols such as MQTT. Management takes place via a message broker that is compatible with various protocols. The AMQP and WebSockets protocols are supported for application integration. The Device Connectivity module in Eclipse Kapua™ is responsible for the authentication and authorization of connections and for maintaining a device registry.
Message routing
In order to forward the data streams to the correct addressees, the module for message distribution is indispensable. Messages intended for device management (such as command or control messages) are forwarded there; other messages to the appropriate places for archiving or other systems.
Data management
For later analysis, bundled real-time data streams from the nodes can be archived or flexibly routed to a company’s IT systems and applications. Telemetric data that are sent by devices can also be sent to a persistent memory with Kapua and saved for query by applications. The storage is based on NoSQL storage for flexible indexing, and registers are created and maintained for the data that contains the topics and metrics of the incoming traffic.
Device management
The device management module allows remote control of the connected devices. For this purpose, an open contract is sent to the devices that are managed by Eclipse Kapua™. In Eclipse Kapua™, this contract is initially based on an open application protocol via MQTT. This protocol is already implemented by Eclipse Kura™ and allows the IoT platform, among other things, to check and manage the device configuration and to receive and set the attributes and resources of devices.
Administration
Eclipse Kapua™ includes a web-based administration console and is accessible via a RESTful API that can be used for easy integration into applications. All equipment and data management operations can be performed from this console.
Security
Security is an essential topic in the Internet of Things: In Eclipse Kapua™, owner, account and user administration are carried out on its own foundation layer. A hierarchical access control structure is supported and with Role Based Access Control (RBAC) identities can be defined and given one or more access rights, whereby the principle of least privilege is guaranteed. Devices can connect to the platform either through SSL authentication or through the use of access rights via the users with rights.
Application integration
For the integration into existing applications, Eclipse Kapua™ provides a modern web services API based on REST. The REST-API sets out the entire functionality of the platform, including device and data management, and can serve as a bridge to the MQTT broker. This enables commands to be routed from applications to devices without a specific connection to the message broker. In addition to REST, Comet and WebSockets are also available in Eclipse Kapua™, so that real-time viewing of data that is published by devices on websites and mobile dashboards is possible.
Grafana – Open Source operational dashboards
Grafana is open source software that can be used to visualize data in dynamic, interactive dashboards. The software is compatible with many data sources and is often used for monitoring tasks and the visualization of measurement data or alarms. Grafana works with numerous time series databases such as InfluxDB, Prometheus or Graphite and also supports relational databases.
With Grafana, data from various data sources can be optically processed and visualized in interactive, dynamic dashboards. The software is available for different platforms and operating systems such as Linux (Debian, Ubuntu, CentOS, Fedora, OpenSUSE, Red Hat and others), macOS and Windows or as a Docker image. The data can be displayed in many different types of charts and graphs. Alerting based on the data is also supported.
An essential component of the software is an HTTP (S) server, which provides a graphical user interface. The connection of the various data sources and other functionalities are implemented via a plug-in system. Grafana is often used for monitoring tasks and the visualization of measurement data. The software works with numerous time series databases such as InfluxDB, Prometheus or Graphite and supports relational databases such as MySQL, PostgreSQL or Microsoft SQL Server.
It is written in Go and TypeScript and is being further developed as an open source project by Grafana Labs. The company’s sources of income include professional support, advice, additional functions, software and cloud based Grafana services. Grafana is very popular and has a global community.
The main functions and features of Grafana
The central function of Grafana is the visualization of data. Data can be visualized in various graphic display types in dynamic dashboards. The dashboards support dynamic drilldowns, ad-hoc queries as well as filters and search functions to refine and customize the graphical representations.
Another important function of Grafana is alarming based on the recorded and visualized data and events. In the event of status changes or threshold values ??being exceeded, Grafana automatically sends notifications, for example by e-mail, Slack or PagerDuty and other services, according to rules that you can define yourself.
A key feature of the Grafana software is that it supports a large number of data sources. For example, Grafana has integrated support for Graphite, InfluxDB, Prometheus, Elasticsearch or CloudWatch. A large number of other data sources can be integrated using the plug-ins available in the plug-in repository. These include MySQL, OpenTSDB, PostgreSQL, Amazon Timestream, AWS IoT SiteWise, Azure Data Explorer, Azure Monitor, Chaos Mesh, Cloudera Manager, CSV files, GitLab, Gnocchi, Google BigQuery, Google Sheets, GoogleCalendar, GraphQL, JSON files, Meteosat, MongoDB, Oracle Cloud Infrastructure Logs and Metrics, Oracle Database, Redis, Splunk, SQLite and many more. The data from different sources can be visualized combined in a single dashboard. Numerous predefined dashboards are available for users.
Basic functionality of Grafana
The HTTP (S) server plays a central role in the Grafana software. It provides a graphical web interface via which the user configures the visualizations and the connections to the data sources and generates the graphical representations. A plug-in interface is implemented to connect the various data sources. The generated dashboards are flexibly configurable, can be equipped with interactive functions and work dynamically. Computers with Linux distributions such as Ubuntu, Debian or Red Hat, Windows computers and servers as well as computers with the macOS operating system are suitable as host systems for the Grafana software. In addition, a Docker container with pre-installed Grafana software is available for Docker environments.
OpenNMS – Network- and Device Management for Service Monitoring
Open Network Management System (OpenNMS) is an enterprise network management platform that is being developed as an open source model. OpenNMS was designed so that a single server can work with a large number of devices. If you use a server cluster, the manageable number is practically infinite. OpenNMS includes a discovery engine that can configure and manage network devices automatically and without manual operator intervention. The product was developed in Java and is under the GNU General Public License (GPL). OpenNMS is listed among the top 400 products at Sourceforge.
OpenNMS comprises three main areas:
Service monitoring
A number of monitor modules can detect whether network-based services are available (for example ICMP, HTTP and DNS).
Data Collection
The project uses SNMP and JMX to collect the data.
Event management and notification
This area offers a reduction in alarm messages and includes a robust notification system with escalation levels and task time management.
Node-RED – what it is
Node-RED makes it possible to implement use cases in the field of the Internet of Things in a short time. The graphic designer, who makes an abstraction of the most diverse technologies possible with a simple modular principle, is primarily responsible for this. The individual function modules, such as an HTTP request or a new tweet, are linked by drawing connections. The relatively large selection of components supplied covers many of the most common services and technologies. There are also function blocks in which JavaScript can be used and thus all options are open. If this is not enough, you have the option of writing your own modules in JavaScript in order to map a desired functionality.
Once you have created the desired structure by arranging the blocks and connections, one click is enough to go live with your own application. Due to the non-existent delivery time, it is possible to quickly adapt the application, try out spontaneous ideas and correct errors. It’s best to start right away with the installation and the first example.
Node-RED – how it works
The main focus is on the connection of hardware, interfaces and services as we know them in the new world of the Internet of Things (IoT). Node-RED uses graphic programming. Some are familiar with Blockly’s visual programming. Node-RED is completely different. It uses so-called nodes, which are connected to a flow. The logical connection of the nodes in the surface allows simple to complex program sequences to be implemented. However, Node-RED is more powerful than Blockly because you can also install extensions here. For example, a KNX installation can also be controlled with Node-RED or openHAB 2 can be integrated. If you want to connect something specific, it is always worth taking a look at the Node-RED library. Here you can find nodes and flows from other users.