카테고리 없음

OpenSearch 구성 방법 및 설정 가이드 | 검색 및 로그 분석 시스템

idea9329 2025. 2. 21. 09:35
반응형

 

OpenSearch란?

OpenSearch는 AWS에서 Elasticsearch 오픈소스 버전을 기반으로 개발한 분산 검색 및 로그 분석 엔진입니다. 검색, 데이터 분석, 시각화 및 보안 기능을 제공하며, 기업의 데이터 인사이트 및 검색 성능 최적화에 활용됩니다.

 OpenSearch 주요 특징

  • 검색 기능: 대규모 텍스트 데이터에서 빠른 검색 가능
  • 로그 및 모니터링 분석: 실시간 로그 수집 및 대시보드 제공
  • 보안 강화: 기본적으로 보안 및 인증 기능 포함
  • Elasticsearch API 호환: 기존 Elasticsearch API와 호환되어 쉽게 마이그레이션 가능
  • Kibana 대체 OpenSearch Dashboards 제공

1. OpenSearch 아키텍처 및 주요 구성 요소

OpenSearch는 다음과 같은 주요 컴포넌트로 구성됩니다.

구성 요소역할

OpenSearch Node (클러스터 구성 가능) 데이터 저장 및 검색을 수행
OpenSearch Dashboards 데이터 시각화 및 대시보드 제공 (Kibana 대체)
Index (색인) 데이터 저장 및 검색을 위한 구조
Shard (샤드) 색인을 분산하여 성능 최적화
Replica (복제본) 고가용성을 위한 데이터 백업

2. OpenSearch 설치 및 실행 방법

OpenSearch는 Docker, Linux 패키지, AWS 서비스 등 다양한 방법으로 설치할 수 있습니다.

1) Docker를 이용한 OpenSearch 설치 및 실행

가장 간편한 방법은 Docker를 이용하는 것입니다.

① OpenSearch 및 OpenSearch Dashboards 컨테이너 실행

docker network create opensearch-net

docker run -d --name opensearch-node1 --net opensearch-net -p 9200:9200 -p 9600:9600 \
  -e "discovery.type=single-node" \
  -e "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" \
  opensearchproject/opensearch:latest

docker run -d --name opensearch-dashboards --net opensearch-net -p 5601:5601 \
  -e "OPENSEARCH_HOSTS=[\"http://opensearch-node1:9200\"]" \
  opensearchproject/opensearch-dashboards:latest

② OpenSearch 상태 확인

curl -X GET "http://localhost:9200/_cluster/health?pretty"
  • 정상적으로 실행되면 "status": "green"이 출력됩니다.

③ OpenSearch Dashboards 접속

  • 웹 브라우저에서 http://localhost:5601 접속 → OpenSearch Dashboards 실행 확인

2) Linux 환경에서 OpenSearch 직접 설치

① OpenSearch 다운로드 및 설치

wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.14.0/opensearch-2.14.0-linux-x64.tar.gz
tar -xvzf opensearch-2.14.0-linux-x64.tar.gz
cd opensearch-2.14.0

② OpenSearch 실행

./opensearch-tar-install.sh
  • 기본적으로 9200 포트에서 실행됩니다.

③ 보안 인증 비활성화 후 실행 (테스트용)

./bin/opensearch -E "discovery.type=single-node" -E "plugins.security.disabled=true"

④ OpenSearch Dashboards 설치 및 실행

wget https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.14.0/opensearch-dashboards-2.14.0-linux-x64.tar.gz
tar -xvzf opensearch-dashboards-2.14.0-linux-x64.tar.gz
cd opensearch-dashboards-2.14.0
./bin/opensearch-dashboards
  • http://localhost:5601에서 접속하여 데이터 시각화 가능

3. OpenSearch 주요 설정 및 구성

1) OpenSearch 설정 파일 (config/opensearch.yml)

cluster.name: my-opensearch-cluster
node.name: node-1
network.host: 0.0.0.0
discovery.type: single-node
bootstrap.memory_lock: true
plugins.security.disabled: true  # 보안 기능 비활성화 (테스트용)

2) OpenSearch Dashboards 설정 (config/opensearch_dashboards.yml)

server.host: "0.0.0.0"
opensearch.hosts: ["http://localhost:9200"]

4. OpenSearch 인덱스 및 데이터 관리

1) OpenSearch 인덱스 생성

curl -X PUT "http://localhost:9200/my-index?pretty"

2) 데이터 입력

curl -X POST "http://localhost:9200/my-index/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "title": "OpenSearch 사용법",
  "content": "OpenSearch는 검색과 로그 분석을 위한 강력한 도구입니다."
}'

3) 데이터 검색

curl -X GET "http://localhost:9200/my-index/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "title": "OpenSearch"
    }
  }
}'

5. OpenSearch 확장 및 활용

 클러스터 구성

  • OpenSearch는 여러 개의 노드를 묶어 클러스터를 구성할 수 있습니다.
  • 클러스터 구성 예제 (config/opensearch.yml 설정 변경)
cluster.name: my-cluster
node.name: node-1
network.host: 0.0.0.0
discovery.seed_hosts: ["node-2", "node-3"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

 OpenSearch와 Logstash 연동 (로그 수집)

  • Logstash를 활용하면 서버 로그를 OpenSearch에 자동 저장할 수 있습니다.
  • logstash.conf 설정 예제:
input {
  file {
    path => "/var/log/syslog"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{DATA:message}" }
  }
}

output {
  opensearch {
    hosts => ["http://localhost:9200"]
    index => "logstash-logs"
  }
}

 Kubernetes 환경에서 OpenSearch 배포

  • Helm Chart를 사용하여 Kubernetes에서 OpenSearch를 쉽게 배포할 수 있습니다.
helm repo add opensearch https://opensearch-project.github.io/helm-charts/
helm install my-opensearch opensearch/opensearch

6. OpenSearch 사용 시 장점

 무료 오픈소스 검색 엔진 – Elasticsearch 대비 라이선스 문제 없음
 빠른 검색 성능 – 대규모 데이터에서도 빠른 검색 가능
 로그 분석 및 모니터링 가능 – ELK Stack 대체 가능
 보안 기능 내장 – 기본 인증 및 역할 기반 접근 제어(RBAC) 지원
 확장성 우수 – 클러스터링 및 샤딩을 통해 대규모 데이터 처리 가능


7. 결론

OpenSearch는 검색, 로그 분석, 데이터 시각화를 위한 강력한 오픈소스 솔루션입니다. Docker, Linux, Kubernetes 등 다양한 환경에서 쉽게 배포할 수 있으며, Elasticsearch API와 호환되어 기존 검색 시스템을 손쉽게 마이그레이션할 수 있습니다.

👉 빠르고 안정적인 검색 엔진이 필요하다면 OpenSearch를 활용하세요! 🚀

반응형