Download a configuration file and upload it to another Splunk Edge Hub device
After completing a MQTT, SNMP, OPC-UA, or Modbus configuration, you can download a configuration file to use it with other Splunk Edge Hub devices. Update the configuration file to replace values that are applicable to other Splunk Edge Hub devices.
Downloading and uploading a configuration file means you don't have to repeat the configuration steps again for multiple Splunk Edge Hub devices.
See the following steps, information, and file sample to use configuration files with other Splunk Edge Hub devices.
Download a configuration file
Here's how to download a configuration file:
- In the Splunk Edge Hub advanced settings page, navigate to the tab you want to download a configuration file for.
- Under Configuration, select Download to the file to a local folder.
- Open the downloaded configuration file and make any necessary changes to the values so that it suits your other Splunk Edge Hub device.
Upload a configuration file
Here's how to upload a configuration file to another Splunk Edge Hub device:
- In the Splunk Edge Hub advanced settings page, navigate to the tab you want to upload a configuration file for.
- Under Configuration, upload the configuration file that you previously downloaded and modified.
- Select Upload.
- Select Yes to confirm the action.
MQTT configuration file details
The following tables provide MQTT configuration fields, their descriptions, and their sample values.
Configuration information
Field | Description | Sample values |
---|---|---|
externalBrokerEnabled | Indicates if the external broker is enabled (true) or disabled (false). |
true false |
topicRules | Rules configured for topics on the external broker. |
[ TopicRule1, TopicRule2, …] See TopicRule format in following table. |
username | Username to be used in combination with the password for connecting to the external MQTT broker in the Splunk Edge Hub device. | "mqtt_user" |
password | Password to be used in combination with the username for connecting to the external MQTT broker in the Splunk Edge Hub device. | "mqtt_password" |
certfile | Path to the certificate file for TLS (Transport Layer Security). | "/etc/splunk/splunkiotpuck/ca_certs/user_ext_mqtt_certifile.key" |
keyfile | Path to the key file for TLS. | "/etc/splunk/splunkiotpuck/ca_certs/user_ext_mqtt_keyfile.pem" |
TopicRule
Field | Description | Sample values |
---|---|---|
topicName | Specifies the topic where these attributes will be applied. | "external/al1350/vibration" |
sensorId | Unique sensor identifier created for this rule. | "6a19dd4a-f23c-5c52-9090-e7deb3b3f25f" |
sensorType | Describes the 'sensor_type' dimension in Splunk metrics for effective filtering. | "ext_ifm_vibration" |
description | Flexible field for additional notes or relevant information. | "IFM Vibration Sensor VVB001" |
metricRules | Rules for transforming incoming messages to this topic. |
[ MetricRule1, MetricRule2, …] See MetricRule format in the following table. |
timestamp | Rules for transforming timestamp-related fields. | TopicTimestampRule |
dimensionRules | Rules for transforming dimensions in incoming messages. | [ DimensionRule1, DimensionRule2, …] |
MetricRule
Field | Description | Sample values |
---|---|---|
metricName | Name assigned to the generated metric. | "ext_crest" |
unit | Unit of measurement for the generated metric. | "m/s" |
value | Rule transforming incoming messages to produce an int/float for the metric's value. | "$parseInteger($string('0x'&$substring(data.payload.'/iolinkmaster/port[1]/iolinkdevice/pdin'.data, 32, 4)),'0') * 0.1" |
metricID | Unique identifier associated with the metric rule. | "e8a616f9-eb21-53e0-a2ea-8272ddb090e4" |
TopicTimestampRule
Field | Description | Sample values |
---|---|---|
seconds | Rule applied to transform the seconds level of a timestamp in incoming messages. | "$parseInteger($string('0x'&$substring(data.payload.'/iolinkmaster/port[1]/iolinkdevice/pdin'.data, 8, 4)),'0') * 1234560" |
nanos | Rule applied to transform the nanos level of a timestamp in incoming messages. | "$parseInteger($string('0x'&$substring(data.payload.'/iolinkmaster/port[1]/iolinkdevice/pdin'.data, 8, 4)),'0') * 1234560 *10000" |
DimensionRule
Field | Description | Sample values |
---|---|---|
dimension_key | Key identifier for the dimension. | "ext_crest_as_dimension" |
dimension_value | Rule transforming incoming messages to produce a string value sent to the Splunk platform. | "$parseInteger($string('0x'&$substring(data.payload.'/iolinkmaster/port[1]/iolinkdevice/pdin'.data, 32, 4)),'0') * 0.1" |
dimension_id | Unique identifier associated with the dimension rule. | "995a0ed9-8116-5d57-91c7-800a4e6671c3" |
MQTT sample configuration file
The following is a sample MQTT configuration file:
// { "externalBrokerEnabled": true, "topicRules": [ { "topicName": "external/al1350/vibration", "sensorId": "6a19dd4a-f23c-5c52-9090-e7deb3b3f25f", "sensorType": "ext_ifm_vibration", "description": "IFM Vibration Sensor VVB001", "metricRules": [ { "metricName": "ext_crest", "unit": "m/s", "value": "$parseInteger($string('0x'&$substring(data.payload.'/iolinkmaster/port[1]/iolinkdevice/pdin'.data, 32, 4)),'0') * 0.1", "metricId": "e8a616f9-eb21-53e0-a2ea-8272ddb090e4" } ], "timestamp": { "seconds": "$parseInteger($string('0x'&$substring(data.payload.'/iolinkmaster/port[1]/iolinkdevice/pdin'.data, 8, 4)),'0') * 1234560", "nanos": "$parseInteger($string('0x'&$substring(data.payload.'/iolinkmaster/port[1]/iolinkdevice/pdin'.data, 8, 4)),'0') * 1234560 * 10000" }, "dimensionRules": [ { "dimensionKey": "ext_crest_as_dimension", "dimensionValue": "$parseInteger($string('0x'&$substring(data.payload.'/iolinkmaster/port[1]/iolinkdevice/pdin'.data, 32, 4)),'0') * 0.1", "dimensionId": "995a0ed9-8116-5d57-91c7-800a4e6671c3" } ] } ], "username": "mqtt_user", "password": "mqtt_password", "certifile": "etc/splunk/splunkiotpuck/ca_certs/user_ext_mqtt_certifile.key", "keyfile": "etc/splunk/splunkiotpuck/ca_certs/user_ext_mqtt_keyfile.pem", }
SNMP configuration file details
The following tables provide SNMP configuration fields, their descriptions, and their sample values.
Configuration information
Field | Description | Sample values |
---|---|---|
default | Default values used when attributes of the deviceSetting are not explicitly defined. | See DefaultSetting in the following table. |
deviceSettings | Communication settings between the SNMP manager and the target device. | [ DeviceSetting1, DeviceSetting2, DeviceSetting3, … ]
See DeviceSetting in the following table. |
DefaultSettings
Field | Description | Sample values |
---|---|---|
credentials | Default community string used for SNMP communication. | "public" |
port | Default port number used for SNMP communication. | 161 |
sources | Default URLs to accessing SNMP MIB files. |
[ "http://mibs.thola.io/asn1/", "http://www.circitor.fr/Mibs/Mibs.php" ] |
DeviceSettings
Field | Description | Sample values |
---|---|---|
ipAddress | IP address of the SNMP device. | "192.168.4.39" |
port | Port number on which SNMP agents listen for incoming SNMP requests. | 161 |
snmpVersion | Version of SNMP used for communication. Currently only SNMPv1 and SNMPv2c are supported. | "SNMPv1" |
metrics | Symbolic Names for metrics that can be monitored or managed on the network device. | "SNMPv2-MIB::sysDescr", "SNMPv2-MIB::sysObjectID", "SNMPv2-MIB::sysUpTime", |
credentials | Community strings serving as authentication in SNMP, controlling access to SNMP-enabled devices. | "public" |
SNMP sample configuration file
The following is a sample SNMP configuration file:
"default": { "credentials": "public", "port": 161, "sources": [ "http://mibs.thola.io/asn1/", "http://www.circitor.fr/Mibs/Mibs.php" ] }, "deviceSettings": [ { "ipAddress": "192.168.4.39", "port": 161, "snmpVersion": "SNMPv1", "metrics": [ "SNMPv2-MIB::sysDescr", "SNMPv2-MIB::sysObjectID", "SNMPv2-MIB::sysUpTime" ], "credentials": "public" } ] }
Modbus configuration file details
The following tables provide Modbus configuration fields, their descriptions, and their sample values.
Configuration information
Field | Description | Sample values |
---|---|---|
servers | A list of ModbusServer configurations, each specifying settings for communication with Modbus servers. | [ ModbusServer1, ModbusServer2, ModbusServer3, … ]
See ModbusServer format in the following table. |
ModbusServer
Field | Description | Sample values |
---|---|---|
id | Modbus device identifier. | "55a8898f-7971-45fd-a5bd-132ccce22175" |
deviceName | User-defined device name. | "erbessd 189303146 x" |
captureHostname | IP address of the connected device. | "192.168.189.223" |
destPort | Port of the connected device. | 502 |
startingAddress | Starting point of the source address of the client. | 1 |
endingAddress | End point of the source address of the client. | 10 |
pollingInterval | Systemd timers for periodic service execution. | 10 |
unitIdentifier | Data type and size used to decode the message. | "FLOAT_32BIT" |
Modbus sample configuration file
The following is a sample Modbus configuration file:
"servers": [ { "id": "55a8898f-7971-45fd-a5bd-132ccce22175", "deviceName": "erbessd 189303146 x", "captureHostname": "192.168.189.223", "destPort": 502, "endingAddress": 1, "pollingInterval": 10, "unitIdentifier": "FLOAT_ 32BIT" } ] }
OPC configuration file details
The following tables provide OPC configuration fields, their descriptions, and their sample values.
Configuration information
Field | Description | Sample values |
---|---|---|
servers | A list of MonitorServerSchema configurations, each specifying settings for communication with OPC servers. | {MonitorServerSchema1, MonitorServerSchema2, MonitorServerSchema3, …}
See Monitor ServerSchema below. |
MoniterServerSchema
Field | Description | Sample values |
---|---|---|
serverId | User-defined server name set up through advanced configuration for OPC server communication. | "opcua_server" |
MonitorApiServerSchema
Field | Description | Sample values |
---|---|---|
uri | URI of the connecting server for OPC communication. | opc.tcp://192.168.68.51:53530/test/SimulationServer" |
pollingIntervalMs | Duration for pushing data to the Splunk platform. | 1000 |
tags | A list of MonitorTag configurations, specifying settings for monitoring tags in the OPC server. |
[MonitorTag1, MonitorTag2, MonitorTag3, … ] See MonitorTag in the following table. |
splunkIndexName | The name of the index where the user designates data to be pushed in the Splunk platform. | "index" |
securityOptions | OPC security configuration options for enhanced communication security. |
OpcSecurityOptions See OpcSecurityOptions in the following table. |
MonitorTag
Field | Description | Sample values |
---|---|---|
id | Identification of the OPC tag. | "i=2254" |
alias | Alias name for the OPC tag. | "ServerArray" |
OpcSecurityOption
Field | Description | Sample values |
---|---|---|
credentialAuthentication | Username and password for authentication to connect to the OPC server. |
{ "userName": "opc_user", "password": "opc_password" } |
securitySettings | Security modes and security policy settings for communication with the OPC server. |
{ "opcSecurityMode": 1, "opcSecurityAlgorithm": 2 } See values for opcSecurityMode and opcSecurityAlgorithm below. |
opcSecurityMode
Field | Value |
---|---|
0 | Invalid |
1 | None |
2 | Sign |
3 | SignAndEncrypt |
opcSecurityAlgorithm
Field | Value |
---|---|
0 | Auto |
1 | Custom |
2 | None |
3 | Basic128Rsa15 |
4 | Basic256 |
5 | Basic256Sha256 |
6 | Https |
OPC sample configuration file
The following is a sample OPC configuration file:
{ "servers": { "opcua_server": { "uri": "opc.tcp://192.168.68.51:53530/test/SimulationServer", "pollingIntervalMs": 1000, "tags": [ { "id": "i=2254", "alias": "ServerArray" } ], "splunkIndexName": "index", "securityOptions": { "credentialAuthentication":{ "userName": "opc_user" "Password": "opc_password" }, "securitySettings": { "opcSecurityMode": 1, "opcSecurityAlgorithm": 2 } } } } }
Configure router passthrough for Splunk Edge Hub OS | Use Docker containers with Splunk Edge Hub OS |
This documentation applies to the following versions of Splunk® Edge Hub OS: 1.7.0, 1.8.0, 1.8.1, 1.9.0, 2.0.0, 2.1.0
Feedback submitted, thanks!