Skip to main content
Interania

Admin Guide: Install multi-node Interana

Most production environments require a multi-node Interana cluster to handle the sheer number of events, and keep pace with the continued data growth. This document demonstrates how to install an Interana multi-node cluster on VMware virtual machines (VMs) running in a private data center. Interana is distributed as a .deb intaller that is deployed on an Ubuntu Linux VM. Ngnix is used to serve queries and results. Ngnix is a high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server that facilitates handling large volumes of requests. 

Mulit-node cluster configuration

A basic Interana cluster comprises the following:

  • config node — Node from which you administer the cluster. MySQL database (DB) is only installed on this node for storage of Interana metadata. Configure this node first.
  • API node — Serves Interana application, merges results of queries from data and string nodes, and then presents those results. Nginx is only installed on the api node. 
  • import node — Polls data repositories (S3, Azure, local file system), downloads new files, processes the data and then sends to data and string tiers, as appropriate.
  • data node — Data storage, must have enough space to accommodate all events and stream simultaneous query results.
  • string node — String storage for the active strings in the dataset, stored in compressed format. Requires sufficient memory to hold the working set of strings accessed during queries.
  • listener node — Streams live data from the web or cloud, also known as streaming ingest. 

Node Prerequisites

The nodes on which you will install Interana must be running Ubuntu 14.0.4 and also meet the following minimum requirements:

  • 4 CPU cores
  • 8 GB RAM
  • 200 GB storage

Configuring the cluster

Configuring an Interana cluster includes the following tasks. Click a link to jump directly to the task.

  1. Provisioning nodes.
  2. Downloading Interana software.
  3. Installing MySQL on the config node.
  4. Intalling Interana.
  5. Installing streaming ingest.
  6. Starting Interana.
  7. Configuring the CLI on the config node.
  8. Creating an admin user account
  9. Replacing a self-signed certificate.

1. Provisioning nodes

Before you can begin installing Interana to configure your cluster, you must provision the nodes. After all the nodes are provisioned, you can then configure the first node of the cluster: config node.

All nodes will have to have access to the MySQL server, and be on the same subnet as the MySQL server.

To provision nodes for an Interana cluster, do the following:

  1. Provision your nodes with Ubuntu 14.04.
  2. Make a note of the IP addresses of your nodes. You will need them later.
  3. Verify that you have SSH connectivity to each node, with no TCP restrictions (such as iptables).
  4. Log into what will be the config node of the cluster, and begin downloading Interana software

2. Downloading Interana Software

You must install Interana on the config node first.

The the APT AWS S3 transport allows you to fetch files from the Interana private repository on AWS S3. You import a Gnu Privacy Guard (gpg) key so you can then securely download the Interana software from a trusted site.

To download the Interana software, do the following:

  1. Open a Terminal window and log into the VM. The following example uses the Ubuntu default username (ubuntu) and password (ubuntu). Use the login credentials established when you provisioned your VM. 
ssh ubuntu@<IP_address> 
password: ubuntu
  1. Install apt-transport-s3 using the following command, so you can fetch files from the Interana private repository on AWS S3. 
https://launchpad.net/ubuntu/+source/apt-transport-s3
  1. Go to /etc/apt/s3auth.conf and configure the AWS credentials Interana provided you with for access to the Interana private repository. The following is an example of the credentials to be added.
AccessKeyId = AKIAyouraccesskeyidUZBA
SecretAccessKey = W18sR/ZrAT0WyoursecretaccesskeyVjOkg0DMl
Token = ''
  1. Import the gpg key by entering the following command.
wget -qO - https://apt.interana.com/repo.key | sudo apt-key add -
  1. To add an apt repository, enter the following command.
echo "deb [arch=amd64] s3://interana-apt-prod.s3.amazonaws.com/ trusty main" | 
sudo tee/etc/apt/sources.list.d/interana.list
  1. To refresh your package index with information about the latest version of the Interana software, enter the following command.
sudo apt-get update

3. Installing MySQL on the config node

Install MySQL 5.3 or newer. This step is only necessary for the config node of a multi-node cluster. Skip this task for the other nodes in the cluster.

You install MySQL to create a database for Interana metadata.

