본문으로 건너뛰기

Monitoring Flow를 활용한 하둡 클러스터 모니터링

카카오클라우드 Monitoring Flow를 이용하여 Hadoop Eco 클러스터의 노드 상태와 연결 여부를 모니터링하는 방법을 설명합니다.

기본 정보
  • 예상 소요 시간: 30분
  • 사용자 환경
    • 권장 운영 체제: Ubuntu
    • Region: kr-central-2
  • 사전 준비 사항

시나리오 소개

이 시나리오에서는 Monitoring Flow 서비스의 다양한 기능을 사용하여 하둡 클러스터의 노드 상태를 모니터링하는 방법을 설명합니다. 주요 단계는 다음과 같습니다.

  • 카카오클라우드 Hadoop Eco를 사용하여 하둡 클러스터를 생성
  • 플로우 커넥션을 생성하여 API 서버가 속한 서브넷 채널을 연결
  • Monitoring Flow에서 시나리오를 생성하여 하둡 클러스터 노드의 모니터링 진행
  • Alert Center 연동을 통해 모니터링 결과에 대한 알림 수신

사전 작업

네트워크 환경 구축

Monitoring Flow 서비스와 하둡 클러스터간 통신을 위해 네트워크 환경을 설정합니다. 아래의 항목에 따라 VPC와 서브넷을 생성합니다.

VPC 및 서브넷: tutorial
  1. 카카오클라우드 콘솔 > Beyond Networking Service > VPC 메뉴로 이동합니다.

  2. [+ VPC 생성] 버튼을 클릭한 후, 다음과 같이 설정합니다.

    구분항목설정/입력값
    VPC 정보VPC 이름tutorial
    VPC IP CIDR 블록10.0.0.0/16
    Availability Zone가용 영역 개수1
    첫 번째 AZkr-central-2-a
    서브넷 설정가용 영역당 퍼블릭 서브넷 개수1
    kr-central-2-a

    퍼블릭 서브넷 IPv4 CIDR 블록: 10.0.0.0/20

  3. 하단에 생성되는 토폴로지를 확인 후, 이상이 없다면 [생성] 버튼을 클릭합니다.

    • 서브넷의 상태는 Pending Create > Pending Update > Active 순서로 변경됩니다. Active 상태가 가 되면 다음 단계로 진행할 수 있습니다.

작업 순서

하둡 클러스터를 Monitoring Flow로 모니터링하는 단계별 절차를 안내합니다.

Step 1. Hadoop Eco 클러스터 생성하기

Hadoop Eco 클러스터를 생성하여 Monitoring Flow로 모니터링할 환경을 구성합니다.

  1. 카카오클라우드 콘솔 > Analytics > Hadoop Eco > Cluster 메뉴로 이동합니다.

  2. 클러스터가 없다면, 클러스터 생성 문서를 참고하여 클러스터를 생성합니다.

    • VPC 설정 항목에서 플로우 커넥션에 연결할 VPC와 서브넷을 선택합니다.
    • 시큐리티 그룹 구성 항목에서 [새로운 시큐리티 그룹을 생성]을 선택합니다. Hadoop Eco를 위한 인바운드, 아웃바운드 규칙을 자동으로 설정되며, 생성된 시큐리티 그룹은 VPC > Security에서 확인할 수 있습니다.
  3. 생성된 클러스터의 정보를 확인합니다.

    • 클러스터 상태가 Running이 되면 정상적으로 생성된 것입니다.
    • Monitoring Flow 스텝 구성을 위해 필요한 클러스터 ID를 확인합니다.

    이미지 클러스터 상세

Step 2. 플로우 커넥션 생성하기

Monitoring Flow 서비스에서 클러스터에 접근할 수 있도록 플로우 커넥션을 생성합니다.

  1. 카카오클라우드 콘솔 > Management > Monitoring Flow > 플로우 커넥션 메뉴로 이동합니다.

  2. [플로우 커넥션 생성] 버튼을 클릭하여 생성 화면으로 이동합니다.

  3. VPC 선택 항목에서 보안 그룹에 등록된 활성화된 VPC를 선택합니다.

  4. VPC에 연결된 서브넷 중에서 플로우 커넥션에 연결할 서브넷을 선택합니다.

    이미지 플로우 커넥션 생성

