WoodWing Help Center

Installing Elvis 5 Server

 

Installing Elvis 5 Server

This article describes how to install and configure Elvis 5 Server on a system (referred to as a 'node') on which Elvis is not yet installed.

The process can be summarized as follows:

  1. Preparing your setup
  2. Installing the Server
  3. Basic Server configuration
  4. Starting the Server
  5. Activating licenses
  6. Monitoring the status of the Server
  7. Setting up the Elvis 5 environment
  8. Testing the Server

1. Preparing your setup

Before starting with the actual installation it is important to have a plan of how your setup will look:

  • Will you run the full Elvis environment on a single machine?
  • Will you spread the workload across multiple nodes in your cluster by setting up dedicated search nodes and processing nodes?
  • What hardware and operating systems will you need?

The answers to these questions will affect how you are going to set up each node in the cluster. The following sections will help you find answers to these questions.

Single-node or cluster-node setup?

Elvis Server can take on the role of a search node, a processing node and/or a job runner node or any combination of these roles.

A typical production environment consists of a cluster of at least 3 nodes containing multiple search nodes, processing nodes and job runner nodes. This makes sure that redundancy is achieved: when one machine fails, the cluster itself still functions.

For demo purposes you would use a single machine (such as a laptop) with one Elvis Server instance installed that takes on all 3 roles.

A cluster with 3 nodes

In this cluster, 1 Elvis installation is used as a Search node while the load of processing files and generating previews is balanced over 2 separate Elvis installations that act as Processing nodes.

For more information, see The Elvis 5 structure: clusters and nodes.

System requirements

For detailed information about which hardware and operating systems to use, see the following articles:

Available ports

For information about available ports, see Elvis 5 Server network ports.

Naming the cluster and its nodes

During the basic configuration of Elvis Server you will have to define a name for the cluster and (optionally) a name for each node. Think of some descriptive names to use to easily identify the cluster and each node.

Note: For naming a node, Elvis can also be configured to automatically set a random name or use the computer name.

2. Installing Elvis Server

Installing Elvis 5 Server is done by using an installer. Download it from the software download page.

Notes: 

  • The installation of Elvis Server as a Search node, a Processing node or a Job Runner node is identical and is done by using the same installer. Which role Elvis Server should take is determined during the basic configuration steps.
  • Running Elvis 5 Server as a processing-only node on Windows requires Elvis 5.2 or higher. For Elvis 5.0 or 5.1, the processing-only node needs to run on Mac OS X or Linux.
  • When your setup includes a processing-only node, make sure that all nodes in the cluster are the same version of Elvis Server.

3. Basic Server configuration

Note: This section describes the basic server configuration steps that are required to get Elvis Server up and running. Additional configuration steps are described later.

How to configure your cluster and each node within the cluster depends on the choices you made in Preparing your setup. At this stage you should know:

  1. How to name your cluster and each node within the cluster
  2. How many nodes you will have in your cluster
  3. Which nodes will take on the role of a Search node, a Processing node, a Job Runner node, or a combination of these roles
  4. If your file store is on the same node on which Elvis Server is installed or placed at a shared location

Basic configuration can be broken down into the following tasks:

  1. Configuring the settings specific for the cluster
  2. Configuring the settings specific for an individual node
  3. Opening the firewall port
  4. Repeating the process on each node

1. Configuring the cluster settings

Note: The cluster-config.properties.txt file needs to be identical for all node configurations. After setting up the first node and configuring subsequent nodes, make sure that any changes to a cluster property are implemented in the cluster-config.properties file for all nodes. See also Changing the Elvis 5 Server configuration for a running cluster.

Step 1. Access the Elvis Server/Config folder on one of the nodes.

Step 2. Open the cluster-config.properties.txt file and set the following options:

  • cluster.nodeCount. Set this to the total number of nodes in your cluster.

Example: Here a setup of 5 nodes is used. Therefore "5" is entered:

cluster.NodeCount=5

  • cluster.searchNodeCount. Set this to the number of nodes in your cluster that act as a Search node.

Example: Here, 3 nodes will take on the role of Search node. Therefore "3" is entered:

cluster.searchNodeCount=3

Step 3. Save and close the file.

2. Configuring the node settings

Step 1. In the same folder as where you opened the cluster configuration file (Elvis Server/Config), open the node-config.properties.txt file and set the following options (listed in the order in which they appear in the file):

  • clusterName. Set this to a unique name for your cluster.

Example: clusterName=ElvisDemo

