[[installing-watcher]]
== Installing Watcher

The <<getting-started, Getting Started Guide>> steps through a basic Watcher installation. This
section provides some additional information about the installation prerequisites, deployment
options, and the installation process for RPM/DEB package installations.

[float]
[[installation-prerequisites]]
=== Watcher Installation Prerequisites

All you need to use Watcher is:

* Java 7 or later
* Elasticsearch {version}
* Elasticsearch License plugin

For information about installing the latest Oracle JDK, see
http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html[Java SE Downloads].
For information about installing Elasticsearch, see {ref}/_installation.html[Installation] in the
Elasticsearch Reference.

If you are using Shield, you’ve already installed the License plugin. If you haven't, installing
Shield is part of the basic installation instructions in the <<getting-started, Getting Started>>
guide. 

[float]
[[deploying-existing-cluster]]
=== Deploying Watcher on an Existing Cluster
Deploying watcher directly to the nodes of an existing cluster is generally the easiest way to get
started with Watcher. Keep in mind, however, that this requires stopping and starting all of the
nodes in your cluster. For larger clusters, we recommend
<<deploying-separate-cluster, deploying Watcher to a separate cluster>>.

When you deploy Watcher on an existing cluster, you use the <<input-search, search input>> to
search the cluster's indexes and load the results into a watch's payload. 

To deploy to an existing cluster, you need to install the License and Watcher plugins on every
node in the cluster. For general installation instructions, see the
<<getting-started, Getting Started>> guide. If you are using the Elasticsearch DEB/RPM packages,
see <<package-installation, Installing Watcher on a DEB/RPM Package Installation>> for more
information.

[float]
[[deploying-separate-cluster]]
=== Deploying Watcher as a Separate Cluster

If you have a larger cluster, we recommend running Watcher on a separate monitoring cluster. If
you're using a separate cluster for Marvel, you can install Watcher on the nodes you're using to
store your Marvel data. 

When you deploy watcher on a separate cluster, you use the <<input-http, HTTP input>> to send
search requests to the cluster you are monitoring and load the results into a watch's payload. 

To deploy to a separate monitoring cluster, you need to install the License and Watcher plugins
on every node in the monitoring cluster. For general installation instructions, see the
<<getting-started, Getting Started>> guide. If you are using the Elasticsearch DEB/RPM packages,
see <<package-installation, Installing Watcher on a DEB/RPM Package Installation>> for more
information.

[float]
[[package-installation]]
=== Installing Watcher on a DEB/RPM Package Installation

If you use the DEB/RPM packages to install Elasticsearch, by default Elasticsearch is installed in 
`/usr/share/elasticsearch` and the configuration files are stored in `/etc/elasticsearch`. (For the 
complete list of default paths, see {ref}/setup-dir-layout.html#_deb_and_rpm[Directory Layout] in
the Elasticsearch Reference.)

To install the Watcher and License plugins on a DEB/RPM package installation, you need to run 
`bin/plugin -i` from the `/usr/share/elasticsearch` directory with superuser permissions. For example:

[source,shell]
----------------------------------------------------------
cd /usr/share/elasticsearch
sudo bin/plugin install license
sudo bin/plugin install watcher
----------------------------------------------------------

[float]
[[offline-installation]]
=== Installing Watcher on Offline Machines
Elasticsearch’s `bin/plugin` script requires direct Internet access to download and install the 
License and Watcher plugins. If your server doesn’t have Internet access, you can manually 
download and install the plugins.

To install Watcher on a machine that doesn't have Internet access:

. Manually download the License and Watcher binaries: 
** https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/license/{version}/license-{version}.zip[
https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/license/{version}/license-{version}.zip]
** https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/watcher/{version}/watcher-{version}.zip[
https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/watcher/{version}/watcher-{version}.zip]

. Transfer the zip files to the offline machine.

. Run `bin/plugin` with the `-u` option to install the plugins using the zip files. For example:
+
[source,shell]
----------------------------------------------------------
bin/plugin install file:///path/to/file/license-2.0.0.zip <1>
bin/plugin install file:///path/to/file/watcher-2.0.0.zip 
----------------------------------------------------------
<1> Note that you must specify an absolute path to the zip file after the `file://` protocol.

[float]
[[uninstalling-watcher]]
=== Uninstalling Watcher

To uninstall Watcher:

. Shut down Elasticsearch. 

. Remove the Watcher plugin from Elasticsearch:
+
[source,shell]
----------------------------------------------------------
bin/plugin remove watcher
----------------------------------------------------------

. Restart Elasticsearch.