[[install-elasticsearch]]
== Installing Elasticsearch

[discrete]
[[hosted-elasticsearch-service]]
=== Hosted Elasticsearch Service

{ecloud} offers all of the features of {es}, {kib}, and  Elastic’s {observability}, {ents}, and {elastic-sec} solutions as a hosted service
available on AWS, GCP, and Azure.

To set up Elasticsearch in {ecloud}, sign up for a {ess-trial}[free {ecloud} trial].

[discrete]
[[elasticsearch-deployment-options]]
=== Self-managed {es} options

If you want to install and manage {es} yourself, you can:

* Run {es} using a <<elasticsearch-install-packages,Linux, MacOS, or Windows install package>>.
* Run {es} in a <<elasticsearch-docker-images,Docker container>>.
* Set up and manage {es}, {kib}, {agent}, and the rest of the Elastic Stack on Kubernetes with {eck-ref}[{eck}].

TIP: To try out Elasticsearch on your own machine, we recommend using Docker and running both Elasticsearch and Kibana. For more information, see <<run-elasticsearch-locally,Run Elasticsearch locally>>. Please note that this setup is *not suitable for production use*.

[discrete]
[[elasticsearch-install-packages]]
=== Elasticsearch install packages

Elasticsearch is provided in the following package formats:

[horizontal]
Linux and MacOS `tar.gz` archives::

The `tar.gz` archives are available for installation on any Linux distribution and MacOS.
+
<<targz>>

Windows `.zip` archive::

The `zip` archive is suitable for installation on Windows.
+
<<zip-windows>>

`deb`::

The `deb` package is suitable for Debian, Ubuntu, and other Debian-based
systems. Debian packages may be downloaded from the Elasticsearch website or
from our Debian repository.
+
<<deb>>

`rpm`::

The `rpm` package is suitable for installation on Red Hat, Centos, SLES,
OpenSuSE and other RPM-based systems. RPMs may be downloaded from the
Elasticsearch website or from our RPM repository.
+
<<rpm>>

TIP: For a step-by-step example of setting up the {stack} on your own premises, try out our tutorial: {stack-ref}/installing-stack-demo-self.html[Installing a self-managed Elastic Stack].

[discrete]
[[elasticsearch-docker-images]]
=== Elasticsearch container images

You can also run {es} inside a container image.

[horizontal]
`docker`::

Docker container images may be downloaded from the Elastic Docker Registry.
+
{ref}/docker.html[Install {es} with Docker]

[discrete]
[[jvm-version]]
=== Java (JVM) Version

{es} is built using Java, and includes a bundled version of https://openjdk.java.net[OpenJDK] within each distribution. We strongly
recommend using the bundled JVM in all installations of {es}.

The bundled JVM is treated the same as any other dependency of {es} in terms of support and maintenance. This means that Elastic takes
responsibility for keeping it up to date, and reacts to security issues and bug reports as needed to address vulnerabilities and other bugs
in {es}. Elastic's support of the bundled JVM is subject to Elastic's https://www.elastic.co/support_policy[support policy] and
https://www.elastic.co/support/eol[end-of-life schedule] and is independent of the support policy and end-of-life schedule offered by the
original supplier of the JVM. Elastic does not support using the bundled JVM for purposes other than running {es}.

TIP: {es} uses only a subset of the features offered by the JVM. Bugs and security issues in the bundled JVM often relate to features that
{es} does not use. Such issues do not apply to {es}. Elastic analyzes reports of security vulnerabilities in all its dependencies, including
in the bundled JVM, and will issue an https://www.elastic.co/community/security[Elastic Security Advisory] if such an advisory is needed.

If you decide to run {es} using a version of Java that is different from the bundled one, prefer to use the latest release of a
https://www.oracle.com/technetwork/java/eol-135779.html[LTS version of Java] which is link:/support/matrix[listed in the support matrix].
Although such a configuration is supported, if you encounter a security issue or other bug in your chosen JVM then Elastic may not be able
to help unless the issue is also present in the bundled JVM. Instead, you must seek assistance directly from the supplier of your chosen
JVM. You must also take responsibility for reacting to security and bug announcements from the supplier of your chosen JVM. {es} may not
perform optimally if using a JVM other than the bundled one. {es} is closely coupled to certain OpenJDK-specific features, so it may not
work correctly with JVMs that are not OpenJDK. {es} will refuse to start if you attempt to use a known-bad JVM version.

To use your own version of Java, set the `ES_JAVA_HOME` environment variable to the path to your own JVM installation. The bundled JVM is
located within the `jdk` subdirectory of the {es} home directory. You may remove this directory if using your own JVM.

[discrete]
[[jdk-locale]]
=== JDK locale database

The locale database used by {es}, used to map from various date formats to
the underlying date storage format, depends on the version of the JDK
that {es} is running on. On JDK version 23 and above, {es} will use the
_CLDR_ database. On JDK version 22 and below, {es} will use the _COMPAT_
database. This may mean that the strings used for textual date formats,
and the output of custom week-date formats, may change when moving from
a previous JDK version to JDK 23 or above. For more information, see
<<custom-date-format-locales,custom date formats>>.

[discrete]
[[jvm-agents]]
=== JVM and Java agents

Don't use third-party Java agents that attach to the JVM. These agents
can reduce {es} performance, including freezing or crashing nodes.


include::install/targz.asciidoc[]

include::install/zip-windows.asciidoc[]

include::install/deb.asciidoc[]

include::install/rpm.asciidoc[]

include::install/docker.asciidoc[]
