본문 바로가기
WIKI 기술 지식 베이스

Managing OpenSearch plugins

원문 보기 위키 갱신

출처: 문서

본문

OpenSearch 플러그인 관리

OpenSearch에는 핵심 플랫폼에 기능과 역량을 더해 주는 여러 플러그인이 포함되어 있어요. 실제로 사용할 수 있는 플러그인은 OpenSearch를 어떻게 설치했는지, 그 후 어떤 플러그인을 추가하거나 제거했는지에 따라 달라져요. 예를 들어 OpenSearch의 minimal 배포판에서는 인덱싱, 검색 같은 핵심 기능만 사용할 수 있어요. 테스트 환경에서 작업하거나, 커스텀 플러그인을 갖고 있거나, OpenSearch를 다른 서비스와 통합하려는 경우에는 OpenSearch의 minimal 배포판을 사용하는 것이 유리해요.

OpenSearch의 standard 배포판에는 훨씬 많은 플러그인이 포함되어 있어 더 많은 기능을 제공해요. 추가 플러그인을 더하거나, 필요 없는 플러그인을 제거할 수도 있어요.

사용할 수 있는 플러그인 목록은 사용 가능한 플러그인을 참고하세요.

OpenSearch Dashboards 플러그인을 관리하려면 OpenSearch Dashboards 플러그인 관리를 참고하세요.

플러그인이 OpenSearch와 제대로 동작하려면 설치 과정의 일부로 특정 권한을 요청할 수 있어요. 요청된 권한을 검토하고 그에 맞게 진행하세요. 설치하기 전에 플러그인의 기능을 이해하는 것이 중요해요. 커뮤니티에서 제공하는 플러그인을 선택할 때는 출처가 믿을 수 있고 신뢰할 만한지 확인하세요. {: .warning}

CAT API로 설치된 플러그인 조회하기

CAT API를 사용하면 설치된 플러그인 목록을 조회할 수 있어요.

사용법

GET _cat/plugins

{% include copy-curl.html %}

응답 예시

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

opensearch-plugin 도구 사용하기

OpenSearch에서 플러그인을 관리할 때는 opensearch-plugin이라는 명령줄 도구를 사용할 수 있어요. 이 도구로 다음 작업을 할 수 있어요:

-h나 --help를 전달하면 도움말 텍스트를 출력할 수 있어요. 호스트 구성에 따라 명령을 sudo 권한으로 실행해야 할 수도 있어요.

Docker 컨테이너에서 OpenSearch를 실행한다면, 플러그인은 Docker 이미지를 수정하는 방식으로 설치, 제거, 구성해야 해요. 자세한 내용은 플러그인 다루기를 참고하세요. {: .note}

설치된 플러그인 조회하기

list를 사용하면 이미 설치된 플러그인의 목록을 볼 수 있어요.

사용법

bin/opensearch-plugin list

{% include copy.html %}

응답 예시

$ ./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

플러그인 설치하기

opensearch-plugin 도구로 플러그인을 설치하는 방법에는 세 가지가 있어요:

이름으로 플러그인 설치하기

플러그인 이름을 사용해 설치 환경에 아직 사전 설치되어 있지 않은 플러그인을 설치할 수 있어요. 사전 설치되어 있지 않을 수 있는 플러그인 목록은 추가 플러그인을 참고하세요.

사용법
bin/opensearch-plugin install <plugin-name>

{% include copy.html %}

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

zip 파일에서 플러그인 설치하기

<zip-file>을 호스팅된 파일의 URL로 바꾸면 원격 zip 파일을 설치할 수 있어요. 이 도구는 HTTP/HTTPS 프로토콜을 통한 다운로드만 지원해요. 로컬 zip 파일의 경우에는, 뒤의 두 번째 예시에서 보듯이 <zip-file>을 file: 뒤에 플러그인 zip 파일의 절대 경로나 상대 경로가 붙는 형태로 바꾸세요.

사용법
bin/opensearch-plugin install <zip-file>

{% include copy.html %}

응답 예시
예시를 펼쳐 보기 {: .text-delta}
# 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

Maven 좌표로 플러그인 설치하기

opensearch-plugin install 도구로는 Maven Central에 호스팅된 사용 가능한 아티팩트와 버전을 Maven 좌표로 지정할 수도 있어요. 도구는 입력받은 Maven 좌표를 파싱해 URL을 만들어요. 따라서 호스트가 Maven Central 사이트에 직접 연결할 수 있어야 해요. 프록시나 로컬 저장소를 가리키는 좌표를 전달하면 플러그인 설치에 실패해요.

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

{% include copy.html %}

응답 예시
예시를 펼쳐 보기 {: .text-delta}
$ 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

플러그인을 설치한 후에는 OpenSearch 노드를 재시작하세요. {: .note}

여러 플러그인 설치하기

한 번의 호출로 여러 플러그인을 설치할 수 있어요.

사용법

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

{% include copy.html %}

응답 예시

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

배치 모드로 플러그인 설치하기

기본적으로 포함되지 않은 추가 권한이 필요한 플러그인을 설치할 때는, 필요한 권한에 대한 확인을 요청하는 프롬프트가 표시돼요. 요청된 모든 권한을 부여하려면 배치 모드를 사용해 확인 프롬프트를 건너뛰세요.