Note: This name needs to be the same on all the nodes.

  • nodeName. (Optional) By default, Elvis generates a random name for the node. To use a more descriptive name, do one of the following:
  • Use the computer name by replacing the value with ${computerName}.
  • Enter a custom name.

Examples:

Here, a random name is generated:

nodeName=${randomHeroName}

Here the computer name is automatically used:

nodeName=${computerName}

Here a custom name is entered:

nodeName=ProcessingNode1

  • Define how Elvis Server should run: as a Search node, a Processing node, a Job Runner node or any combination of these roles. Do this by setting the following options to true or false:

searchDataEnabled=true

processingEnabled=true

jobRunnerEnabled=true

  • When the sharedDataLocation is different on each node, make sure that the elasticsearch.backup.location (which references this location by default) is also configured correctly for the cluster. This can be done in the the cluster-config.properties.txt file (see Changing the Elvis 5 Server configuration for a running cluster).
  • fileStoreType. When the file store is configured on the same node on which Elvis Server is installed, set this option to "local".

Note: This is typical when installing Elvis Server on a laptop for demo purposes.

Example: fileStoreType=local

Step 2. Save and close the file.

3. Opening the necessary firewall port

(Optional, only necessary for a multi-node cluster) Open UDP port 6375 in the firewall so that all nodes can find each other.

4. Repeating the process

Now that the first node in the cluster has been installed and the basic configuration settings for it have been set, repeat all these steps on each of the other nodes.

To save you some time, run the installer on each node and replace the config folder by a copy of the config folder of the node that is already configured. This way, the cluster settings are already correctly set and you only have to modify the node settings where needed.

To summarize those settings:

File: node-config.properties.txt

Settings:

  • The clusterName should be the same for all nodes and therefore does not have to be changed here.

Example: clusterName=ElvisDemo

  • Set nodeName to the computer name, a custom name, or keep the default setting to have a random name generated.

Examples:

Here, a random name is generated:

nodeName=${randomHeroName}

Here the computer name is automatically used:

nodeName=${computerName}

Here a custom name is entered:

nodeName=ProcessingNode1

  • Define if Elvis Server should run as a Search node, a Processing node, a Job Runner node or a combination of these roles:

searchDataEnabled=true

processingEnabled=true

jobRunnerEnabled=true

  • Set fileStoreType to local when the file store is configured on the same node on which Elvis Server is installed.

Example: fileStoreType=local

Save and close the file.

4. Starting Elvis Server

Once Elvis 5 Server is fully installed and configured, start Elvis Server on each node on which it is installed.

The startup process takes a few moments (longer than what you may be used to with Elvis 4 Server) because of various processes that have to start up and have to negotiate and communicate with each other.

Monitor the progress by viewing the log file for that session:

  • Mac OS X: double-click /Library/Elvis/Logs/<date-timestamp>.stderrout.log to open it in the Console
  • Mac OS X: Open the Console and in the Log List, choose the most recent <date-timestamp>.stderrout.log file from ElvisServer
  • Windows: open C:\ProgramData\Elvis Server\Logs\<date-timestamp>.stderrout.log (use mTail to open the file)
  • Linux: enter tail -f -n 300 /var/log/elvis-server/<datetimestamp>.stderrout.log

Wait until the process is completed and all nodes are ready. The Server will eventually run in "fallback mode" until it is licensed.

Fallback mode

5. Licensing Elvis server

Before the Server and the client applications that connect to it can be used, licenses need to be activated.

Note: When a server is not licensed it will start up in "fallback mode". In this mode, only the admin page and activation page are available.

6. Monitoring the state of Elvis Server

With the installation process completed, check that Elvis Server is running correctly by using the options on the Server Status page.

Cluster health is indicated as follows:

  • Green: The cluster is running without any problems.
  • Yellow: The cluster can be used but it is not in a redundant state.
  • Red: The cluster is not functional.

The Server status page

7. Setting up the Elvis 5 environment

Now that Elvis 5 Server is installed it can be further set up for full use. This includes the following:

8. Testing Elvis Server

Verify that Elvis Server is working properly by using the Desktop client or the Pro Client. Perform tasks such as uploading some files, searching for them, downloading or sharing them, or any other tasks that are part of your daily workflow.

Document history

  • 19 April 2017: Updated section 7 'Setting up the Elvis 5 environment' by adding link to Amazon CloudFront article.
  • 15 February 2017: Added a note to section 3 ‘Basic Server configuration > 2. Configuring the node settings’ about setting the elastic search.backup.loation when the sharedDataLocation is different on each node.
Was this article helpful?
0 out of 0 found this helpful / Created: / Updated:
Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.