Ready to get started?

Learn more about CData Cloud Hub or sign up for a free trial:

Learn More

Query Splunk Data as a MySQL Database in Node.js

Execute MySQL queries against Splunk data from Node.js.

You can use the CData Cloud Hub to query Splunk data through a MySQL interface. Follow the procedure below to create a virtual database for Splunk in the Cloud Hub and start querying using Node.js.

The CData Cloud Hub provides a pure MySQL, cloud-to-cloud interface for Splunk, allowing you to easily query live Splunk data in Node.js — without replicating the data to a natively supported database. As you query data in Node.js, the CData Cloud Hub pushes all supported SQL operations (filters, JOINs, etc) directly to Splunk, leveraging server-side processing to quickly return Splunk data.

Create a Virtual MySQL Database for Splunk Data

CData Cloud Hub uses a straightforward, point-and-click interface to connect to data sources and generate APIs.

  1. Login to Cloud Hub and click Databases.
  2. Select "Splunk" from Available Data Sources.
  3. Enter the necessary authentication properties to connect to Splunk.

    To authenticate requests, set the User, Password, and URL properties to valid Splunk credentials. The port on which the requests are made to Splunk is port 8089.

    The data provider uses plain-text authentication by default, since the data provider attempts to negotiate TLS/SSL with the server.

    If you need to manually configure TLS/SSL, see Getting Started -> Advanced Settings in the data provider help documentation.

  4. Click Test Database.
  5. Click Privileges -> Add and add the new user (or an existing user) with the appropriate permissions.

With the virtual database created, you are ready to connect to Splunk data from any MySQL client.

Query Splunk from Node.js

The following example shows how to define a connection and execute queries to Splunk with the MySQL module. You will need the following information:

  • Host name, or address, and port: The address of your instance of the Cloud Hub (myinstance.cdatacloud.net) and the port (3306)
  • Username and password: The username and password of a user you authorized on the Cloud Hub
  • Database name: The database you configured for Splunk (splunkdb)

Connect to Splunk data and start executing queries with the code below:

var mysql      = require('mysql');
var fs         = require('fs');
var connection = mysql.createConnection({
  host     : 'myinstance.cdatacloud.net',
  database : 'splunkdb',
  port	   : '3306',
  user     : 'admin',
  password : 'password',
  ssl      : {
    ca : fs.readFileSync('C:/certs/myCA.pem')
  }
});
connection.connect();
connection.query('SELECT * FROM DataModels', function(err, rows, fields) {
  if (err) throw err;
  console.log(rows);
});

connection.end();