2021-05-28 13:48:19 -04:00
---
layout: default
title: OpenSearch plugins
parent: Install OpenSearch
nav_order: 90
---
2021-10-26 13:41:52 -04:00
# OpenSearch plugin installation
2021-05-28 13:48:19 -04:00
2022-08-31 13:44:16 -04:00
You can install individual plugins for OpenSearch based on your needs. For information about available plugins, see [Available plugins ]({{site.url}}{{site.baseurl}}/opensearch/install/plugins#available-plugins ).
2021-05-28 13:48:19 -04:00
2022-08-31 13:44:16 -04:00
## Managing plugins
2021-05-28 13:48:19 -04:00
2022-08-31 13:44:16 -04:00
OpenSearch uses a command line tool called `opensearch-plugin` for managing plugins. This tool allows you to:
- [List ]({{site.url}}{{site.baseurl}}/opensearch/install/plugins#list ) installed plugins.
- [Install ]({{site.url}}{{site.baseurl}}/opensearch/install/plugins#install ) plugins.
- [Remove ]({{site.url}}{{site.baseurl}}/opensearch/install/plugins#remove ) an installed plugin.
2021-05-28 13:48:19 -04:00
2022-08-31 13:44:16 -04:00
Print help text by passing `-h` or `--help` . Depending on your host configuration, you might also need to run the command with `sudo` privileges.
2021-10-26 13:41:52 -04:00
2022-07-19 13:39:25 -04:00
If you are running OpenSearch in a Docker container, plugins must be installed, removed, and configured by modifying the Docker image. For information, see [Install, configure or remove plugins ]({{site.url}}{{site.baseurl}}/opensearch/install/docker#install-configure-or-remove-plugins )
{: .note}
2022-08-31 13:44:16 -04:00
## List
2022-02-22 15:45:27 -05:00
2022-08-31 13:44:16 -04:00
Use `list` to see a list of plugins that have already been installed.
2022-02-22 15:45:27 -05:00
2022-08-31 13:44:16 -04:00
#### Usage:
```bash
bin/opensearch-plugin list
```
#### Example:
```bash
$ ./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
```
## Install
There are three ways to install plugins using `opensearch-plugin` :
- [Install a plugin by name ]({{site.url}}{{site.baseurl}}/opensearch/install/plugins#install-a-plugin-by-name )
- [Install a plugin by from a zip file ]({{site.url}}{{site.baseurl}}/opensearch/install/plugins#install-a-plugin-from-a-zip-file )
- [Install a plugin using Maven coordinates ]({{site.url}}{{site.baseurl}}/opensearch/install/plugins#install-a-plugin-using-maven-coordinates )
### Install a plugin by name:
For a list of plugins that can be installed by name, see [Additional plugins ]({{site.url}}{{site.baseurl}}/opensearch/install/plugins#additional-plugins )
#### Usage:
2022-08-19 17:50:22 -04:00
```bash
2022-02-23 13:45:30 -05:00
bin/opensearch-plugin install < plugin-name >
```
2022-08-31 13:44:16 -04:00
#### Example:
2022-08-19 17:50:22 -04:00
```bash
2022-08-31 13:44:16 -04:00
$ sudo ./opensearch-plugin install analysis-icu
-> Installing analysis-icu
-> Downloading analysis-icu from opensearch
[=================================================] 100%
-> Installed analysis-icu with folder name analysis-icu
2021-10-26 13:41:52 -04:00
```
2022-02-23 13:45:30 -05:00
2022-08-31 13:44:16 -04:00
### Install a plugin from a zip file:
2021-10-26 13:41:52 -04:00
2022-08-31 13:44:16 -04:00
#### Usage:
```bash
# zip-file can be a local path to the zip file, or
# a URL for a zip file hosted on a network.
bin/opensearch-plugin install < zip-file >
```
2022-08-18 22:39:23 -04:00
2022-08-31 13:44:16 -04:00
#### Example:
```bash
$ 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
```
2022-08-18 22:39:23 -04:00
2022-08-31 13:44:16 -04:00
### Install a plugin using Maven coordinates:
#### Usage:
2022-08-19 17:50:22 -04:00
```bash
2022-08-31 13:44:16 -04:00
bin/opensearch-plugin install < groupId > :< artifactId > :< version >
2022-08-18 22:39:23 -04:00
```
2022-08-31 13:44:16 -04:00
#### Example:
```bash
$ 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.
{: .note}
## Remove
You can remove a plugin that has already been installed with the `remove` option.
2021-10-26 13:41:52 -04:00
2022-08-31 13:44:16 -04:00
#### Usage:
2022-08-19 17:50:22 -04:00
```bash
2021-10-26 13:41:52 -04:00
bin/opensearch-plugin remove < plugin-name >
```
2022-08-31 13:44:16 -04:00
#### Example:
```bash
$ sudo $ ./opensearch-plugin remove opensearch-anomaly-detection
-> removing [opensearch-anomaly-detection]...
```
2021-10-26 13:41:52 -04:00
Restart your OpenSearch node after removing a plugin.
2022-08-31 13:44:16 -04:00
{: .note}
2021-10-26 13:41:52 -04:00
2022-08-31 13:44:16 -04:00
## Batch mode
2021-10-26 13:41:52 -04:00
2022-08-31 13:44:16 -04:00
When installing plugins that require additional privileges not included by default, the plugins will prompt the user for confirmation of the required privileges. To grant all requested privileges, use batch mode to skip the confirmation prompt.
2021-10-26 13:41:52 -04:00
2022-08-31 13:44:16 -04:00
To force batch mode when installing plugins, add the `-b` or `--batch` option:
2022-08-19 17:50:22 -04:00
```bash
2022-08-31 13:44:16 -04:00
bin/opensearch-plugin install --batch < plugin-name >
2021-10-26 13:41:52 -04:00
```
## Available plugins
2021-05-28 13:48:19 -04:00
2022-08-25 12:53:43 -04:00
### Bundled Plugins
The following plugins are bundled with all OpenSearch distributions except for minimum distribution packages.
2022-08-19 16:39:20 -04:00
| Plugin Name | Repository | OpenSearch Compatible Versions |
| :--- | :--- | :--- |
| Alerting | [opensearch-alerting ](https://github.com/opensearch-project/alerting ) | 1.0.0 or newer |
| Anomaly Detection | [opensearch-anomaly-detection ](https://github.com/opensearch-project/anomaly-detection ) | 1.0.0 or newer |
| Asynchronous Search | [opensearch-asynchronous-search ](https://github.com/opensearch-project/asynchronous-search ) | 1.0.0 or newer |
| Cross Cluster Replication | [opensearch-cross-cluster-replication ](https://github.com/opensearch-project/cross-cluster-replication ) | 1.1.0 or newer |
| Dashboard Notebooks< sup > 1</ sup > | [opensearch-notebooks ](https://github.com/opensearch-project/dashboards-notebooks ) | 1.0.0 to 1.1.0 |
| Dashboard Reports | [opensearch-reports-scheduler ](https://github.com/opensearch-project/dashboards-reports ) | 1.0.0 or newer |
2022-08-25 12:53:43 -04:00
| Geospatial | [opensearch-geospatial ](https://github.com/opensearch-project/geospatial ) | 2.2.0 or newer |
2022-08-19 16:39:20 -04:00
| Index Management | [opensearch-index-management ](https://github.com/opensearch-project/index-management ) | 1.0.0 or newer |
| Job Scheduler | [opensearch-job-scheduler ](https://github.com/opensearch-project/job-scheduler ) | 1.0.0 or newer |
| k-NN | [opensearch-knn ](https://github.com/opensearch-project/k-NN ) | 1.0.0 or newer |
| ML Commons | [opensearch-ml ](https://github.com/opensearch-project/ml-commons ) | 1.3.0 or newer |
| Observability | [opensearch-observability ](https://github.com/opensearch-project/observability ) | 1.2.0 or newer |
| Performance Analyzer | [opensearch-performance-analyzer ](https://github.com/opensearch-project/performance-analyzer ) | 1.0.0 or newer |
| Security | [opensearch-security ](https://github.com/opensearch-project/security ) | 1.0.0 or newer |
| SQL | [opensearch-sql ](https://github.com/opensearch-project/sql ) | 1.0.0 or newer |
2022-08-31 13:44:16 -04:00
_< sup > 1< / sup > Dashboard Notebooks was merged in to the Observability plugin with the release of OpenSearch 1.2.0._
2022-08-23 14:06:38 -04:00
### Additional plugins
Members of the OpenSearch community have built countless plugins for the service. Although it isn't possible to build an exhaustive list of every plugin, since many plugins are not maintained within the OpenSearch GitHub repository, the following list of plugins are available to be installed by name using `bin/opensearch-plugin install <plugin-name>` .
| Plugin Name | OpenSearch Compatible Versions |
| :--- | :--- |
| analysis-icu | 1.0.0 or newer |
| analysis-kuromoji | 1.0.0 or newer |
| analysis-nori | 1.0.0 or newer |
| analysis-phonetic | 1.0.0 or newer |
| analysis-smartcn | 1.0.0 or newer |
| analysis-stempel | 1.0.0 or newer |
| analysis-ukrainian | 1.0.0 or newer |
| discovery-azure-classic | 1.0.0 or newer |
| discovery-ec2 | 1.0.0 or newer |
| discovery-gce | 1.0.0 or newer |
| ingest-attachment | 1.0.0 or newer |
| mapper-annotated-text | 1.0.0 or newer |
| mapper-murmur3 | 1.0.0 or newer |
| mapper-size | 1.0.0 or newer |
| repository-azure | 1.0.0 or newer |
| repository-gcs | 1.0.0 or newer |
| repository-hdfs | 1.0.0 or newer |
| repository-s3 | 1.0.0 or newer |
| store-smb | 1.0.0 or newer |
| transport-nio | 1.0.0 or newer |