본문으로 건너뛰기
튜토리얼 시리즈 | OpenSearch 기반 AI 활용

OpenSearch MCP와 Claude를 활용한 AI 로그 분석

OpenSearch MCP와 Claude Desktop을 연동하여 자연어 기반 로그 분석을 수행하는 방법을 설명합니다.

기본 정보
  • 예상 소요 시간: 30분
  • 권장 운영 체제: macOS, Ubuntu
  • 사전 준비 사항
    • Advanced Managed Search 클러스터 생성
    • OpenSearch 마스터 사용자 계정 정보
    • Claude Desktop 설치
    • Python 및 uv 실행 환경

시나리오 소개​

운영 환경에서는 장애 원인 분석이나 로그 탐색을 위해 복잡한 쿼리(DQL, DSL)를 직접 작성해야 하는 경우가 많습니다.
이 튜토리얼에서는 Claude + MCP + OpenSearch를 결합하여 운영자가 복잡한 쿼리 없이 자연어로 로그를 분석할 수 있는 환경을 구축합니다.

작동 원리​

Claude Desktop은 MCP(Model Context Protocol) 를 통해 로컬 환경에 설치된 OpenSearch MCP 서버를 실행합니다. 사용자가 질문을 하면 MCP 서버가 OpenSearch API를 호출하여 필요한 데이터를 조회하고, 그 결과를 Claude 모델로 전달하여 최종적으로 운영자에게 분석된 답변을 제공합니다.

주요 활용 시나리오​

  • 자연어 로그 검색: "어제 오후 2시부터 4시 사이의 인증 관련 로그 보여줘"와 같은 직관적인 질의
  • 장애 원인 분석: 에러 발생 원인 요약 및 반복되는 장애 패턴 분석
  • 실시간 트렌드 파악: 최근 로그 데이터를 바탕으로 한 서비스 상태 질의응답
  • 생산성 향상: 운영자가 DSL 쿼리를 직접 작성하지 않아도 되는 AI 기반 분석 환경 제공

학습 내용​

  • Claude Desktop에 OpenSearch MCP 서버 연동 및 설정
  • MCP 도구를 활용한 OpenSearch 인덱스 데이터 조회
  • 자연어 기반 로그 분석 및 인사이트 도출

시작하기 전에​

이 튜토리얼을 진행하기 앞서, 먼저 클러스터 생성 및 관리를 참고하여 Advanced Managed Search 클러스터를 생성해 주세요. 클러스터 생성 시 입력한 마스터 사용자 계정(ID/PW) 정보도 아래에서 사용됩니다.

정보

Advanced Managed Search에서 제공하는 OpenSearch 및 OpenSearch Dashboards URL은 VPC 내부 네트워크에서만 접근 가능한 Private IP 기반 엔드포인트입니다.

따라서 Claude Desktop이 실행되는 로컬 환경에서 사용하려면, 먼저 nginx 설치 및 설정 방법을 참고하여 Public 네트워크에 접근 가능한 VM 인스턴스에 nginx 프록시를 구성한 뒤, nginx 서버 주소로 OpenSearch API 호출이 가능한지 확인해야 합니다.

시작하기​

Step 1. Claude Desktop 설치​

아래 링크에서 운영 체제에 맞는 Claude Desktop을 설치합니다. 설치가 완료되면 Claude Desktop을 실행해 주세요.

Step 2. OpenSearch MCP Server 설치​

Claude와 OpenSearch를 연결하기 위한 MCP 서버를 설치합니다.

OpenSearch MCP Server는 Python 기반으로 제공됩니다.

pip install uv

설치 후 uvx 경로를 확인합니다.

which uvx

이 경로는 이후 Claude 설정에서 사용됩니다.

Step 3. Claude Desktop에 MCP 서버 설정​

  1. Claude Desktop에서 설정 화면으로 이동: Claude 메뉴 > 설정 > 개발자 > 구성 편집

  2. claude_desktop_config.json 수정 아래 예시와 같이 MCP 서버 설정을 추가합니다.

    {
    "mcpServers": {
    "opensearch-mcp-server": {
    "command": "${WHICH_UVX_PATH}",
    "args": ["opensearch-mcp-server-py"],
    "env": {
    "OPENSEARCH_URL": "http://${NGINX_PROXY_ENDPOINT}",
    "OPENSEARCH_USERNAME": "${MASTER_USERNAME}",
    "OPENSEARCH_PASSWORD": "${MASTER_PASSWORD}"
    }
    }
    }
    }
    환경변수설명
    WHICH_UVX_PATH🖌︎uvx 설치 경로
    NGINX_PROXY_ENDPOINT🖌︎사전 준비 단계의 nginx 가이드를 통해 구성한 프록시 엔드포인트, 예: :8080
    MASTER_USERNAME🖌︎마스터 사용자 ID
    MASTER_PASSWORD🖌︎마스터 사용자 비밀번호

Step 4. Claude 재실행 및 연결 확인​

Claude Desktop을 완전히 종료한 뒤 다시 실행합니다. 이후 Claude에게 다음과 같이 질문해 보세요.

최근 10분간 에러 로그를 요약해줘

OpenSearch MCP 서버를 통해 로그가 조회되고, Claude가 이를 분석하여 응답하면 정상적으로 연동된 것입니다.

활용 예시​

다음과 같은 질문을 통해 로그 분석을 수행할 수 있습니다.

  • 최근 1시간 동안 가장 많이 발생한 에러는 무엇인가요?
  • 특정 서비스에서 500 에러가 발생한 원인을 요약해 주세요.
  • 오늘 발생한 에러 로그의 공통 패턴을 알려줘.
  • 특정 키워드가 포함된 로그를 기반으로 장애 원인을 분석해줘.