Link Search Menu Expand Document Documentation Menu

Installing plugins

OpenSearch comprises of a number of plugins that add features and capabilities to the core platform. The plugins available to you are dependent on how OpenSearch was installed and which plugins were subsequently added or removed. For example, the minimal distribution of OpenSearch enables only core functionality, such as indexing and search. Using the minimal distribution of OpenSearch is beneficial when you are working in a testing environment, have custom plugins, or are intending to integrate OpenSearch with other services.

The standard distribution of OpenSearch has much more functionality included. You can choose to add additional plugins or remove any of the plugins you don’t need.

For a list of the available plugins, see Available plugins.

For a plugin to work properly with OpenSearch, it may request certain permissions as part of the installation process. Review the requested permissions and proceed accordingly. It is important that you understand a plugin’s functionality before installation. When opting for a community-provided plugin, ensure that the source is trustworthy and reliable.

Managing plugins

To manage plugins in OpenSearch, you can use a command line tool called opensearch-plugin. This tool allows you to perform the following actions:

You can print help text by passing -h or --help. Depending on your host configuration, you might also need to run the command with sudo privileges.

If you’re running OpenSearch in a Docker container, plugins must be installed, removed, and configured by modifying the Docker image. For more information, see Working with plugins.

List

Use list to see a list of plugins that have already been installed.

Usage

bin/opensearch-plugin list

Example

$ ./opensearch-plugin list
opensearch-alerting
opensearch-anomaly-detection
opensearch-asynchronous-search
opensearch-cross-cluster-replication
opensearch-geospatial
opensearch-index-management
opensearch-job-scheduler
opensearch-knn
opensearch-ml
opensearch-notifications
opensearch-notifications-core
opensearch-observability
opensearch-performance-analyzer
opensearch-reports-scheduler
opensearch-security
opensearch-sql

List (with CAT API)

You can also list installed plugins by using the CAT API.

Usage

GET _cat/plugins

Example response

opensearch-node1 opensearch-alerting                  2.0.1.0
opensearch-node1 opensearch-anomaly-detection         2.0.1.0
opensearch-node1 opensearch-asynchronous-search       2.0.1.0
opensearch-node1 opensearch-cross-cluster-replication 2.0.1.0
opensearch-node1 opensearch-index-management          2.0.1.0
opensearch-node1 opensearch-job-scheduler             2.0.1.0
opensearch-node1 opensearch-knn                       2.0.1.0
opensearch-node1 opensearch-ml                        2.0.1.0
opensearch-node1 opensearch-notifications             2.0.1.0
opensearch-node1 opensearch-notifications-core        2.0.1.0

Install

There are three ways to install plugins using the opensearch-plugin tool:

Install a plugin by name

You can install plugins that aren’t already preinstalled in your installation by using the plugin name. For a list of plugins that may not be preinstalled, see Additional plugins.

Usage

bin/opensearch-plugin install <plugin-name>

Example

$ sudo ./opensearch-plugin install analysis-icu
-> Installing analysis-icu
-> Downloading analysis-icu from opensearch
[=================================================] 100%   
-> Installed analysis-icu with folder name analysis-icu

Install a plugin from a zip file

You can install remote zip files by replacing <zip-file> with the URL of the hosted file. The tool supports downloading over HTTP/HTTPS protocols only. For local zip files, replace <zip-file> with file: followed by the absolute or relative path to the plugin zip file, as shown in the second example that follows.

Usage

bin/opensearch-plugin install <zip-file>

Example

Select to expand the example
# Zip file is hosted on a remote server - in this case, Maven central repository.
$ sudo ./opensearch-plugin install https://repo1.maven.org/maven2/org/opensearch/plugin/opensearch-anomaly-detection/2.2.0.0/opensearch-anomaly-detection-2.2.0.0.zip
-> Installing https://repo1.maven.org/maven2/org/opensearch/plugin/opensearch-anomaly-detection/2.2.0.0/opensearch-anomaly-detection-2.2.0.0.zip
-> Downloading https://repo1.maven.org/maven2/org/opensearch/plugin/opensearch-anomaly-detection/2.2.0.0/opensearch-anomaly-detection-2.2.0.0.zip
[=================================================] 100%   
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.misc
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.net.SocketPermission * connect,resolve
* javax.management.MBeanPermission org.apache.commons.pool2.impl.GenericObjectPool#-[org.apache.commons.pool2:name=pool,type=GenericObjectPool] registerMBean
* javax.management.MBeanPermission org.apache.commons.pool2.impl.GenericObjectPool#-[org.apache.commons.pool2:name=pool,type=GenericObjectPool] unregisterMBean
* javax.management.MBeanServerPermission createMBeanServer
* javax.management.MBeanTrustPermission register
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed opensearch-anomaly-detection with folder name opensearch-anomaly-detection

# Zip file in a local directory.
$ sudo ./opensearch-plugin install file:/home/user/opensearch-anomaly-detection-2.2.0.0.zip
-> Installing file:/home/user/opensearch-anomaly-detection-2.2.0.0.zip
-> Downloading file:/home/user/opensearch-anomaly-detection-2.2.0.0.zip
[=================================================] 100%   
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.misc
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.net.SocketPermission * connect,resolve
* javax.management.MBeanPermission org.apache.commons.pool2.impl.GenericObjectPool#-[org.apache.commons.pool2:name=pool,type=GenericObjectPool] registerMBean
* javax.management.MBeanPermission org.apache.commons.pool2.impl.GenericObjectPool#-[org.apache.commons.pool2:name=pool,type=GenericObjectPool] unregisterMBean
* javax.management.MBeanServerPermission createMBeanServer
* javax.management.MBeanTrustPermission register
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed opensearch-anomaly-detection with folder name opensearch-anomaly-detection

