2016-04-03 10:09:24 -04:00
[[windows]]
2017-06-27 19:04:23 -04:00
=== Install Elasticsearch with Windows MSI Installer
2016-04-03 10:09:24 -04:00
2017-09-12 23:23:12 -04:00
beta[]
2017-06-19 00:52:47 -04:00
Elasticsearch can be installed on Windows using the `.msi` package. This can
install Elasticsearch as a Windows service or allow it to be run manually using
the included `elasticsearch.exe` executable.
TIP: Elasticsearch has historically been installed on Windows using the <<zip-windows, .zip>> archive.
You can continue using the `.zip` approach if you prefer.
2016-04-03 10:09:24 -04:00
The latest stable version of Elasticsearch can be found on the
link:/downloads/elasticsearch[Download Elasticsearch] page.
Other versions can be found on the
link:/downloads/past-releases[Past Releases page].
2016-11-01 17:52:09 -04:00
NOTE: Elasticsearch requires Java 8 or later. Use the
http://www.oracle.com/technetwork/java/javase/downloads/index.html[official Oracle distribution]
or an open-source distribution such as http://openjdk.java.net[OpenJDK].
2017-06-19 00:52:47 -04:00
[[download-msi]]
==== Download the `.msi` package
2016-04-03 10:09:24 -04:00
2016-10-06 11:56:55 -04:00
ifeval::["{release-state}"=="unreleased"]
Version {version} of Elasticsearch has not yet been released.
endif::[]
ifeval::["{release-state}"!="unreleased"]
2017-06-19 00:52:47 -04:00
Download the `.msi` package for Elasticsearch v{version} from https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{version}.msi
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
endif::[]
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[[install-msi-gui]]
==== Install using the graphical user interface (GUI)
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
Double-click the downloaded `.msi` package to launch a GUI wizard that will guide you through the
installation process. You can view help on any step by clicking the `?` button, which reveals an
aside panel with additional information for each input:
2016-10-06 11:56:55 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-help]]
image::images/msi_installer/msi_installer_help.png[]
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
Within the first screen, select the directory for the installation. In addition, select directories for where
data, logs and configuration will reside or <<msi-command-line-options,roll with the default locations>>:
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-locations]]
image::images/msi_installer/msi_installer_locations.png[]
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
Then select whether to install as a service or start Elasticsearch manually as needed. When
installing as a service, you can also decide which account to run the service under as well
as whether the service should be started after installation and when Windows is started or
restarted:
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-service]]
image::images/msi_installer/msi_installer_service.png[]
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
IMPORTANT: When selecting an account to run the service with, be sure that the chosen account
has sufficient privileges to access the installation and other deployment directories chosen.
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
Common configuration settings are exposed within the Configuration section, allowing the cluster
name, node name and roles to be set, in addition to memory and network settings:
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-configuration]]
image::images/msi_installer/msi_installer_configuration.png[]
2017-11-15 05:35:54 -05:00
A list of common plugins that can be downloaded and installed as
part of the installation, with the option to configure a HTTPS proxy through which to download:
2017-06-19 00:52:47 -04:00
[[msi-installer-selected-plugins]]
image::images/msi_installer/msi_installer_selected_plugins.png[]
2017-11-15 05:35:54 -05:00
Upon choosing to install X-Pack plugin, an additional step allows a choice of the type of X-Pack
license to install, in addition to X-Pack Security configuration and built-in user configuration:
2017-06-19 00:52:47 -04:00
2017-11-15 05:35:54 -05:00
[[msi-installer-xpack]]
image::images/msi_installer/msi_installer_xpack.png[]
NOTE: X-Pack includes a choice of a Trial or Basic license for 30 days. After that, you can obtain one of the
https://www.elastic.co/subscriptions[available subscriptions] or {ref}/security-settings.html[disable Security].
The Basic license is free and includes the https://www.elastic.co/products/x-pack/monitoring[Monitoring] extension.
After clicking the install button, the installer will begin installation:
[[msi-installer-installing]]
image::images/msi_installer/msi_installer_installing.png[]
and will indicate when it has been successfully installed:
2017-06-19 00:52:47 -04:00
[[msi-installer-success]]
image::images/msi_installer/msi_installer_success.png[]
[[install-msi-command-line]]
==== Install using the command line
The `.msi` can also install Elasticsearch using the command line. The simplest installation
using the same defaults as the GUI is achieved by first navigating to the download directory,
then running:
["source","sh",subs="attributes,callouts"]
2016-04-06 17:06:42 -04:00
--------------------------------------------
2017-06-19 00:52:47 -04:00
msiexec.exe /i elasticsearch-{version}.msi /qn
2016-04-06 17:06:42 -04:00
--------------------------------------------
2017-06-19 00:52:47 -04:00
By default, msiexec does not wait for the installation process to complete, since it runs in the
Windows subsystem. To wait on the process to finish and ensure that `%ERRORLEVEL%` is set
accordingly, it is recommended to use `start /wait` to create a process and wait for it to exit
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
["source","sh",subs="attributes,callouts"]
--------------------------------------------
start /wait msiexec.exe /i elasticsearch-{version}.msi /qn
--------------------------------------------
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
As with any MSI installation package, a log file for the installation process can be found
within the `%TEMP%` directory, with a randomly generated name adhering to the format
2017-06-30 02:24:53 -04:00
`MSI<random>.LOG`. The path to a log file can be supplied using the `/l` command line argument
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
["source","sh",subs="attributes,callouts"]
--------------------------------------------
start /wait msiexec.exe /i elasticsearch-{version}.msi /qn /l install.log
--------------------------------------------
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
Supported Windows Installer command line arguments can be viewed using
2016-04-03 10:09:24 -04:00
["source","sh",subs="attributes,callouts"]
2017-06-19 00:52:47 -04:00
--------------------------------------------
msiexec.exe /help
--------------------------------------------
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
or by consulting the https://msdn.microsoft.com/en-us/library/windows/desktop/aa367988(v=vs.85).aspx[Windows Installer SDK Command-Line Options].
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[[msi-command-line-options]]
==== Command line options
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
All settings exposed within the GUI are also available as command line arguments (referred to
as _properties_ within Windows Installer documentation) that can be passed to msiexec:
2016-04-03 10:09:24 -04:00
[horizontal]
2017-06-19 00:52:47 -04:00
`INSTALLDIR`::
2016-04-03 10:09:24 -04:00
2017-11-15 05:35:54 -05:00
The installation directory. The final directory in the path **must**
be the version of Elasticsearch.
Defaults to ++%ProgramW6432%\Elastic\Elasticsearch{backslash}{version}++.
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
`DATADIRECTORY`::
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
The directory in which to store your data.
2017-11-15 05:35:54 -05:00
Defaults to `%ALLUSERSPROFILE%\Elastic\Elasticsearch\data`
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
`CONFIGDIRECTORY`::
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
The directory in which to store your configuration.
Defaults to `%ALLUSERSPROFILE%\Elastic\Elasticsearch\config`
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
`LOGSDIRECTORY`::
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
The directory in which to store your logs.
Defaults to `%ALLUSERSPROFILE%\Elastic\Elasticsearch\logs`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
`PLACEWRITABLELOCATIONSINSAMEPATH`::
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
Whether the data, configuration and logs directories
should be created under the installation directory. Defaults to `false`
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
`INSTALLASSERVICE`::
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
Whether Elasticsearch is installed and configured as a Windows Service.
Defaults to `true`
`STARTAFTERINSTALL`::
Whether the Windows Service is started after installation finishes.
Defaults to `true`
`STARTWHENWINDOWSSTARTS`::
Whether the Windows Service is started when Windows is started.
Defaults to `true`
`USELOCALSYSTEM`::
Whether the Windows service runs under the LocalSystem Account.
Defaults to `true`
`USENETWORKSERVICE`::
Whether the Windows service runs under the NetworkService Account. Defaults
to `false`
`USEEXISTINGUSER`::
Whether the Windows service runs under a specified existing account. Defaults
to `false`
`USER`::
The username for the account under which the Windows service runs. Defaults to `""`
`PASSWORD`::
The password for the account under which the Windows service runs. Defaults to `""`
`CLUSTERNAME`::
The name of the cluster. Defaults to `elasticsearch`
`NODENAME`::
The name of the node. Defaults to `%COMPUTERNAME%`
`MASTERNODE`::
Whether Elasticsearch is configured as a master node. Defaults to `true`
`DATANODE`::
Whether Elasticsearch is configured as a data node. Defaults to `true`
`INGESTNODE`::
Whether Elasticsearch is configured as an ingest node. Defaults to `true`
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
`SELECTEDMEMORY`::
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
The amount of memory to allocate to the JVM heap for Elasticsearch.
2017-11-15 05:35:54 -05:00
Defaults to `2048` unless the target machine has less than 4GB in total, in which case
it defaults to 50% of total memory.
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
`LOCKMEMORY`::
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
Whether `bootstrap.memory_lock` should be used to try to lock the process
2017-06-30 02:24:53 -04:00
address space into RAM. Defaults to `false`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
`UNICASTNODES`::
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
A comma separated list of hosts in the form `host:port` or `host` to be used for
unicast discovery. Defaults to `""`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
`MINIMUMMASTERNODES`::
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
The minimum number of master-eligible nodes that must be visible
in order to form a cluster. Defaults to `""`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
`NETWORKHOST`::
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
The hostname or IP address to bind the node to and _publish_ (advertise) this
host to other nodes in the cluster. Defaults to `""`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
`HTTPPORT`::
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
The port to use for exposing Elasticsearch APIs over HTTP. Defaults to `9200`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
`TRANSPORTPORT`::
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
The port to use for internal communication between nodes within the cluster.
Defaults to `9300`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
`PLUGINS`::
2016-04-06 17:06:42 -04:00
2017-11-15 05:35:54 -05:00
A comma separated list of the plugins to download and install as part of the installation. Defaults to `""`
`HTTPSPROXYHOST`::
The proxy host to use to download plugins over HTTPS. Defaults to `""`
`HTTPSPROXYPORT`::
The proxy port to use to download plugins over HTTPS. Defaults to `443`
`HTTPPROXYHOST`::
The proxy host to use to download plugins over HTTP. Defaults to `""`
`HTTPPROXYPORT`::
The proxy port to use to download plugins over HTTP. Defaults to `80`
`XPACKLICENSE`::
When installing X-Pack plugin, the type of license to install,
either `Basic` or `Trial`. Defaults to `Basic`
`XPACKSECURITYENABLED`::
When installing X-Pack plugin with a `Trial` license, whether X-Pack Security should be enabled.
Defaults to `true`
`BOOTSTRAPPASSWORD`::
When installing X-Pack plugin with a `Trial` license and X-Pack Security enabled, the password to
used to bootstrap the cluster and persisted as the `bootstrap.password` setting in the keystore.
Defaults to a randomized value.
`SKIPSETTINGPASSWORDS`::
When installing X-Pack plugin with a `Trial` license and X-Pack Security enabled, whether the
installation should skip setting up the built-in users `elastic`, `kibana` and `logstash_system`.
Defaults to `false`
`ELASTICUSERPASSWORD`::
When installing X-Pack plugin with a `Trial` license and X-Pack Security enabled, the password
to use for the built-in user `elastic`. Defaults to `""`
`KIBANAUSERPASSWORD`::
When installing X-Pack plugin with a `Trial` license and X-Pack Security enabled, the password
to use for the built-in user `kibana`. Defaults to `""`
`LOGSTASHSYSTEMUSERPASSWORD`::
When installing X-Pack plugin with a `Trial` license and X-Pack Security enabled, the password
to use for the built-in user `logstash_system`. Defaults to `""`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
To pass a value, simply append the property name and value using the format `<PROPERTYNAME>="<VALUE>"` to
2017-07-05 05:38:21 -04:00
the installation command. For example, to use a different installation directory to the default one and to install https://www.elastic.co/products/x-pack[X-Pack]:
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
["source","sh",subs="attributes,callouts"]
--------------------------------------------
2017-07-05 05:38:21 -04:00
start /wait msiexec.exe /i elasticsearch-{version}.msi /qn INSTALLDIR="C:\Custom Install Directory" PLUGINS="x-pack"
2017-06-19 00:52:47 -04:00
--------------------------------------------
Consult the https://msdn.microsoft.com/en-us/library/windows/desktop/aa367988(v=vs.85).aspx[Windows Installer SDK Command-Line Options]
for additional rules related to values containing quotation marks.
[[msi-installer-command-line-running]]
==== Running Elasticsearch from the command line
Once installed, Elasticsearch can be started from the command line, if not installed as a service
and configured to start when installation completes, as follows:
["source","sh",subs="attributes,callouts"]
--------------------------------------------
.\bin\elasticsearch.exe
--------------------------------------------
2017-06-27 19:04:23 -04:00
The command line terminal will display output similar to the following:
[[msi-installer-elasticsearch-exe]]
image::images/msi_installer/elasticsearch_exe.png[]
2017-06-19 00:52:47 -04:00
By default, Elasticsearch runs in the foreground, prints its logs to `STDOUT` in addition
to the `<cluster name>.log` file within `LOGSDIRECTORY`, and can be stopped by pressing `Ctrl-C`.
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-command-line-configuration]]
==== Configuring Elasticsearch on the command line
2016-04-06 17:06:42 -04:00
2017-11-15 05:35:54 -05:00
Elasticsearch loads its configuration from the `%ES_PATH_CONF%\elasticsearch.yml`
2017-06-19 00:52:47 -04:00
file by default. The format of this config file is explained in
<<settings>>.
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
Any settings that can be specified in the config file can also be specified on
the command line, using the `-E` syntax as follows:
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
["source","sh",subs="attributes,callouts"]
--------------------------------------------
.\bin\elasticsearch.exe -E cluster.name=my_cluster -E node.name=node_1
--------------------------------------------
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
NOTE: Values that contain spaces must be surrounded with quotes. For instance `-E path.logs="C:\My Logs\logs"`.
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
TIP: Typically, any cluster-wide settings (like `cluster.name`) should be
added to the `elasticsearch.yml` config file, while any node-specific settings
such as `node.name` could be specified on the command line.
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
include::check-running.asciidoc[]
2016-06-01 16:31:16 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-windows-service]]
==== Installing Elasticsearch as a Service on Windows
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
Elasticsearch can be installed as a service to run in the background or start
automatically at boot time without any user interaction. This can be achieved upon installation
using the following command line options
* `INSTALLASSERVICE=true`
* `STARTAFTERINSTALL=true`
* `STARTWHENWINDOWSSTARTS=true`
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
Once installed, Elasticsearch will appear within the Services control panel:
2016-04-06 17:06:42 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-installed-service]]
image::images/msi_installer/msi_installer_installed_service.png[]
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
and can be stopped and restarted from within the control panel, or from the command line using:
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
with Command Prompt:
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[source,sh]
--------------------------------------------
sc.exe stop Elasticsearch
sc.exe start Elasticsearch
--------------------------------------------
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
with PowerShell:
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[source,powershell]
--------------------------------------------
Get-Service Elasticsearch | Stop-Service | Start-Service
--------------------------------------------
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
Changes can be made to jvm.options and elasticsearch.yml configuration files to configure the
service after installation. Most changes (like JVM settings) will require a restart of the
2017-11-15 05:35:54 -05:00
service in order to take effect.
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[[upgrade-msi-gui]]
==== Upgrade using the graphical user interface (GUI)
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
The `.msi` package supports upgrading an installed version of Elasticsearch to a newer
2017-07-05 05:38:21 -04:00
version of Elasticsearch. The upgrade process through the GUI handles upgrading all
installed plugins as well as retaining both your data and configuration.
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
Downloading and clicking on a newer version of the `.msi` package will launch the GUI wizard.
The first step will list the read only properties from the previous installation:
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-upgrade-notice]]
image::images/msi_installer/msi_installer_upgrade_notice.png[]
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
The following configuration step allows certain configuration options to be changed:
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
[[msi-installer-upgrade-configuration]]
image::images/msi_installer/msi_installer_upgrade_configuration.png[]
Finally, the plugins step allows currently installed plugins to be upgraded or removed, and
for plugins not currently installed, to be downloaded and installed:
[[msi-installer-upgrade-plugins]]
image::images/msi_installer/msi_installer_upgrade_plugins.png[]
[[upgrade-msi-command-line]]
==== Upgrade using the command line
2017-07-05 05:38:21 -04:00
The `.msi` can also upgrade Elasticsearch using the command line.
[IMPORTANT]
===========================================
A command line upgrade requires passing the **same** command line properties as
2017-11-15 05:35:54 -05:00
used at first install time; the Windows Installer does not remember these properties.
2017-07-05 05:38:21 -04:00
For example, if you originally installed with the command line options `PLUGINS="x-pack"` and
`LOCKMEMORY="true"`, then you must pass these same values when performing an
upgrade from the command line.
2017-11-15 05:35:54 -05:00
The **exception** to this is `INSTALLDIR` (if originally specified), which must be a different directory to the
current installation.
If setting `INSTALLDIR`, the final directory in the path **must** be the version of Elasticsearch e.g.
++C:\Program Files\Elastic\Elasticsearch{backslash}{version}++
2017-07-05 05:38:21 -04:00
===========================================
The simplest upgrade, assuming Elasticsearch was installed using all defaults,
is achieved by first navigating to the download directory, then running:
2017-06-19 00:52:47 -04:00
["source","sh",subs="attributes,callouts"]
--------------------------------------------
start /wait msiexec.exe /i elasticsearch-{version}.msi /qn
--------------------------------------------
Similar to the install process, a path to a log file for the upgrade process can
be passed using the `/l` command line argument
["source","sh",subs="attributes,callouts"]
--------------------------------------------
start /wait msiexec.exe /i elasticsearch-{version}.msi /qn /l upgrade.log
--------------------------------------------
[[uninstall-msi-gui]]
==== Uninstall using Add/Remove Programs
The `.msi` package handles uninstallation of all directories and files added as part of installation.
2017-11-15 05:35:54 -05:00
WARNING: Uninstallation will remove **all** directories and their contents created as part of
installation, **including data within the data directory**. If you wish to retain your data upon
2017-06-19 00:52:47 -04:00
uninstallation, it is recommended that you make a copy of the data directory before uninstallation.
MSI installer packages do not provide a GUI for uninstallation. An installed program can be uninstalled
by pressing the Windows key and typing `add or remove programs` to open the system settings.
Once opened, find the Elasticsearch installation within the list of installed applications, click
and choose `Uninstall`:
[[msi-installer-uninstall]]
image::images/msi_installer/msi_installer_uninstall.png[]
This will launch the uninstallation process.
[[uninstall-msi-command-line]]
==== Uninstall using the command line
Uninstallation can also be performed from the command line by navigating to the directory
containing the `.msi` package and running:
["source","sh",subs="attributes,callouts"]
--------------------------------------------
start /wait msiexec.exe /x elasticsearch-{version}.msi /qn
--------------------------------------------
Similar to the install process, a path to a log file for the uninstallation process can
be passed using the `/l` command line argument
["source","sh",subs="attributes,callouts"]
--------------------------------------------
start /wait msiexec.exe /x elasticsearch-{version}.msi /qn /l uninstall.log
--------------------------------------------
2016-04-03 10:09:24 -04:00
2017-06-19 00:52:47 -04:00
include::next-steps.asciidoc[]