Time-series Processing¶
Time-series Data Processing Stack¶
This feature contains some template files for launching a time-series data processing stack consisting of the MQTT broker mosquitto, telegraf as data collection service, InfluxDB as time-series database, and grafana for visualization.
These services are used as Docker* containers and pulled from the Docker Hub registry. docker-compose files are provided to compose, configure, and launch the full stack.
As these files and the service configurations are templates, data is not collected, stored, or displayed.
MQTT broker configuration is stored in the /opt/timeseries/timeseries-stack/mqtt/
directory, Telegraf configuration is located in /opt/timeseries/timeseries-stack/telegraf
and might be changed and extended to match your local data sources and their proper collection.
Important
Some other ECI features might also launch an MQTT broker (for example, Intel® In-band Manageability or Intel® Secure Device Onboarding) on the same default ports causing the time-series data processing stack’s MQTT broker to fail on startup as the port is already in use.
In this case, you have to either stop the other feature, service or change the port on either instance.
Install Time-series Data Processing Stack¶
Time-series Data Processing Stack requires the Docker* Engine. Install Docker if not already done.
Install
docker-compose
on the target system.Setup the ECI APT repository, then perform either of the following commands to install this component:
- Install from meta-package
$ sudo apt install eci-timeseries
- Install from individual Deb packages
$ sudo apt install timeseries-stack
Set up Time-series Stack¶
The time-series data processing stack setup supports the following three variants:
External MQTT broker: Only telegraf, influxdb, and grafana services are configured and launched (a separately launched MQTT broker is assumed and required)
With MQTT broker: Additionally, mosquitto MQTT broker is part of the service composition
With secure MQTT broker: Additionally, the MQTT broker is set to the Transport Layer Security (TLS) mode and the communication from/to the broker is secured
Deploy Stack¶
Navigate to /opt/timeseries/timeseries-stack
and execute docker-compose
with the desired variant:
Broker
<compose files>
No
-f timeseries-stack.yml
Yes
-f timeseries-stack.yml -f mqtt-broker.yml
Secure(TLS)
-f timeseries-stack.yml -f secure-mqtt-broker.yml
$ cd /opt/timeseries/timeseries-stack $ docker-compose <compose files> up -d
To stop the stack, run the following commands:
$ cd /opt/timeseries/timeseries-stack $ docker-compose <compose files> down
Set up Secure Time-series Stack¶
This configuration enables TLS for all services.
Note: This requires certificates and keys to be provided or generated for every service.
Generate Certificate and Key¶
Some template certificate and key configurations are provided in the /opt/timeseries/timeseries-stack/ssl-config
directory.
The provided script uses the template and key configurations to generate certificate and key. Modify the distinguished name, however retain the value for CN.
To generate the certificate and key, navigate to
/opt/timeseries/timeseries-stack
and run thets-create-certs.sh
script.$ cd /opt/timeseries/timeseries-stack $ ./ts-create-certs.sh
Enter a password for the certificate, then re-enter the password for signing the individual keys per service.
Deploy Secure Stack¶
Navigate to
/opt/timeseries/timeseries-stack
and executedocker-compose
with the desired variant:$ cd /opt/timeseries/timeseries-stack $ docker-compose -f secure-timeseries-stack.yml up -d
To stop the stack:
$ cd /opt/timeseries/timeseries-stack $ docker-compose -f secure-timeseries-stack.yml down