Step 3. 시나리오 생성하기

Monitoring Flow에서 하둡 클러스터의 상태를 모니터링할 시나리오를 생성하고 실행 스케줄을 설정합니다.

  1. 카카오클라우드 콘솔 > Management > Monitoring Flow > 시나리오 메뉴로 이동합니다.

  2. [시나리오 생성] 버튼을 클릭하여 생성 화면으로 이동합니다.

  3. KakaoCloud VPC를 활용 옵션을 선택하여 카카오클라우드 내부 리소스에 접근하도록 설정합니다.

  4. 등록된 플로우 커넥션 중 하나를 선택합니다.

  5. 시나리오의 실행 스케줄을 설정합니다.

    이미지 시나리오 생성

Step 4. 시나리오 스텝 추가하기

Monitoring Flow에서 Default Variable, API, Set Variables, For, If 스텝을 사용해 모니터링 흐름를 구성합니다.

  1. 카카오클라우드 콘솔 > Management > Monitoring Flow > 시나리오 메뉴로 이동합니다.
  2. 시나리오 메뉴에서 생성한 시나리오의 이름을 클릭하고 세부 조건을 확인합니다.

1. Default Variable 관리

Default Variable는 시나리오에 필요한 기본 변수를 정의하는 단계로, 반복적으로 사용할 값을 정의합니다. Default Variable는 스텝을 생성하기 전에 먼저 설정되어야 합니다.

이 튜토리얼에서는 다음과 같이 Default Variable을 등록합니다.

  1. 선택한 시나리오의 상세 화면에서 우측 상단의 [시나리오 스텝 편집] 버튼을 클릭합니다.
  2. 우측 상단의 [Default Variable 관리] 버튼을 클릭하여, Default Variable을 등록해 주세요.
  3. 다음 테이블을 참고하여 각 항목을 설정합니다. 이 튜토리얼의 실습을 위해 아래 예시를 모두 입력하시기 바랍니다.
항목KeyTypeValue설명
1vm-ipstringvm-ip라는 변수는 특정 가상 머신의 IP 주소를 저장하는 데 사용
2vm-listJSON list[]
3vm-statusstring
4vm-is-masterstringfalsevm-is-master 변수를 초기값 false로 설정하여 기본 상태를 정의

이미지 Default Variable 관리

  1. 저장 후 [닫기] 버튼을 클릭합니다.

2. API-1

하둡 클러스터의 API 서버 상태를 확인하는 스텝을 추가합니다.

  1. 시나리오의 세부 정보 탭에서 [시나리오 스텝 추가] 버튼을 클릭합니다.
  2. 우측 패널의 새 스텝 설정 항목에서 스텝 유형으로 API로 설정합니다.
  3. 다음 표에 따라 항목을 입력합니다.
항목예시설명
유형APIAPI 선택
스텝 이름API-1스텝 이름
Expected code200서버가 정상적으로 동작하면 200 상태 코드가 반환되어야 하며, 이를 통해 서버의 가용성을 확인
MethodGETHTTP GET 요청을 통해 API 서버에 접근하여 상태를 확인
URLhttp://${Private-IP}API 접근 URL (클러스터 노드의 프라이빗 IP를 사용)

이미지 API 스텝 추가-1

  1. 필수 항목을 모두 입력한 후, 좌측 패널에서 다음 스텝 추가를 클릭합니다.

3. Set Variables

Set Variables 스텝은 기존 변수를 업데이트하거나 새로운 값을 설정하는 단계입니다. 이 단계에서는 API 응답 데이터를 활용하여 변수 값을 설정합니다.

  1. 시나리오 스텝 화면 우측 패널의 새 스텝 설정에서 스텝 유형으로 Set Variables를 선택합니다.
  2. 다음 표에 따라 항목을 입력합니다.