To install MySQL for Interana, do the following:

  1. In a Terminal window, do one of the following:
  • To install the full Interana package that includes GPL-licensed software, enter the following command:
sudo apt-get -y install interana-cli interana
  • To install Interana without any GPL-licensed software, enter the following command:
sudo apt-get -y install --no-install-recommends interana-cli interana

If you already have interana fully installed and want to remove GPL-licensed software, use the following command:
sudo apt-get remove interana-python3-extra

  1. In the MySQL Package Configuration window, enter a password for the MySQL root user. We'll refer to this as the MySQL root user password later on.

  1. Enter the following commands to allow access to MySQL for the other cluster nodes (other than 127.0.0.1, the MySQL default):
sudo sed -i "s/127.0.0.1/0.0.0.0/g" /etc/mysql/my.cnf ; sudo service mysql restart
mysql -uroot -p -e "CREATE USER root@'%' IDENTIFIED BY '<password>';"

You will need the <password> you entered here later, when prompted by Interana. This is different from the MySQL root user password from step 2.

When prompted for a password after (specifying the <password>), enter the MySQL root user password from step 2.

mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION; "

When prompted, enter the MySQL root user password.

mysql -uroot -p -e "FLUSH PRIVILEGES;"

When prompted, enter the MySQL root user password.

  1. Continue with installing Interana.

4. Installing Interana

You are now ready to install the Interana software, starting with the config node. 

You must install Interana on the config node first.

To install Interana on the config node, do the following:
  1. Log in to the node and enter the following command.
sudo apt-get -y install interana-cli interana
  1. Enter IP address for the config node for the MySQL server address.

  1. Enter MySQL server port. It is recommended that you keep the default of 3306.

  1. Enter the MySQL username. The default is root.

  1. Enter the MySQL password you created in step 3 of Installing MySQL (not the MySQL root user password).

  1. Configure the role for the node. For the config node, deselect all except the config node. Use the arrow keys to move up and down, the spacebar to select and deselect, and Enter to continue.

 

  1. Start the Interana service with the following command.
sudo service interana start
  1. Continue with installing Interana on the other nodes in the cluster.

 

For Listener tier nodes, follow the instructions described in Configuring streaming ingest.

To install Interana on the other nodes in the cluster, do the following:
  1. Perform steps for downloading Interana software.
  2. Perform steps 1-5 of installing Interana on the config node.
  3. Enter the IP address for the config node when prompted for the address for the MySQL server.
  4. To configure the role of the node, deselect all the options except for the desired node type. Use the arrow keys to move up and down, the spacebar to select and deselect, and Enter to continue. For Listener tier nodes, follow the instructions described in Configuring streaming ingest.
  5. ONLY install Nginx on an API (or Listener) node, using the following command.
sudo apt-get -y install nginx-extras
  1. Continue with starting Interana.

5. Installing streaming ingest

For the ability to stream live data (data-in-motion), install the following utilities on the Listener nodes in the cluster.

To install and configure streaming ingest, do the following:
  1. Perform steps for downloading Interana software.
  2. Perform steps 1-5 of installing Interana on the config node.
  3. Enter the IP address for the config node when prompted for the address for the MySQL server.
  4. Select the listener role.
  5. On the next screen, select the listener role component. All three components can run on the same node. If you have multiple Listener nodes, you can assign the roles to different nodes using the following guidelines:
  • Listener—supports the streaming ingest HTTP endpoint, and must be running on at least one node.
  • Kafka—can be on any node.
  • Zookeeper—can be placed on any node, but must be running on at least two nodes.
  1. Install Nginx on the Listener role node only with the following command.

sudo apt-get -y install nginx-extras
  1. For nodes with Zookeeper or Kafka listener roles, install the Java component with the following commands:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update -qq
sudo apt-get install oracle-java8-installer
oracle-java8-set-default
  1. For nodes with a Zookeeper listener role, install the Zookeeper component with the following command:
sudo apt-get install zookeeper=3.4.5+dfsg-1
  1. For nodes with a Kafka listener role, install the Kafka component with the following commands:
sudo mkdir -p /usr/share/kafka
wget -O- 
ftp://apache.cs.utah.edu/apache.org/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz | 
sudo tar zxf - --strip-components=1 -C /usr/share/kafka/
  1. After all nodes in the cluster are installed, you must update the Zookeeper configuration with the following command.
