Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds windows installation documentation #1825

Merged
merged 11 commits into from
Nov 15, 2022
52 changes: 52 additions & 0 deletions _dashboards/install/windows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
layout: default
title: Windows
parent: Install OpenSearch Dashboards
nav_order: 37
---

# Run OpenSearch Dashboards on Windows

Perform the following steps to install OpenSearch Dashboards on Windows.

Make sure you have a zip utility installed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You make this a prerequisite for OpenSearch installation. What do you think of changing this to a note instead of tip?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ZIP"?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Normally, zip is not capitalized.

{: .note }

1. Download the [`opensearch-dashboards-{{site.opensearch_version}}-windows-x64.zip`](https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/{{site.opensearch_version}}/opensearch-dashboards-{{site.opensearch_version}}-windows-x64.zip){:target='\_blank'} archive.

1. To extract the archive contents, right-click to select **Extract All**.

**Note**: Some versions of the Windows operating system limit the file path length. If you encounter a path-length-related error when unzipping the archive, perform the following steps to enable long path support:

1. Open Powershell by entering `powershell` in the search box next to **Start** on the taskbar.
1. Run the following command in Powershell:
```bat
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled -Type DWORD -Value 1 -Force
```
1. Restart your computer.

1. Run OpenSearch Dashboards.

There are two ways of running OpenSearch Dashboards:

1. Run the batch script using the Windows UI:
Copy link
Collaborator

@vagimeli vagimeli Nov 11, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is Windows UI a proper name? Should UI be defined on first mention?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Windows Desktop Environment?
Not really sure how to call it as well, windows does categorize them as desktop vs server.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll spell out user interface


1. Navigate to the top directory of your OpenSearch Dashboards installation and open the `opensearch-dashboards-{{site.opensearch_version}}` folder.
1. If desired, modify `opensearch_dashboards.yml` located in the `config` folder, to change the default OpenSearch Dashboards settings.
1. Open the `bin` folder and run the batch script by double-clicking the `opensearch-dashboards.bat` file. This opens a command prompt with an OpenSearch Dashboards instance running.

1. Run the batch script from Command Prompt or Powershell:

1. Open Command Prompt by entering `cmd`, or Powershell by entering `powershell`, in the search box next to **Start** on the taskbar.
1. Change to the top directory of your OpenSearch Dashboards installation.
```bat
cd \path\to\opensearch-dashboards-{{site.opensearch_version}}
```
1. If desired, modify `config\opensearch_dashboards.yml`.
1. Run the batch script to start OpenSearch Dashboards.
```bat
.\bin\opensearch-dashboards.bat
```

To stop OpenSearch Dashboards, press `Ctrl+C` in Command Prompt or Powershell, or simply close the Command Prompt or Powershell window.
{: .tip}
2 changes: 1 addition & 1 deletion _opensearch/install/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ nav_order: 2

# Operating system compatibility

