Loading

Manage plugins on Elasticsearch self-managed deployments

How you manage plugins depends on how you run Elasticsearch. Use a declarative configuration file with the official Docker image, or the elasticsearch-plugin CLI for package and archive installs.

To make synonym dictionaries, scripts, SAML metadata, or similar files available to Elasticsearch, place them on each node's configuration directory and reference them from your settings. This is the self-managed equivalent of bundles on Elastic Cloud Hosted and Elastic Cloud Enterprise, which package those files as ZIP extensions rather than placing them directly on disk.

Refer to Plugins and bundles for options that apply to other deployment types.

If you run Elasticsearch using the official Elasticsearch Docker image, declare the plugins you want in elasticsearch-plugins.yml in the configuration directory, alongside elasticsearch.yml.

Each time the container starts, Elasticsearch compares that list with the plugins currently installed and installs, removes, or upgrades them so the running set matches the file. Official plugins are also upgraded when you upgrade Elasticsearch. To change the set of plugins, edit the file and restart the container. Do not run elasticsearch-plugin install or remove when the configuration file is present; those commands are disabled.

Refer to Manage plugins using a configuration file for the file format, unofficial plugin locations, and proxy settings. You can also require mandatory plugins so a node refuses to start if a critical plugin is missing.

For all other installation methods, use the elasticsearch-plugin command-line tool to install, list, remove, and update plugins on each node. You can also install multiple plugins in a single command, or install from a custom URL or file system. The tool lives under $ES_HOME/bin by default; the exact path depends on your package. See Plugins directory.

After you install a plugin, restart each node before it becomes available. You can require mandatory plugins so a node refuses to start if a critical plugin is missing. For silent, verbose, and related options, refer to Other command line parameters.