Elasticsearch Single Node - In Windows
This section explains the installation and configuration of Elasticsearch (ES) in Windows.
Installation with zip file
Install and configure ES on HTTPS (with authentication using username and password)
Download Elasticsearch 8.6.2
Could you unzip the file in the preferred location?
Notice
You need not add configurations to the .yml file; they are added once you start the ES.
Open the command prompt as administrator and go to {directory}\elasticsearch-8.6.2\bin path.
Run ES with the elasticsearch.bat command.
When you run ES in a terminal for the first time, you get a password on the terminal as below. You must note down the password for future reference.
The following is the sample .yml file.
Cluster.name: zephyr node.name: node-1 http.port: 9200 network.host: 192.168.0.1 xpack.security.enabled: true xpack.security.enrollment.enabled: true xpack.security.http.ssl: enabled: true keystore.path: certs/http.p12 xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: certs/transport.p12 truststore.path: certs/transport.p12 http.host: 0.0.0.0 indices.query.bool.max_clause_count: 9024 action.auto_create_index: ".watches,.triggered_watches,.watcher-history-*,-zephyr*,+*"
Run https://localhost:9200 in browser with default user 'elastic'. Use the ES password that you got in the step4.
Install Zephyr by giving ES URL as https://localhost:9200
Upon successful Zephyr installation, stop the Zephyr and navigate to the {ZephyrDir}\tomcat\webapps\flex\WEB-INF\classes location.
Make changes as mentioned in the below steps, to the jdbc.properties for ES running on HTTPS.
Uncomment elastic.rest.prop.xpack.security.user and change password after colon(:) with the ES password you got after step 4. The default username is “elastic”.
transport.nodes=https://localhost:9200 rest.nodes=https://localhost:9200 elastic.rest.prop.xpack.security.user=username:password
Start the Zephyr application after making these changes.
Install and configure ES on HTTP (without authentication)
Download Elasticsearch 8.6.2
Unzip the file in the preferred location.
Open the command prompt as administrator and go to {directory}\elasticsearch-8.6.2\bin path.
Run ES with the elasticsearch.bat command.
Stop the Elasticsearch.
Change the SSL security to false in the elasticsearch.yml file in the config folder,as mentioned in the following sample.
cluster.name: zephyr node.name: node-1 http.port: 9200 network.host: 192.168.0.1 xpack.security.enabled: false xpack.security.enrollment.enabled: false xpack.security.http.ssl: enabled: false xpack.security.transport.ssl: enabled: false http.host: 0.0.0.0 indices.query.bool.max_clause_count: 9024 action.auto_create_index: ".watches,.triggered_watches,.watcher-history-*,-zephyr*,+*"
Start Elasticsearch.
Now install Zephyr with ES URL http://localhost:9200
Install ES on HTTPS (using id and secret key)
Download Elasticsearch 8.6.2
Unzip the file in the preferred location.
Notice
You need not add configurations in .yml file. The configurations get added in .yml file, once you start the ES.
Open the command prompt as administrator and go to
{directory}\elasticsearch-8.6.2\bin path.
Run ES with the
elasticsearch.bat command.
5. When you run ES in a terminal for the first time, you get a password on the terminal as below. You must note down the password for future reference.
The following is the sample .yml file.
cluster.name: zephyr node.name: node-1 http.port: 9200 network.host: 192.168.0.1 xpack.security.enabled: true xpack.security.enrollment.enabled: true xpack.security.http.ssl: enabled: true keystore.path: certs/http.p12 xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: certs/transport.p12 truststore.path: certs/transport.p12 http.host: 0.0.0.0 indices.query.bool.max_clause_count: 9024 action.auto_create_index: ".watches,.triggered_watches,.watcher-history-*,-zephyr*,+*"
Execute the below given cURL to generate an API key:
curl --location --request POST 'https://localhost:9200/_security/api_key' \ --header 'Authorization: Basic ZWxhc3RpYzpwYXNzd29yZA==' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "my-api-key", "role_descriptors": { "role-zephyr": { "cluster": [ "all" ], "index": [ { "names": [ "zephyr-*" ], "privileges": [ "all" ] } ] } } }'
Refer to the generated API key response:
{ "id": "i_n-KIgBbJC5TV1xKsjr", "name": "my-api-key", "api_key": "oSkuars1Rh-m4diuKe18hw", "encoded": "aV9uLUtJZ0JiSkM1VFYxeEtzanI6b1NrdWFyczFSaC1tNGRpdUtlMThodw==" }
The <apiKey> would be base64 encoding of id:api_key i.e. base64 encoding of
o3PG-n0Bf9efLymhVjzN:eR9bKD5OTeywOxovC7It2Q
. You can use online utility (Base64 Encode and Decode - Online ) for base64 encoding.Install the Zephyr application.
Upon successful Zephyr installation, stop the Zephyr and navigate to the {ZephyrDir}\tomcat\webapps\flex\WEB-INF\classes location.
Make changes as mentioned in the below steps, to the
jdbc.properties for ES running on HTTPS.
Add following properties in jdbc.properties file:
elastic.rest.prop.api.key.id=<id> elastic.rest.prop.api.key.secret=<api_key>
Start the Zephyr service.
Install ES as a service in Windows
Enable TLS 1.2 and 1.3 versions for Elasticsearch
You need to add the following two lines in the elasticsearch.yml file:
xpack.security.http.ssl: supported_protocols: TLSv1.3, TLSv1.2 xpack.security.transport.ssl: supported_protocols: TLSv1.3, TLSv1.2
The following is the sample .yml file:
cluster.name: zephyr node.name: node-1 http.port: 9200 network.host: 192.168.0.1 xpack.security.enabled: true xpack.security.enrollment.enabled: true xpack.security.http.ssl: enabled: true keystore.path: certs/http.p12 supported_protocols: TLSv1.3, TLSv1.2 xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: certs/transport.p12 truststore.path: certs/transport.p12 supported_protocols: TLSv1.3, TLSv1.2 http.host: 0.0.0.0 indices.query.bool.max_clause_count: 9024 action.auto_create_index: ".watches,.triggered_watches,.watcher-history-*,-zephyr*,+*"
Connect Zephyr to ES
ES must be running before you install Zephyr Enterprise. You connect Zephyr to ES during the product installation. To do this, specify either the IP address of your ES server or its host name, depending on the settings you have specified in the elasticsearch.yml
file.
Single-node installation
Specify
http://192.168.0.1:9200
, orhttp://localhost:9200
when prompted to configure Elasticsearch.The Zephyr setup screen will appear and display information on configuring Elasticsearch. Enter the hostname or IP address and port used by Elasticsearch—for example, localhost:9200.