We recommend installing OpenSearch on Red Hat Enterprise Linux (RHEL) or Debian-based Linux distributions that use [systemd](https://en.wikipedia.org/wiki/Systemd), such as CentOS, Amazon Linux 2, and Ubuntu Long-Term Support (LTS). OpenSearch should work on most Linux distributions, but we only test a handful. We recommend RHEL 7 or 8, CentOS 7 or 8, Amazon Linux 2, Ubuntu 16.04, 18.04, or 20.04 for any version of OpenSearch.
We recommend installing OpenSearch on Red Hat Enterprise Linux (RHEL) or Debian-based Linux distributions that use [systemd](https://en.wikipedia.org/wiki/Systemd), such as CentOS, Amazon Linux 2, or Ubuntu Long-Term Support (LTS). OpenSearch should work on most Linux distributions, but we only test a handful. We recommend RHEL 7 or 8, CentOS 7 or 8, Amazon Linux 2, or Ubuntu 16.04, 18.04, or 20.04 for any version of OpenSearch. OpenSearch also supports Windows Server 2019.

Avoid using a network file system for node storage in a production workflow. Using a network file system for node storage can cause performance issues in your cluster due to factors such as network conditions (like latency or limited throughput) or read/write speeds. You should use solid-state drives (SSDs) installed on the host for node storage where possible.
{: .note}
Expand Down
249 changes: 249 additions & 0 deletions _opensearch/install/windows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
---
layout: default
title: Windows
parent: Install OpenSearch
nav_order: 65
---

# Install OpenSearch on Windows

The following sections describe installing OpenSearch on Windows from a zip archive.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ZIP"?


Generally speaking, the installation of OpenSearch from a zip archive can be broken down into a few steps:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ZIP"?


1. **Download and unpack OpenSearch.**
1. **(Optional) Test OpenSearch.**
- Confirm that OpenSearch is able to run before you apply any custom configuration.
- This can be done without any security (no password, no certificates) or with a demo security configuration that can be applied by a packaged script.
1. **Configure OpenSearch for your environment.**
- Apply basic settings to OpenSearch and start using it in your environment.

The Windows OpenSearch archive is a self-contained directory with everything needed to run OpenSearch, including an integrated Java Development Kit (JDK). If you have your own Java installation and set the environment variable `JAVA_HOME`, OpenSearch will use that installation if the `OPENSEARCH_JAVA_HOME` environment variable is not set. To learn how to set the `OPENSEARCH_JAVA_HOME` environment variable, see [Step 3: Set up OpenSearch in your environment](#step-3-set-up-opensearch-in-your-environment).

## Prerequisites

Make sure you have a zip utility installed.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ZIP"?


## Step 1: Download and unpack OpenSearch

Perform the following steps to install OpenSearch on Windows.

1. Download the [`opensearch-{{site.opensearch_version}}-windows-x64.zip`](https://artifacts.opensearch.org/releases/bundle/opensearch/{{site.opensearch_version}}/opensearch-{{site.opensearch_version}}-windows-x64.zip){:target='\_blank'} archive.
1. To extract the archive contents, right-click to select **Extract All**.

## Step 2: (Optional) Test OpenSearch

Before proceeding with any configuration, you should test your installation of OpenSearch. Otherwise, it can be difficult to determine whether future problems are due to installation issues or custom settings you applied after installation. There are two quick methods for testing OpenSearch at this stage:

1. **(Security enabled)** Apply a generic configuration using the batch script included in the Windows archive.
1. **(Security disabled)** Manually disable the security plugin and test the instance before applying your own custom security settings.

The batch script will apply a generic configuration to your instance of OpenSearch. This configuration defines some environment variables and also applies self-signed TLS certificates. Alternatively, you can choose to configure these yourself.
natebower marked this conversation as resolved.
Show resolved Hide resolved

If you only want to verify that the service is properly configured and you intend to configure security settings yourself, then you may want to disable the security plugin and launch the service without encryption or authentication.

An OpenSearch node in its default configuration (with demo certificates and users with default passwords) is not suitable for a production environment. If you plan to use the node in a production environment, you should, at a minimum, replace the demo TLS certificates with your own TLS certificates and [update the list of internal users and passwords]({{site.url}}{{site.baseurl}}/security-plugin/configuration/yaml). See [Security configuration]({{site.url}}{{site.baseurl}}/security-plugin/configuration/index/) for additional guidance to ensure that your nodes are configured according to your security requirements.
{: .warning}

### Option 1: Test your OpenSearch settings with security enabled

1. Run the demo batch script.

There are two ways of running the batch script:

1. Run the batch script using the Windows UI:

1. Navigate to the top directory of your OpenSearch installation and open the `opensearch-{{site.opensearch_version}}` folder.
1. Run the batch script by double-clicking the `opensearch-windows-install.bat` file. This opens a command prompt with an OpenSearch instance running.

1. Run the batch script from Command prompt or Powershell:

1. Open Command Prompt by entering `cmd`, or Powershell by entering `powershell`, in the search box next to **Start** on the taskbar.
1. Change to the top directory of your OpenSearch installation.
```bat
cd \path\to\opensearch-{{site.opensearch_version}}
```
1. Run the batch script.
```bat
.\opensearch-windows-install.bat
```

1. Open a new command prompt and send requests to the server to verify that OpenSearch is running. Note the use of the `--insecure` flag, which is required because the TLS certificates are self-signed.
- Send a request to port 9200:
```bat
curl.exe -X GET https://localhost:9200 -u 'admin:admin' --insecure
```
You should get a response that looks like this:
```bat
{
"name" : "hostname-here",
"cluster_name" : "opensearch",
"cluster_uuid" : "7Nqtr0LrQTOveFcBb7Kufw",
"version" : {
"distribution" : "opensearch",
"number" : "2.4.0",
"build_type" : "zip",
"build_hash" : "77ef9e304dd6ee95a600720a387a9735bbcf7bc9",
"build_date" : "2022-11-05T05:50:15.404072800Z",
"build_snapshot" : false,
"lucene_version" : "9.4.1",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}
```
- Query the plugins endpoint:
```bat
curl.exe -X GET https://localhost:9200/_cat/plugins?v -u 'admin:admin' --insecure
```

The response should look like this:
```bat
hostname opensearch-alerting 2.4.0.0
hostname opensearch-anomaly-detection 2.4.0.0
hostname opensearch-asynchronous-search 2.4.0.0
hostname opensearch-cross-cluster-replication 2.4.0.0
hostname opensearch-geospatial 2.4.0.0
hostname opensearch-index-management 2.4.0.0
hostname opensearch-job-scheduler 2.4.0.0
hostname opensearch-knn 2.4.0.0
hostname opensearch-ml 2.4.0.0
hostname opensearch-neural-search 2.4.0.0
hostname opensearch-notifications 2.4.0.0
hostname opensearch-notifications-core 2.4.0.0
hostname opensearch-observability 2.4.0.0
hostname opensearch-reports-scheduler 2.4.0.0
hostname opensearch-security 2.4.0.0
hostname opensearch-security-analytics 2.4.0.0
hostname opensearch-sql 2.4.0.0
```

### Option 2: Test your OpenSearch settings with security disabled

1. Open the `opensearch-{{site.opensearch_version}}\config` folder.
1. Open the `opensearch.yml` file with a text editor.
1. Add the following line to disable the security plugin:
```yaml
plugins.security.disabled: true
```
1. Save the change and close the file.
1. Navigate to the top directory of your OpenSearch installation and open the `opensearch-{{site.opensearch_version}}` folder.
1. Run the default by double-clicking the `opensearch-windows-install.bat` file. This opens a command prompt with an OpenSearch instance running.
1. Open a new command prompt and send requests to the server to verify that OpenSearch is running. Because the security plugin has been disabled, you will be sending commands using `HTTP` rather than `HTTPS`.
- Send a request to port 9200:
```bat
curl.exe -X GET http://localhost:9200
```
You should get a response that looks like this:
```bat
{
"name" : "hostname-here",
"cluster_name" : "opensearch",
"cluster_uuid" : "7Nqtr0LrQTOveFcBb7Kufw",
"version" : {
"distribution" : "opensearch",
"number" : "2.4.0",
"build_type" : "zip",
"build_hash" : "77ef9e304dd6ee95a600720a387a9735bbcf7bc9",
"build_date" : "2022-11-05T05:50:15.404072800Z",
"build_snapshot" : false,
"lucene_version" : "9.4.1",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}
```
- Query the plugins endpoint:
```bat
curl.exe -X GET http://localhost:9200/_cat/plugins?v
```

The response should look like this:
```bat
hostname opensearch-alerting 2.4.0.0
hostname opensearch-anomaly-detection 2.4.0.0
hostname opensearch-asynchronous-search 2.4.0.0
hostname opensearch-cross-cluster-replication 2.4.0.0
hostname opensearch-geospatial 2.4.0.0
hostname opensearch-index-management 2.4.0.0
hostname opensearch-job-scheduler 2.4.0.0
hostname opensearch-knn 2.4.0.0
hostname opensearch-ml 2.4.0.0
hostname opensearch-neural-search 2.4.0.0
hostname opensearch-notifications 2.4.0.0
hostname opensearch-notifications-core 2.4.0.0
hostname opensearch-observability 2.4.0.0
hostname opensearch-reports-scheduler 2.4.0.0
hostname opensearch-security 2.4.0.0
hostname opensearch-security-analytics 2.4.0.0
hostname opensearch-sql 2.4.0.0
```

To stop OpenSearch, press `Ctrl+C` in Command Prompt or Powershell, or simply close the Command Prompt or Powershell window.
{: .tip}

## Step 3: Set up OpenSearch in your environment

Users who do not have prior experience with OpenSearch may want a list of recommended settings in order to get started with the service. By default, OpenSearch is not bound to a network interface and cannot be reached by external hosts. Additionally, security settings are either undefined (greenfield install) or populated by default usernames and passwords if you ran the security demo script by invoking <span style="white-space: nowrap">`opensearch-windows-install.bat`.</span> The following recommendations will enable a user to bind OpenSearch to a network interface.

The following recommended settings will allow you to:

- Bind OpenSearch to an IP or network interface on the host.
- Set initial and maximum JVM heap sizes.
- Define an environment variable that points to the bundled JDK.

If you ran the security demo script, then you will need to manually reconfigure settings that were modified. Refer to [Security configuration]({{site.url}}{{site.baseurl}}/opensearch/configuration/) for guidance before proceeding.
{:.note}

Before modifying any configuration files, it's always a good idea to save a backup copy before making changes. The backup file can be used to revert any issues caused by a bad configuration.
{:.tip}

1. Open the `opensearch-{{site.opensearch_version}}\config` folder.
1. Open the `opensearch.yml` file with a text editor.
1. Add the following lines:
```bash
# Bind OpenSearch to the correct network interface. Use 0.0.0.0
# to include all available interfaces or specify an IP address
# assigned to a specific interface.
network.host: 0.0.0.0

# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node

# If you previously disabled the security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false
```
1. Save your changes and close the file.
1. Specify initial and maximum JVM heap sizes.
1. Open the `opensearch-{{site.opensearch_version}}\config` folder.
1. Open the `jvm.options` file with a text editor.
1. Modify the values for initial and maximum heap sizes. As a starting point, you should set these values to half of the available system memory. For dedicated hosts this value can be increased based on your workflow requirements.<br>
As an example, if the host machine has 8 GB of memory, then you might want to set the initial and maximum heap sizes to 4 GB:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use "maximum" here but have used "max" in all previous instances. Please make consistent.

```bash
-Xms4g
-Xmx4g
```
1. Save your changes and close the file.
1. Specify the location of the included JDK.
1. In the search box next to **Start** on the taskbar, enter `edit environment variables for your account` or `edit the system environment variables`. To edit the system environment variables, you need admin rights. User environment variables take precedence over system environment variables.
1. Select **Edit environment variables for your account** or **Edit the system environment variables**.
1. If the **System Properties** dialog opens, in the **Advanced** tab, select **Environment Variables**.
1. Under **User variables** or **System variables**, select **New**.
1. In **Variable name**, enter `OPENSEARCH_JAVA_HOME`.
1. In **Variable value**, enter `\path\to\opensearch-{{site.opensearch_version}}\jdk`.
1. Select **OK** to close all dialogs.

## Plugin compatibility

The Performance Analyzer plugin is not available on Windows. All other OpenSearch plugins, including the k-NN plugin, are available. For a complete list of plugins, see [Available plugins]({{site.url}}{{site.baseurl}}/opensearch/install/plugins/#available-plugins).

## Related links

- [OpenSearch configuration]({{site.url}}{{site.baseurl}}/opensearch/configuration/)
- [OpenSearch plugin installation]({{site.url}}{{site.baseurl}}/opensearch/install/plugins/)
- [About the security plugin]({{site.url}}{{site.baseurl}}/security-plugin/index/)