플러그인을 설치할 때 배치 모드를 강제하려면 -b 또는 --batch 옵션을 추가하세요:

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

{% include copy.html %}

플러그인 제거하기

remove 옵션으로 이미 설치된 플러그인을 제거할 수 있어요.

사용법

bin/opensearch-plugin remove <plugin-name>

{% include copy.html %}

응답 예시

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

플러그인을 제거한 후에는 OpenSearch 노드를 재시작하세요. {: .note}

사용 가능한 플러그인

OpenSearch는 minimal 배포판을 제외한 모든 OpenSearch 배포판에서 바로 사용할 수 있는 번들 플러그인을 여러 개 제공해요. 추가 플러그인도 있지만, 설치 옵션 중 하나를 사용해 별도로 설치해야 해요.

번들 플러그인

다음 플러그인들은 minimal 배포판을 제외한 모든 OpenSearch 배포판에 번들되어 있어요. minimal 배포판을 사용 중이라면 설치 방법 중 하나를 사용해 이 플러그인들을 추가할 수 있어요.

플러그인 이름 저장소 최초 사용 가능 버전
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
Learning to Rank opensearch-ltr 2.19.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
Remote Metadata SDK opensearch-remote-metadata-sdk 2.19.0
Query Insights query-insights 2.16.0
System Templates opensearch-system-templates 2.17.0
User Behavior Insights ubi 3.0.0
Search Relevance search-relevance 3.1.0

1Dashboard Notebooks는 OpenSearch 1.2.0이 릴리스되면서 Observability 플러그인에 병합되었어요.
2Performance Analyzer는 Windows에서 사용할 수 없어요.

오프라인 설치를 위한 번들 플러그인 다운로드

각 번들 플러그인은 zip 파일 형태로 다운로드해 오프라인에서 설치할 수 있어요.

해당 플러그인의 URL은 압축을 푼 번들 루트 디렉터리의 manifest.yml 파일에서 찾을 수 있어요.

코어 플러그인

OpenSearch의 core(또는 native) 플러그인은 OpenSearch 코어 엔진 저장소에 들어 있는 플러그인이에요. 이 플러그인들은 OpenSearch 엔진과 긴밀하게 통합되어 있고, 코어 릴리스와 함께 버전이 관리되며, standard OpenSearch 배포판에는 기본적으로 번들되지 않아요.

오프라인 설치를 위한 코어 플러그인 다운로드

이 목록에 있는 각 코어 플러그인은 공식 plugins 저장소 URL 템플릿을 사용해 zip 파일 형태로 다운로드해 오프라인에서 설치할 수 있어요:

https://artifacts.opensearch.org/releases/plugins/<plugin-name>/<version>/<plugin-name>-<version>.zip

<plugin-name>에는 번들 플러그인의 이름(예: analysis-icu)이 들어가요. <version>은 OpenSearch 배포판의 버전(예: 2.19.1)과 일치해야 해요.

예를 들어 OpenSearch 버전 2.19.1용 analysis-icu 번들 플러그인 배포판을 다운로드하려면 다음 URL을 사용하세요:

https://artifacts.opensearch.org/releases/plugins/analysis-icu/2.19.1/analysis-icu-2.19.1.zip

추가 플러그인

기본 배포판이 제공하는 플러그인 외에도 훨씬 더 많은 플러그인을 사용할 수 있어요. 이 추가 플러그인들은 OpenSearch 개발자나 OpenSearch 커뮤니티 멤버가 만든 것이에요. 설치할 수 있는 추가 플러그인 목록은 추가 플러그인을 참고하세요.

플러그인 호환성

plugin-descriptor.properties 파일에서 특정 OpenSearch 버전과의 플러그인 호환성을 지정할 수 있어요. 예를 들어 다음 속성을 가진 플러그인은 OpenSearch 2.3.0과만 호환돼요:

opensearch.version=2.3.0

또는 plugin-descriptor.properties 파일의 dependencies 속성을 다음 표기법 중 하나로 설정해 호환되는 OpenSearch 버전 범위를 지정할 수도 있어요:

  • dependencies={ opensearch: "2.3.0" }: 플러그인이 OpenSearch 2.3.0 버전과만 호환돼요.
  • dependencies={ opensearch: "=2.3.0" }: 플러그인이 OpenSearch 2.3.0 버전과만 호환돼요.
  • dependencies={ opensearch: "~2.3.0" }: 플러그인이 2.3.0부터 다음 마이너 버전(이 예시에서는 2.4.0) 미만까지의 모든 버전과 호환돼요.
  • dependencies={ opensearch: "^2.3.0" }: 플러그인이 2.3.0부터 다음 메이저 버전(이 예시에서는 3.0.0) 미만까지의 모든 버전과 호환돼요.

opensearch.version 또는 dependencies 속성 중 하나만 지정할 수 있어요. {: .note}

플러그인 의존성

어떤 플러그인은 다른 플러그인의 기능을 확장해요. 플러그인이 다른 플러그인에 의존하는 경우에는, 의존하는 플러그인을 설치하기 전에 필요한 의존성을 먼저 설치해야 해요. 플러그인 의존성은 매니페스트 파일을 참고하세요. 이 파일에는 각 플러그인의 의존성이 depends_on 파라미터에 나열되어 있어요.

더 알아보기 (Learn more)