항목예시설명
유형Set VariablesSet Variables 선택
스텝 이름Variables-1스텝에 설정할 이름
Variable${vm-list}Default Variable에 저장된 목록 중 1개를 선택
Step API선택API-1상위 스텝에서 저장된 API 스텝을 선택
Step 요청/응답requestresponse,request 중 1개를 선택
Step 구성 요소bodyrequest, response 선택 값에 따라 parameters, headers, body를 선택
Keycontent상위에 선택한 요청/응답 결과의 값을 입력 또는 선택

이미지 Set Variables 스텝 추가

  1. 필수 항목을 모두 입력한 후, 좌측 패널에서 [하위 스텝 추가]를 클릭합니다.

4. For

For 스텝은 반복 작업을 수행하는 단계로, 변수 목록을 기반으로 각 항목에 대해 작업을 반복 실행할 수 있습니다. 이 단계에서는 For 스텝을 통해 클러스터 내 모든 노드에 대해 반복적으로 모니터링 작업을 수행합니다.

  1. 시나리오 스텝 화면 우측 패널의 새 스텝 설정에서 스텝 유형으로 For를 선택합니다.
  2. 다음 표에 따라 항목을 입력합니다.
항목예시 1예시 2예시 3설명
유형ForFor 선택
스텝 이름For-1스텝에 설정할 이름
Typeforeach반복 형식을 지정하며, count 또는 foreach를 사용
Base Variable${vm-list}반복할 변수 목록을 지정
- JSON 목록을 선택하여 목록 내 각 요소를 대상으로 반복 작업 실행
Marker Variable${vm-ip}${vm-status}${vm-is-master}반복 중 특정 요소를 참조할 때 사용할 변수
Marker Valuemarker.ipmarker.statusmarker.ismaster데이터를 참조할 위치 값
- 반복 중 매 단계마다 marker값이 갱신되며, 목록의 각 요소를 대상으로 작업을 수행

이미지 For 스텝 추가

  1. 필수 항목을 모두 입력한 후, 좌측 패널에서 [하위 스텝 추가]를 클릭합니다.
기본 정보

For 스텝과 If 스텝에는 반드시 하위 스텝을 추가해야 합니다.

이미지 For 스텝의 하위스텝을 안내하는 메시지

5. If

If 스텝은 특정 조건에 따라 작업을 수행할지 여부를 결정하는 단계입니다. 이 단계에서는 If 스텝의 조건문을 사용하여 특정 노드의 상태가 비정상적일 경우 알림을 보냅니다.

  1. 시나리오 스텝 화면 우측 패널의 새 스텝 설정에서 스텝 유형으로 If를 선택합니다.
  2. 다음 표에 따라 항목을 입력합니다.
항목예시 1예시 2설명
유형If
Logicaland조건 결합 방식으로, 여러 조건을 결합할 때 and 또는 or을 선택
Left Operand${vm-status}${vm-is-master}연산을 위한 대상 조건 입력
- 변수를 입력
Comparison====비교 연산자 선택
Right OperandRunningfalse비교할 기준값 입력
- 대/소문자를 확인하여 정확한 값을 입력

이미지 API 스텝 추가-2

  1. 필수 항목을 모두 입력한 후, 좌측 패널에서 [하위 스텝 추가]를 클릭합니다.

6. API-2

API 서버 상태를 확인하는 API 스텝을 추가합니다.

  1. 시나리오의 세부 정보 탭에서 [시나리오 스텝 추가] 버튼을 클릭합니다.
  2. 우측 패널의 새 스텝 설정 항목에서 스텝 유형으로 API로 설정합니다.
  3. 다음 표에 따라 항목을 입력합니다.