Install a plugin using Maven coordinates

The opensearch-plugin install tool also allows you to specify Maven coordinates for available artifacts and versions hosted on Maven Central. The tool parses the Maven coordinates you provide and constructs a URL. As a result, the host must be able to connect directly to the Maven Central site. The plugin installation fails if you pass coordinates to a proxy or local repository.

Usage

bin/opensearch-plugin install <groupId>:<artifactId>:<version>

Example

Select to expand the example
$ sudo ./opensearch-plugin install org.opensearch.plugin:opensearch-anomaly-detection:2.2.0.0
-> Installing org.opensearch.plugin:opensearch-anomaly-detection:2.2.0.0
-> Downloading org.opensearch.plugin:opensearch-anomaly-detection:2.2.0.0 from maven central
[=================================================] 100%   
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.misc
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.net.SocketPermission * connect,resolve
* javax.management.MBeanPermission org.apache.commons.pool2.impl.GenericObjectPool#-[org.apache.commons.pool2:name=pool,type=GenericObjectPool] registerMBean
* javax.management.MBeanPermission org.apache.commons.pool2.impl.GenericObjectPool#-[org.apache.commons.pool2:name=pool,type=GenericObjectPool] unregisterMBean
* javax.management.MBeanServerPermission createMBeanServer
* javax.management.MBeanTrustPermission register
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed opensearch-anomaly-detection with folder name opensearch-anomaly-detection

Restart your OpenSearch node after installing a plugin.

Installing multiple plugins

Multiple plugins can be installed in a single invocation.

Usage

bin/opensearch-plugin install <plugin-name> <plugin-name> ... <plugin-name>

Example

$ sudo ./opensearch-plugin install analysis-nori repository-s3

Remove

You can remove a plugin that has already been installed with the remove option.

Usage

bin/opensearch-plugin remove <plugin-name>

Example

$ sudo ./opensearch-plugin remove opensearch-anomaly-detection
-> removing [opensearch-anomaly-detection]...

Restart your OpenSearch node after removing a plugin.

Batch mode

When installing a plugin that requires additional privileges that are not included by default, the plugin will prompt you for confirmation of the required privileges. To grant all requested privileges, use batch mode to skip the confirmation prompt.

To force batch mode when installing plugins, add the -b or --batch option:

bin/opensearch-plugin install --batch <plugin-name>

Available plugins

OpenSearch provides several bundled plugins that are available for immediate use with all OpenSearch distributions except for the minimal distribution. Additional plugins are available but must be installed separately using one of the installation options.

Bundled plugins

The following plugins are bundled with all OpenSearch distributions except for the minimal distribution. If you are using the minimal distribution, you can add these plugins by using one of the installation methods.

Plugin name Repository Earliest available version
Alerting opensearch-alerting 1.0.0
Anomaly Detection opensearch-anomaly-detection 1.0.0
Asynchronous Search opensearch-asynchronous-search 1.0.0
Cross Cluster Replication opensearch-cross-cluster-replication 1.1.0
Custom Codecs opensearch-custom-codecs 2.10.0
Flow Framework flow-framework 2.12.0
Notebooks1 opensearch-notebooks 1.0.0 to 1.1.0
Notifications notifications 2.0.0
Reports Scheduler opensearch-reports-scheduler 1.0.0
Geospatial opensearch-geospatial 2.2.0
Index Management opensearch-index-management 1.0.0
Job Scheduler opensearch-job-scheduler 1.0.0
k-NN opensearch-knn 1.0.0
ML Commons opensearch-ml 1.3.0
Skills opensearch-skills 2.12.0
Neural Search neural-search 2.4.0
Observability opensearch-observability 1.2.0
Performance Analyzer2 opensearch-performance-analyzer 1.0.0
Security opensearch-security 1.0.0
Security Analytics opensearch-security-analytics 2.4.0
SQL opensearch-sql 1.0.0

1Dashboard Notebooks was merged in to the Observability plugin with the release of OpenSearch 1.2.0.
2Performance Analyzer is not available on Windows.

Additional plugins

There are many more plugins available in addition to those provided by the default distribution. These additional plugins have been built by OpenSearch developers or members of the OpenSearch community. For a list of additional plugins you can install, see Additional plugins.

Plugin compatibility

You can specify plugin compatibility with a particular OpenSearch version in the plugin-descriptor.properties file. For example, a plugin with the following property is compatible only with OpenSearch 2.3.0:

opensearch.version=2.3.0

Alternatively, you can specify a range of compatible OpenSearch versions by setting the dependencies property in the plugin-descriptor.properties file to one of the following notations:

  • dependencies={ opensearch: "2.3.0" }: The plugin is compatible only with OpenSearch version 2.3.0.
  • dependencies={ opensearch: "=2.3.0" }: The plugin is compatible only with OpenSearch version 2.3.0.
  • dependencies={ opensearch: "~2.3.0" }: The plugin is compatible with all versions from 2.3.0 up to the next minor version, in this example, 2.4.0 (exclusive).
  • dependencies={ opensearch: "^2.3.0" }: The plugin is compatible with all versions from 2.3.0 up to the next major version, in this example, 3.0.0 (exclusive).

You can specify only one of the opensearch.version or dependencies properties.


Related articles