Install and Configure Elasticsearch
- Download and run java x64 JVM version 8 or later.
- Set the JAVA_HOME system environment variable:
- Enter the Variable name JAVA_HOME.
- Enter the Variable value. That is, the location of the Destination Folder in which you installed java x64 JVM version 8 or later. For example, C:\Program Files\Java\jre1.8.0_161
- Download the Elasticsearch Installer from https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.msi.
- Run Elasticsearch.msi.
- Click Next in the Locations tab.
- Click Next in the Services tab.
- Set the Configuration tab as follow:
- Cluster Name: Select a unique name.
ImportantUse the same name in all the ES Nodes you install.
- Node Name: Enter your computer name.
- Role: Select Master or Data as needed and deselect Ingest.
ImportantElasticsearch should include at least one Data node and one Master node.
- Memory: Select ~40% of your available RAM memory and mark Lock JVM memory to prevent the Elasticsearch memory from being swapped.
- Network host: Enter the server's Hostname or IP Address.
- Discovery: Enter the (number of master nodes) / 2 + 1.
For example, set 2 if there are 3 master nodes in your cluster. - Unicast Hosts: Add all the master nodes host:port to your cluster.
ImportantIf you choose to first create Data node, you can configure Unicast Hosts later in C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml
- Cluster Name: Select a unique name.
- Click Next > Install.
- Verify that Elasticsearch is functioning successfully:
- Open your Browser and in the Address field type http://<ElasticsearchMachineName>:9200/_cluster/health.
Elasticsearch is working as expected if the page opens and the Status attribute is green or yellow.
If the page does not open or the Status attribute is red, contact Genesys Customer Care for assistance.
- Open your Browser and in the Address field type http://<ElasticsearchMachineName>:9200/_cluster/health.
- Install SpeechMiner. For details refer to SpeechMiner installation.
- Configure SpeechMiner. For details refer to SpeechMiner configuration.
- Verify that the Indexer is running and is able to connect to Elasticsearch:
- Enter http://<IndexerHostName>/indexer/api/v1/status. The Indexer is running and is able to connect to Elasticsearch if you see isAvailable:true.
Configure Elasticsearch on Windows
- Edit your Elasticsearch configuration only in rare cases. For example, when adding an additional Master node to the system.
- You can change the Data nodes indexer after the Indexer installation is complete. To do this, change the esNodes Environment value in the Indexer machine. You must use the following format: http://ES1:9200;http://ES2:9200;http://smithES2:9200
- The number of shards and replicas are configured in the SpeechMiner database in the indexParamsTbl table in the numberOfShards and numberOfReplicas columns. You must configure the number of shards and replicas before you run UPlatform for the first time.
- If the customer runs a Migration process, the number of shards and replicas should also be configured in the LuceneToESMigration tool configuration file.
- Open C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml.
- Change the following settings:
- cluster.name
- node.name
- Set bootstrap.memory_lock to true.
- Set network.host as the hostname or the server IP address.
- Set discovery.zen.minimum_master_nodes to (number of master-eligible nodes / 2 + 1). For example, if there are three Master-Eligible nodes, then discovery.zen.minimum_master_nodes should be set to 2.
- Set discovery.zen.ping.unicast.hosts to a list of Master-Eligible nodes.
- By default, a node is a Master-Eligible node, a Data node and an Ingest node.
- To create a dedicated Master-Eligible node, add the following settings to the [node] section:
node.master: true
node.data: false
node.ingest: false - To create a dedicated Data node, add the following settings to the node section:
node.master: false
node.data: true
node.ingest: false
- To create a dedicated Master-Eligible node, add the following settings to the [node] section:
- Change the following settings:
- Open C:\ProgramData\Elastic\Elasticsearch\config\jvm.options.
- Change the JVM heap' size to ~40% of your RAM memory. For example, if you have 32 GB RAM, ensure that both -Xmx and -Xms values are set to 12g. For example, -Xms12g and -Xmx12g.
- Restart the Elasticsearch service from the Services window to update the settings.
Install Elasticsearch 7.17.6
To download Elasticsearch,
- Download elasticsearch-7.17.6-windows-x86_64.zip from Elasticsearch 7.17.6. Note: Select the Windows option to download a zip package.
- Unzip it with your unzip tool. This creates a folder called elasticsearch-7.17.6.
To install Elasticsearch as a Windows service, do the following steps:
- Open Command Prompt and navigate to the elasticsearch-7.17.6 > bin folder.
- Run the command, elasticsearch-service.bat install. This command installs Elasticsearch as a Windows service.
- Press Windows+R and type services.msc, and press Enter. This opens the Services window that lists all Windows services.
- Verify that Elasticsearch 7.17.6 service is available and then start the service.
After the installation is completed, proceed to the Configure Elasticsearch on Windows section below for instructions on configuring Elasticsearch.
Install Elasticsearch 7.16.3
- Download the Elasticsearch Installer from https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3.msi
- Run Elasticsearch.msi.
- Click Next in the Locations tab.
- Click Next in the Services tab.
- Set the Configuration tab as follow:
- Cluster Name: Select a unique name, for example elasticsearch.
ImportantUse the same name in all the ES Nodes you install.
- Node Name: Enter your computer name.
- Role: Select Master or Data as needed and deselect Ingest.
ImportantElasticsearch should include at least one Data node and one Master node.
- Memory: Select ~40% of your available RAM memory and mark Lock JVM memory to prevent the Elasticsearch memory from being swapped.
- Network host: Enter the server's Hostname or IP Address.
- HTTP port: Set as 9200.
- Transport port: Set as 9300.
- (Optional) This is the first master in a new cluster: Leave it empty.
- Seed Hosts: Add all the master nodes host:port to your cluster.
ImportantIf you choose to first create Data node, you can configure Seed Hosts later in C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml
- Cluster Name: Select a unique name, for example elasticsearch.
- Click Next > Install.
- Verify that Elasticsearch is functioning successfully:
- Open your Browser and in the Address field type http://<ElasticsearchMachineName>:9200/_cluster/health.
Elasticsearch is working as expected if the page opens and the Status attribute is green or yellow.
If the page does not open or the Status attribute is red, contact Genesys Customer Care for assistance.
- Open your Browser and in the Address field type http://<ElasticsearchMachineName>:9200/_cluster/health.
- Install SpeechMiner. For details refer to SpeechMiner installation.
- Configure SpeechMiner. For details refer to SpeechMiner configuration.
- Verify that the Indexer is running and is able to connect to Elasticsearch:
- Enter http://<IndexerHostName>/indexer/api/v1/status. The Indexer is running and is able to connect to Elasticsearch if you see isAvailable:true.
Configure Elasticsearch on Windows
- Edit your Elasticsearch configuration only in rare cases. For example, when adding an additional Master node to the system.
- You can change the Data nodes indexer after the Indexer installation is complete. To do this, change the esNodes Environment value in the Indexer machine. You must use the following format: ;http://ES1:9200/
- The number of shards and replicas are configured in the SpeechMiner database in the indexParamsTbl table in the numberOfShards and numberOfReplicas columns. You must configure the number of shards and replicas before you run UPlatform for the first time.
- If the customer runs a Migration process, the number of shards and replicas should also be configured in the LuceneToESMigration tool configuration file.
- Open C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml.
- Change the following settings:
- cluster.name
- node.name
- Set bootstrap.memory_lock to true.
- Set network.host as the hostname or the server IP address.
- Set cluster.initial_master_nodes as the name of the master nodes. This name is the host name that you provided during the installation of Elasticsearch.
- Set discovery.seed_hosts to a list of Master-Eligible nodes.
- By default, a node is a Master-Eligible node, a Data node and an Ingest node.
- To create a dedicated Master-Eligible node, add the following settings to the [node] section:
node.master: true
node.data: false
node.ingest: false - To create a dedicated Data node, add the following settings to the node section:
node.master: false
node.data: true
node.ingest: false
- To create a dedicated Master-Eligible node, add the following settings to the [node] section:
- Change the following settings:
- Open C:\ProgramData\Elastic\Elasticsearch\config\jvm.options.
- Change the JVM heap' size to ~40% of your RAM memory. For example, if you have 32 GB RAM, ensure that both -Xmx and -Xms values are set to 12g. For example, -Xms12g and -Xmx12g.
- Restart the Elasticsearch service from the Services window to update the settings.
SpeechMiner Compatibility: This version of SpeechMiner supports both Elasticsearch 7.x and Elasticsearch 8.x.
Java Requirement: Elasticsearch 8.x includes a bundled version of OpenJDK. To use your own version of Java, set the ES_JAVA_HOME environment variable. If you use a different JVM, Only supported Java versions (11 and 17) are allowed. Elasticsearch will not run if an unsupported version of Java is used. You may remove the bundled JVM directory when using your own JVM.Install Elasticsearch 8.x
To download Elasticsearch,
- Download elasticsearch-8.18.0-windows-x86_64.zip from Elasticsearch 8.18.0. Note: Select the Windows option to download a zip package.
- Unzip it with your unzip tool. This creates a folder called elasticsearch-8.18.0.
To install Elasticsearch as a Windows service, do the following steps:
- Open Command Prompt and navigate to the elasticsearch-8.x.x > bin folder.
- Run the command, elasticsearch-service.bat install. This command installs Elasticsearch as a Windows service. Note: During this initial run, the console will display an enrollment token and a password for the elastic superuser. Copy and save these securely. You will need them for configuration and client connections.
- Press Windows+R and type services.msc, and press Enter. This opens the Services window that lists all Windows services.
- Verify that Elasticsearch 8.x.x service is available and then start the service.
ImportantYou can also refer to the official Elasticsearch documentation on how to install it on Windows.
- Verify that Elasticsearch is functioning successfully:
- Open your Browser and in the Address field type https://<ElasticsearchMachineName>:9200/_cluster/health.
- Note: You will need to accept any certificate warnings and provide the elastic username and its generated password when prompted.
- Elasticsearch is working as expected if the page opens and the Status attribute is green or yellow.
- If the page does not open or the Status attribute is red, contact Genesys Customer Care for assistance.
- Open your Browser and in the Address field type https://<ElasticsearchMachineName>:9200/_cluster/health.
- Install SpeechMiner. For details refer to SpeechMiner installation.
- Configure SpeechMiner. For details refer to SpeechMiner configuration.
- Indexer appsettings.json configuration parameters should be configured according to the below table:
Parameter Name Default value Description Valid values IsSSLEnabled true Should be set to true, if ES8 xpack.security.http.ssl.enabled parameter is set to true true,false IsSecurityEnabled true Should be set to true, if ES8 xpack.security.enabled parameter is set to true true,false - Verify that the Indexer is running and is able to connect to Elasticsearch:
- Enter http://<IndexerHostName>/indexer/api/v1/status. The Indexer is running and is able to connect to Elasticsearch if you see isAvailable:true.
After the installation is completed, proceed to the Configure Elasticsearch on Windows section below for instructions on configuring Elasticsearch.
Configure Elasticsearch on Windows
- Open C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml.
- Change the following settings:
- cluster.name
- node.name
- Set bootstrap.memory_lock to true.
- Set network.host as the hostname or the server IP address.
- Set cluster.initial_master_nodes as the name of the master nodes. This name is the host name that you provided during the installation of Elasticsearch.
- Set discovery.seed_hosts to a list of Master-Eligible nodes.
- HTTP port: Set as 9200.
- Transport port: Set as 9300.
- By default, a node is a Master-Eligible node, a Data node and an Ingest node.
- To create a dedicated Master-Eligible node, add the following settings to the [node] section:
node.master: true
node.data: false
node.ingest: false - To create a dedicated Data node, add the following settings to the node section:
node.master: false
node.data: true
node.ingest: false
- To create a dedicated Master-Eligible node, add the following settings to the [node] section:
- Change the following settings:
- Open C:\ProgramData\Elastic\Elasticsearch\config\jvm.options.
- Change the JVM heap' size to ~40% of your RAM memory. For example, if you have 32 GB RAM, ensure that both -Xmx and -Xms values are set to 12g. For example, -Xms12g and -Xmx12g.
- Restart the Elasticsearch service from the Services window to update the settings.
Configure Users and Certificates for Elasticsearch 8.x
When securing your Elasticsearch 8.x cluster, you need to set up both:
- users & passwords for authentication
- SSL/TLS certificates for HTTPS and inter-node security
Below are the steps for both manual and automatic approaches.
Default Certificates (Windows):
During the first startup, Elasticsearch automatically generates self-signed certificates for HTTP and Transport Layer Security (TLS). These certificates are typically stored in the <ES_HOME>\config\certs\ directory. The http_ca.crt file is the CA certificate used to sign the HTTP layer certificates. You may need to import this into your client applications' trust stores for https connections if they don't trust self-signed certificates by default. To download SSL Certificate
- Open Elasticsearch URL in browser: https://<ElasticsearchMachineName>:9200
- A certificate warning will appear. Click on "Not Secure" > Certificate (Invalid) > View Certificate.
- Click Details > Copy to File.
- Follow the wizard to export as Base-64 encoded X.509 (.CER) format.
SSL/TLS Certificate Generation:
If you need to generate new self-signed certificates for HTTP communication (e.g., with custom hostnames or to replace the defaults):
- Run the certutil helper:
- Navigate to <ES_HOME>\bin in Command Prompt (as Administrator).
- Run:
elasticsearch-certutil http
- You will be prompted to:
- Generate new CA or use existing.
- Enter node hostnames/IPs that Elasticsearch will use.
- Choose an output filename (e.g., http-certs.zip by default).
- This command generates a ZIP file containing the CA certificate and the node certificates.
- Extract the certificates:
- Navigate to the directory where http-certs.zip was generated.
- Run:
powershell Expand-Archive -Path http-certs.zip -DestinationPath certs
- This will create a certs folder (or overwrite an existing one) containing the extracted certificates (e.g., ca.crt, node-1.p12). Copy this certs folder to <ES_HOME>\config\.
- Configure HTTPS in elasticsearch.yml:
- Open C:\elasticsearch-8.x.x\config\elasticsearch.yml.
- Add/Modify the following settings to point to your newly generated certificates:
xpack.security.enabled: true xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: certs/node-1.p12 xpack.security.http.ssl.truststore.path: certs/node-1.p12 # If your .p12 requires a password, add it securely to the keystore: # cd <ES_HOME>\bin # elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
- Note: node-1.p12 is a common default filename; use the actual name if different.
How to add the Certificate to the Trust Store:
- Open Run (Win + R) and type mmc.
- Go to File > Add/Remove Snap-in > Certificates > Add > Computer Account.
- Expand Trusted Root Certification Authorities > Certificates.
- Right-click Certificates > All Tasks > Import.
- Select your saved .cert file and complete the import wizard.
- Restart browser and verify the certificate is now trusted.
Create a New user:
- Open Command Prompt as Administrator and navigate to the elasticsearch-8.x.x > bin folder.
- Run the command:
elasticsearch-users useradd smuser123 -p smuser123 -r superuser
Important: Replace smuser123 with a strong, unique password.
Note: Please ensure user passwords do not contain the "@" symbol.
Below are some useful references from the official Elastic documentation and community resources:
- How to enable security, passwords, HTTPS, etc. → Set up minimal security for Elasticsearch
- Details about the elasticsearch-certutil helper script. → Elasticsearch certutil documentation
- Which users and roles are already available. → Built-in users and roles