항목예시설명
유형APIAPI 선택
스텝 이름API-2스텝에 설정할 이름
Expected code200서버가 정상적으로 동작하면 200 상태 코드가 반환되어야 하며, 이를 통해 서버의 가용성을 확인
MethodGETHTTP GET 요청을 통해 API 서버에 접근하여 상태를 확인
URLhttp://${vm-ip}:7001/v1/agent/healthAPI 접근 URL
  • Note: ${vm-ip}는 API 서버의 IP 주소를 나타내며, 설정하려는 서버의 실제 IP 주소로 교체해 입력해야 합니다.

이미지 플로우 커넥션 생성

  1. 필수 항목을 모두 입력한 후, 우측 상단의 [테스트] 버튼을 클릭하여 테스트를 진행합니다.

Step 5. 시나리오 테스트하기

생성한 시나리오의 테스트 실행 결과를 확인합니다. Step 4에서 생성한 시나리오의 테스트 시, 설정한 URL에서 200 응답이 반환되면 API 서버가 정상 작동하고 있음을 의미합니다. 예상하지 못한 응답 코드가 반환되면 서버 상태에 문제가 있음을 나타내며, 이를 통해 오류를 진단할 수 있습니다.

  1. 테스트가 정상적으로 실행되었다면 [실행 결과] 아래에 성공 표시가 나타납니다.

이미지 테스트 성공 결과

  1. 예상과 다른 응답 코드가 반환되는 경우 실패로 표시되며, 서버 상태에 문제가 있을 수 있음을 나타냅니다. 이때, 우측 패널 하단에서 오류 상세 정보를 확인하여 문제를 해결합니다.

    주의
    • 비활성화된 인스턴스에 접근 시 호출 실패 오류가 발생할 수 있으니, 올바른 IP 주소를 입력하세요.
  2. 테스트 화면을 닫은 후, 시나리오 스텝 편집 화면에서 시나리오를 저장합니다. 저장된 시나리오는 설정된 스케줄에 따라 자동으로 실행됩니다.

Step 6. 실행 결과 확인하기

시나리오의 실행 결과와 시간을 확인하여, 정상적으로 작동 여부를 평가합니다. 상세 정보를 통해 시나리오가 오류 없이 완료되었는지 확인할 수 있습니다.

  1. 카카오클라우드 콘솔에서 Management > Monitoring Flow > 시나리오 메뉴를 선택합니다.
  2. 확인할 시나리오를 선택하고, 상세 화면에서 실행 결과 탭을 클릭합니다.

이미지 시나리오 실행 결과 목록

  1. 실행 결과 목록에서 이벤트를 클릭하여 상세 결과를 확인합니다.

이미지 시나리오 실행 결과 상세

Step 7. Alert Center 알림 정책 만들기

Alert Center 알림 정책을 설정하여 Monitoring Flow의 실행 결과에 따른 알림을 받을 수 있습니다. 아래 예시에서는 시나리오의 성공/실패 여부에 따라 알림을 받을 수 있도록 메트릭 조건을 설정합니다.

  1. 카카오클라우드 콘솔에서 Management > Alert Center> 알림 정책 메뉴를 선택합니다. 자세한 설명은 알림 정책 생성 문서를 참고하시기 바랍니다.

  2. 다음 표를 참고하여 알림 조건을 설정합니다.

항목설정 내용
조건 유형메트릭
서비스Monitoring Flow
조건 설정메트릭 항목으로 성공/실패 알림을 받을 수 있도록 설정
- Scenario Success CountScenario Fail Count를 시나리오에 각각 설정 시, 모든 메트릭 알림을 받을 수 있음
- 실패 시에만 알림을 받으려면 Scenario Fail Count만 설정
자원 항목알람을 받으려는 대상의 시나리오 선택
임계치1 count 이상
지속 시간1 분
  1. 하단의 [다음] 버튼을 클릭하여 알림 정책 생성을 완료합니다.

이미지 알림 정책 생성

  1. 설정한 알림 정책에 따라 Monitoring Flow 시나리오 실행 결과(성공 또는 실패)에 대한 알림을 실시간으로 수신할 수 있으며, 시스템의 상태 변화를 빠르게 인지하고 대응할 수 있습니다.