네이버 오픈서치 클러스터 내의 노리 플러그인 설치 방법
네이버 클라우드의 오픈서치(Search Engine Service)에서 플러그인을 설치하기 위해서는 존재하는 모든 노드에 동일한 플러그인을 설치해야합니다.
이 글에서는 오픈서치 2.18.0 버전에 노리(analysis-nori) 플러그인 설치 방법을 안내합니다.
다른 플러그인도 동일한 방법으로 설치 가능합니다.
안내
- 이 글에서는
analysis-nori(노리 형태소 분석기) 설치에 대해 안내합니다. - 이 글에서 오픈서치 버전은
OpenSearch 2.18.0을 사용합니다. - OS는
Rocky Linux 8을 기준으로 작성되었습니다. - 이 글에 없는 나머지 오픈서치 플러그인 설치 정보는 https://docs.opensearch.org/latest/install-and-configure/plugins/에서 확인하세요.
0장 부록
바쁘신 분들을 위해 모든 명령어를 집합한 코드블록을 제공해드립니다. 바쁘시면 0장을 통해 설치하고, 5장에서 최종 확인만 하시길 바랍니다.
1. 매니저 노드 명령어 모음
# 매니저 노드 터미널
cd /tmp
wget https://artifacts.opensearch.org/releases/plugins/analysis-nori/2.18.0/analysis-nori-2.18.0.zip
sudo /usr/share/opensearch/bin/opensearch-plugin install file:/tmp/analysis-nori-2.18.0.zip
ls /usr/share/opensearch/plugins/ | grep nori
sudo systemctl stop opensearch
sudo systemctl start opensearch
# 매니저 노드 터미널
scp analysis-nori-2.18.0.zip sshuser@{Data node IP}:/tmp/
- 매니저 노드가 접속된 터미널에 붙여넣기하시면 모든 과정이 진행됩니다.
2. 데이터 노드 명령어 모음
# 데이터 노드 터미널
sudo /usr/share/opensearch/bin/opensearch-plugin install file:/tmp/analysis-nori-2.18.0.zip
ls /usr/share/opensearch/plugins/ | grep nori
sudo systemctl stop opensearch
sudo systemctl start opensearch
- 데이터 노드가 접속된 터미널에서 붙여넣기하시면 모든 과정이 진행됩니다.
1장 설치 준비
사전에 필요한 정보 및 파일은 다음과 같습니다.
- 매니저 노드의 접속 url
- 모든 데이터 노드의 접속 IP
- 매니저 노드의 ssh(22) 포트 접근 권한 및 접근을 위한
.pem파일 - 오픈서치 버전에 맞는 플러그인 파일(노리 형태소 플러그인의 경우 첨부파일 참고)
- 오픈서치 대시보드 웹 접속 정보
2장 SSH 접속
graph LR
subgraph LocalPC [로컬 환경]
direction TB
Terminal1[터미널 1]
Terminal2[터미널 2]
Terminal3[터미널 3]
Terminal4[터미널 4]
end
subgraph Cluster [오픈서치 클러스터]
direction TB
ManagerNode1[매니저 노드]
ManagerNode2[매니저 노드]
ManagerNode3[매니저 노드]
ManagerNode4[매니저 노드]
DataNode1[데이터 노드 1]
DataNode2[데이터 노드 2]
DataNode3[데이터 노드 3]
end
Terminal1 -- SSH --> ManagerNode1
Terminal2 -- SSH --> ManagerNode2
ManagerNode2 -- SSH --> DataNode1
Terminal3 -- SSH --> ManagerNode3
ManagerNode3 -- SSH --> DataNode2
Terminal4 -- SSH --> ManagerNode4
ManagerNode4 -- SSH --> DataNode3
위 그림처럼 매니저 노드를 통해 데이터 노드로 접속하는 방법을 설명합니다.
1. 매니저 노드에 접속
# 로컬 환경 터미널
ssh sshuser@{SES url} -i {.pem}
- 네이버 클라우드의 경우 ssh 접속을 위한 유저명은
sshuser로 고정입니다. {.pem}파일의 경우 없다면, 기술지원팀에 문의하세요.- 매니저 노드에 접속한 터미널을 4(총 노드 개수)개 엽니다.
2. 데이터 노드에 접속
# 매니저 노드 터미널
ssh sshuser@{데이터 노드 IP}
- *데이터 노드에 접속은 매니저 노드 안에서만 가능합니다.
- 꼭 매니저 노드에 접속된 터미널에서 실행하세요.
- 여러 터미널로 모든 매니저 노드에 각각 접속합니다.
접속시 참고사항
ECDSA key fingerprint is SHA256:QfLkG8Gr2vPM3b7VeP9WLYGw6VzRws2RpYpZGJhHaw8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
- 만약 이러한 경고문이 나온다면,
yes를 입력하면 넘어가집니다. - 이러한 경고를 지우고 싶다면 다음 글을 참고하세요.
- StackOverflow: 이 요청을 자동으로 "예"라고 답하거나 무시하는 방법이 있나요?
3장 매니저 노드에 플러그인 설치
1. 매니저 노드에서 플러그인 파일 다운로드
# 매니저 노드 터미널
cd /tmp
wget https://artifacts.opensearch.org/releases/plugins/analysis-nori/2.18.0/analysis-nori-2.18.0.zip
- *
tmp폴더: 일부 리눅스 환경에서는/tmp폴더 내의 파일을 주기적으로 삭제되어 용량이 절약됩니다. 따라서 설치한.zip파일을 제거하지 않아도 됩니다. - 위의 명령어로 오픈서치 2.18.0 환경의 노리 형태소(analysis-nori) 플러그인 파일을 다운로드 합니다.
2. 매니저 노드에 노리 플러그인 설치
# 매니저 노드 터미널
sudo /usr/share/opensearch/bin/opensearch-plugin install file:/tmp/analysis-nori-2.18.0.zip
- 오픈서치는 일반적으로
/usr/share/opensearch에 관련 파일들이 존재합니다. - 오픈서치 폴더 내의
bin/opensearch-plugin은 플러그인 설치 스크립트입니다. sudo명령어를 사용할 경우, 상대주소의 경우 파일을 찾을 수 없을 수 있으니 절대주소를 사용합니다.
3. 매니저 노드에 노리 플러그인 설치 확인
# 매니저 노드 터미널
ls /usr/share/opensearch/plugins/ | grep nori
- 오픈서치의
plugins폴더에는 설치된 플러그인 목록이 출력됩니다. - 해당 명령어 입력 후
analysis-nori폴더가 존재한다면, 정상적으로 설치된 것입니다.
4. 매니저 노드 오픈서치 재부팅
# 매니저 노드 터미널
sudo systemctl stop opensearch
sudo systemctl start opensearch
systemctl restart를 사용하지 않는 이유:restart의 경우 완벽히 종료되지 않는 문제가 있어stop과start를 사용합니다.
4장 데이터 노드에 플러그인 설치
데이터 노드는 매니저 노드와 다르게 외부 네트워크에 연결되어있지 않습니다.
따라서 매니저 노드에서 설치한.zip파일을 각 데이터 노드로 전송해서 사용합니다.
1. .zip 파일 데이터 노드로 옮기기
# 매니저 노드 터미널
cd /tmp
scp analysis-nori-2.18.0.zip sshuser@{Data node IP}:/tmp/
- 모든 데이터 노드에 해당 파일을 전송합니다.
2. 데이터 노드에서 플러그인 설치
1장에서 접속한 데이터 노드 터미널을 사용합니다.
# 데이터 노드 터미널
cd /tmp
sudo /usr/share/opensearch/bin/opensearch-plugin install file:/tmp/analysis-nori-2.18.0.zip
/tmp폴더로 이동한 후 노리 플러그인을 설치합니다.- 2장의 과정과 동일합니다.
3. 데이터 노드에 플러그인 설치 확인
ls /usr/share/opensearch/plugins/ | grep nori
- 오픈서치의
plugins폴더에는 설치된 플러그인 목록이 출력됩니다. - 해당 명령어 입력 후
analysis-nori폴더가 존재한다면, 정상적으로 설치된 것입니다. - 2장의 과정과 동일합니다.
4. 데이터 노드 오픈서치 재부팅
# 매니저 노드 터미널
sudo systemctl stop opensearch
sudo systemctl start opensearch
systemctl restart를 사용하지 않는 이유:restart의 경우 완벽히 종료되지 않는 문제가 있어stop과start를 사용합니다.- 2장의 과정과 동일합니다.
5장 최종 설치 확인
1. 오픈서치 대시보드로 확인
# Windows PowerShell
curl.exe -k -u {OpenSearch ID}:{OpenSearch Password} https://{OpenSearch URL}:9200/_cat/plugins?v | Select-String "nori"
# Mac, Wsl
curl -k -u {OpenSearch ID}:'{OpenSearch Password}' https://{OpenSearch URL}:9200/_cat/plugins?v | grep nori
- 최종 확인을 위해 대시보드에 접근하여, 플러그인 설치 정보를 확인합니다.
- 각 터미널에 맞는 명령어가 다르니 주의합니다.
Mac,Wsl환경에서는 특수문자가 포함될 경우 반드시''로 묶어주어야 합니다.
2. 명령어 결과
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 6447 100 6447 0 0 47890 0 --:--:-- --:--:-- --:--:-- 48111
abc-abc-01-d-47sj analysis-nori 2.18.0
abc-abc-01-d-47si analysis-nori 2.18.0
abc-abc-01-d-47sh analysis-nori 2.18.0
abc-abc-01-m-47sg analysis-nori 2.18.0
- 총 노드 개수만큼 노리 컴포넌트가 출력되면 성공적으로 설치된 것입니다.
6장 트러블슈팅
- (dry run 관련 내용 업데이트 예정)
반응형
'개발 노트' 카테고리의 다른 글
| React, FastAPI 환경의 K8s 배포 구조 (0) | 2026.02.19 |
|---|---|
| 서버에 Code Server 설치로 원격 개발 환경 구성 (0) | 2025.11.19 |
| Spring Boot 프로젝트 서버 배포: NginX와 HTTPS 설정까지 (1) | 2025.06.22 |
| 10년 이상 자동화 공장 개발자 1대1 상담 (4) | 2025.06.16 |
| 라즈베리파이 우분투 서버 설정 (0) | 2025.05.11 |