sudo dpkg-reconfigure --priority critical interana
  1. Continue with starting Interana.

If you get an HTTP 504 error when trying to send data to the add_events endpoint, try restarting the Interana service. For more information on steaming ingest, see the Streaming ingest section of the Admin Guide.

6. Starting Interana

You are now ready to start Interana. 

To start the Interana service, do the following:

  1. In the terminal window, enter the following command. 
sudo service interana start
  1. Open a browser window and enter the following in the URL field, using the IP address for the config node.

http://<config-node-IPaddress>
  1. Log in to Interana using the default username root@localhost and the default passwordroot.
  • If you see the Interana login prompt, as shown below, you can proceed with configuring the Interana CLI. After which, you can add an admin user account with the CLI.
  • If you see a Welcome to nginx! prompt instead, see the workaround tip to resolve the issue.

Workaround tip 

If you did not see the Interana login dialog, the following workaround may solve the problem.

If you see a Welcome to nginx! message, do the following:

  1. Go back to the Terminal window and type the following two commands to remove the file that's keeping Interana from starting correctly:
cd /etc/nginx/sites-enabled
rm default
  1. Now type ls -l and look for a file named default.something. Use the following command to rename the file to default(but change default.something to the actual name of the file):
mv default.something default
  1. Now restart Nginx (typesudoservice nginx restart) and open your site’s URL from your browser again.

7. Configuring the Interana CLI on the config node

Configure the Interana CLI on the config node of the cluster to create an admin node from which you can manage the cluster. This is the node from which you can use the CLI to create user accounts, with or without email authorization. 

You must have login credentials for the cluster and know the cluster URL. The HTTPS URL uses the fully qualified domain name (FQDN) of the instance to configure a connection with the cluster.

To configure the CLI to manage the default cluster, do the following:

  1. In a shell window, type the following command.
ia config http://<default-cluster-address.com>

You receive a response similar to the following:

Visit https://mycluster.interana.com/api/create_token and supply your new API token.
  1. Open a new browser window and enter the URL: https://mycluster.interana.com/api/create_token. You receive a generated token similar to the following.

  1. Enter the token value (in the terminal window) as it appears (between the "") when you are prompted for the API key, and then press Enter. You are notified that the credentials have been configured.
Enter API Key: <pasted token value is not visible>
 
Success! Credentials stored as default config

Interana is installed with a self-signed certificate. Ignore the warning and accept the certificate. After you finish creating an admin user account, you can replace the self-signed certificate.

8. Creating an admin user account 

Now you are ready to create an admin account using the CLI. Specify a username and password for each new account you create. For security purposes, the password used to create the account is visible in the bash history. For this reason, it's important to advise the user change their password when they initially log into their account.

It is recommended that you make the first user an admin so you can use the import wizard to ingest data. Use a fully qualified domain name (FQDN) for the user name, such as your-name@company-name.com.  

The create user command has the following structure and options.

ia user create <username> <password> [--no-email] [--base-url <base_url>]
  • The username and password are required.
  • By default, Interana will send an e-mail notification to the user (we treat their username as their e-mail address) welcoming them to Interana and asking them to verify their account. The --no-email option specifies that email confirmation by the user is not required to activate the account and no e-mail will be sent.
  • If you do not use the --no-email option, it is strongly recommended that you set the --base-url. If --base-url is not set, it defaults to the public IP of the first API node, which may not be user-friendly. 

The --base-url is set in the following example, requiring email authorization by the user to activate the account. 

To create an admin user account, do the following:

  1. Enter the following command in the terminal window, with the account username and password, and a valid URL for email authorization.
ia user create user-name@company.com admin-password --base-url example.company.com
  1. Enter the following command to give the user account admin privileges.
ia user update user-name@company.com --addrole-admin

9. Replacing the self-signed certificate

Interana comes with a self-signed certification that you will want to replace with a trusted certificate from a respected Cerificate Authority (CA). For instructions, see How to replace a self-signed certificate.

What's next?

Now that you've installed Interana, it's time to add your data.

  • Was this article helpful?