Quickstart

Embedded Linux Integration

Integrate your Embedded Linux devices using the Spotflow daemon.

spotflowd runs as a service on your Linux device and sends logs, OS metrics, custom application metrics, and kernel crash reports to Spotflow. You can keep using your existing logging tools without adding an SDK to your applications.

Prerequisites

For this quickstart, you need:

  • A Linux device running systemd on x86-64, ARM64, or ARMv7 (hard-float), with a glibc-based userspace compatible with the pre-built binaries.
  • Shell access with sudo, and curl and Bash installed.
  • Network access to mqtt.spotflow.io on TCP port 8883 for MQTT over TLS, working DNS, and trusted CA certificates.
  • A Spotflow ingest key.

Building a device image with Yocto? Follow Yocto integration instead. The included layer supports both systemd and SysVinit and builds with your distribution's toolchain. For other targets, see the upstream source build instructions.

Install spotflowd

Run the installer on the device:

>_ Device Terminal
curl -sSfL https://github.com/spotflow-io/spotflowd/releases/latest/download/install.sh | sudo bash

The installer detects your architecture, downloads and verifies the binary's checksum, creates the spotflow service account, and installs the systemd service. It creates /etc/spotflow/spotflowd.toml without overwriting an existing configuration and enables the service for subsequent boots. It does not start the service immediately.

You can also download binaries from GitHub Releases.

Configure Device Identity

Edit /etc/spotflow/spotflowd.toml and replace the values in its existing [device] section:

/etc/spotflow/spotflowd.toml
[device]
id = "linux-device-001"
ingest_key = "<your-ingest-key>"

Choose a unique device ID that stays the same across reboots. The ingest key authenticates your device with Spotflow. Manage keys on the Ingest Keys page and keep them out of version control. Preserve the file's restrictive permissions so only the service account and administrators can read it.

By default, this build collects journald logs. The systemd service validates the configuration as its service account before starting collection.

Start the Service

>_ Device Terminal
sudo systemctl start spotflowd
sudo spotflowd status
sudo journalctl -u spotflowd -f

When connected, the service logs include MQTT connected to Spotflow platform. The local spotflowd status command also works offline and reports source health, connection state, queued data, and drops without exposing the ingest key.

Send a Test Log

>_ Device Terminal
logger -t spotflow-test "Hello from embedded Linux to Spotflow"
logger -t spotflow-test -p user.err "Test error from embedded Linux"

Open the Spotflow web application and filter logs by your device ID. Once the device is connected, the test messages should appear within seconds.

Learn more

On this page