--- title: "SparkPipe | Configuration" slug: "sparkpipe-configuration" description: "SparkPipe is a cloud-native service that utilizes the MQTT Sparkplug specification to securely connect to any MQTT 3.1 compatible broker, capturing all the events published by any Sparkplug-enabled edge node, and routing this data to cloud-based services and applications such as Apache Kafka, etc." updated: 2025-12-19T15:11:28Z published: 2025-12-19T15:11:28Z canonical: "docs.n3uron.com/sparkpipe-configuration" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.n3uron.com/llms.txt > Use this file to discover all available pages before exploring further. # Configuration ## Configuration The SparkPipe service is configured using a simple TOML file located at **/etc/sparkpipe/config.toml** ### Default config.toml ```ini # N3uron SparkPipe configuration file # Logging configuration [logging]  # Log level: DEBUG, INFO, WARN, ERROR  level  = "info"  # Log format: JSON, TEXT  format = "text" # MQTT configuration [mqtt]  # Sparkpug host application ID  host_id = "sparkpipe"  # Sparkplug reordering timeout in seconds  reorder_timeout = 5  # Time in seconds before another Rebirth request can be sent to an EdgeNode  rebirth_delay = 5 # MQTT brokers (add as many as desired) [[mqtt.brokers]]  # Connection url: proto://host:port  # Examples:  #   Plain TCP     --> tcp://insecure.server.cloud:1883  #   TLS encrypted --> ssl://secure.server.cloud:8883  #   Websockets    --> wss://secure.server.cloud:8884  server      = ""    # Username/password for authentication (leave empty if unused)  username    = ""  password    = ""  # SSL/TLS configuration  tls_client_certificate     = ""    # Path to the TLS client certificate  tls_client_certificate_key = ""    # Path to the TLS certificate key  tls_certificate_authority  = ""    # Path to the TLS Certificate Authority  tls_insecure_skip_verify   = false # Disable certificate validation # Connectors configuration [connectors]  # Name of the specific connector to run.  #   - kafka  #   - mongo  #   - sitewise  #   - snowflake  #   - stdout  name = "" # Kafka [connectors.kafka] ... # MongoDB [connectors.mongo] ... # AWS IoT SiteWise [connectors.sitewise] ... # Snowflake [connectors.snowflake] ... # Stdout [connectors.stdout] ... ``` ### Usage **Step 1:** Open the configuration file: ```bash sudo nano /etc/sparkpipe/config.toml ``` **Step 2:** Add or modify the default settings as desired and save changes (**Ctrl+X**) **Step 3:** After configuring SparkPipe, run the following commands to enable and start the service: ```bash sudo systemctl enable sparkpipe.service sudo systemctl start sparkpipe.service ``` **Step 4:** Verify the service is up and running: ```bash sudo systemctl status sparkpipe.service ``` **Step 5:** View the logs produced by the service: ```bash sudo journalctl -u sparkpipe.service -f ``` ### Examples > [!NOTE] > Note: > > Configuration examples for each module are provided in their respective sections in [Connectors](/v122/docs/sparkpipe-connectors-apache-kafka). #### Multiple MQTT brokers The following example shows how to configure SparkPipe to use multiple MQTT brokers. Add as many **[[mqtt.brokers]]** sections as required. ```ini ## N3uron SparkPipe configuration file # Logging configuration [logging]  # Log level: DEBUG, INFO, WARN, ERROR  level  = "info"  # Log format: JSON, TEXT  format = "json" # MQTT configuration [mqtt]  # Sparkpug host application ID  host_id = "sparkpipe"  # Sparkplug reordering timeout in seconds  reorder_timeout = 5  # Time in seconds before another Rebirth request can be sent to an EdgeNode  rebirth_delay = 5 # MQTT brokers [[mqtt.brokers]]  # HiveMQ public broker  server = "ssl://broker.hivemq.com:8883" [[mqtt.brokers]]  # Mosquitto public broker  server                   = "ssl://test.mosquitto.org:8883"  tls_insecure_skip_verify = true # Connectors ... ``` #### AWS IoT Core with mTLS This is an example configuration for AWS IoT Core using TLS certificates for authentication. See the [official IoT Core documentation](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) on creating and setting up a new connection. ```ini ## N3uron SparkPipe configuration file # Logging configuration [logging]  # Log level: DEBUG, INFO, WARN, ERROR  level  = "info"  # Log format: JSON, TEXT  format = "json" # MQTT configuration [mqtt]  # Sparkpug host application ID  host_id = "sparkpipe"  # Sparkplug reordering timeout in seconds  reorder_timeout = 5  # Time in seconds before another Rebirth request can be sent to an EdgeNode  rebirth_delay = 5 # MQTT brokers [[mqtt.brokers]]  # AWS IoT Core  server                     = "ssl://e7paxflom6n2q-ats.iot.us-east-1.amazonaws.com:8883"  tls_client_certificate     = "/etc/sparkpipe/certs/703142e50c45a12ac5720aaae40347d56045aa433d71aae6dc5b39d572428f02-certificate.pem.crt"  tls_client_certificate_key = "/etc/sparkpipe/certs/703142e50c45a12ac5720aaae40347d56045aa433d71aae6dc5b39d572428f02-private.pem.key"  tls_certificate_authority  = "/etc/sparkpipe/certs/AmazonRootCA1.pem"    # Connectors  ... ```