How do I set up a 3-server SearchBlox Cluster (1 index server + 2 search servers)?

Cluster set up can be done directly from the SearchBlox Admin dashboard.

To create a 3-server SearchBlox Cluster (1 indexing server and 2 search servers):

  1. Install SearchBlox on three different physical or virtual servers and apply license keys.
  2. Confirm that the three servers can see each other on the network, i.e., one should be able to ping the other servers using their IP.
  3. Delete all existing collections in all three servers before configuring the cluster setup.

License key is required

Cluster set up requires server license keys to be applied on all servers.

Traffic must be allowed on ports 9200 and 9300 between these 3 servers, and disallow external access due to security. Open port 8080 to access the SearchBlox search service.

Traffic should be open between servers within the cluster

All traffic needs to be open between the cluster servers without any firewall restrictions.

  1. Go to Menu -> Admin -> Cluster for each server in the cluster as shown below:
  1. Make the same changes in all the SearchBlox servers within the Cluster:

Select Multi-Node

  1. Add the IP addresses for servers that have to join the cluster, including the current server.

Indexing Server:
Enter the IP address of the server, which is to be the Indexing server.

Search Server:
Enter the IP addresses of the servers, which are to be the Search servers.

Cluster name: (Optional)
If required, you can change the cluster name. However, please note that you need to give the same cluster name for all the servers within the same cluster.

  1. Stop SearchBlox Servers
  2. Delete the node folder in ./elasticsearch/data path
  3. Restart SearchBlox Servers in the cluster, the order of starting could be index server first followed by the search server.
  4. Please set the replicas via Elasticsearch API as below on all three servers in the cluster:
Text
curl -k -u admin:admin -XPUT -H 'Content-Type: application/json' 'https://<IP>:9200/_settings' -d '
{
    "index" :
     {
      "number_of_replicas" : 3
     }
}'

This can also be done using curl command or using Postman API or Kibana.

  1. Please create a collection possibly collection no 1 in indexing server
  2. After you create collection no 1 you can check the replicas set using the curl command below
    curl -k -u admin:admin -XGET 'https://:9200/idx001/_settings/index.number_of_replicas'
    verify the replication field in the output.

you can also check the below URL from the browser directly
https://:9200/idx001/_settings/index.number_of_replicas
Note: idx001 denotes collection number.

  1. Run the following command on all servers to check the cluster status:
    curl -XGET 'https://:9200/_cluster/health?pretty=true'

The same can be accessed via the link
https://:9200/_cluster/health?pretty=true

  1. The cluster health status has to be green or yellow
  2. The number_of_nodes has to be 3 for a three server cluster setup. If the number_of_nodes is 3 and the cluster health is green or yellow then the setup has been successful.
  3. Create more collections on the indexing server, same collections will automatically get created in search servers. Kick off the crawling on the indexing server, and see if the search results show up on the search servers for the same collection.

When to restart

Please restart all the servers after adding the cluster nodes and/or changing the cluster name.

Port 9200 and 9300 should be accessible across all the three servers. Please check if https://:9200 works for all three IP (Index and search servers) in all three servers.



To learn more about SearchBlox please visit our developer document site https://developer.searchblox.com/docs

Have more questions? Submit a request

Comments