Skip to content

Feature and Usage

pjini edited this page Jul 7, 2022 · 26 revisions

[CB-Dragonfly 활용 개요]


Dragonfly 사용자 시나리오


그림에서 보는 바와 같이,
CB-Dragonfly를 이용하여 멀티클라우드를 모니터링하는 순서는 다음과 같다.
    1. 모니터링 환경 설정
    2. CB-Dragonfly 구동
    3. 멀티클라우드 VM에 모니터링 에이전트 설치
    4. 모니터링 알람 임계치 설정
    5. 멀티클라우드 VM 모니터링 실시

CB-Dragonfly가 제공하는 주요 기능은 다음과 같고, 세부 내용은 아래와 같다. 
    1. 모니터링 에이전트 자동 설치(Multi-Cloud Monitoring Agent Auto-Installation)
    2. 멀티클라우드 VM 모니터링 정보 조회(Multi-Cloud VM Monitoring Information Look-up)
    3. 멀티클라우드 모니터링 이상치 메트릭 알림(Multi-Cloud Monitoring Outlier Metric Alert)

1. 모니터링 에이전트 자동 설치(Multi-Cloud Monitoring Agent Auto-Installation)

  • 대상 클라우드(=CSP) VM에 모니터링 에이전트 자동 설치를 위하여 필요한 메타 데이터 정보를 입력받는다.
  • 메타 데이터 정보는 REST API를 통해 받으며 주요 정보는 다음과 같다
    • MCIS 정보: CSP 타입, MCIS ID, 네임스페이스 ID, VM ID, IP
    • VM 접속 정보: VM의 SSH 접속 계정, SSH 접근 키, 접속 포트
  • API 활용 예시
     curl --location -g --request POST 'http://localhost:9090/dragonfly/agent/install' \
     --form 'mcis_id="test_mcis_id"' \
     --form 'vm_id="test_vm_id"' \
     --form 'public_ip="0.0.0.0"' \
     --form 'user_name="user_name"' \
     --form 'ssh_key="{{Hash Key}}' \
     --form 'cspType="AWS"'
    
  • 인터페이스 규격 및 예시

2. 멀티클라우드 VM 모니터링 정보 조회(Multi-Cloud VM Monitoring Metric Look-up)

  • CB-Dragonfly는 모니터링 메트릭, CB-Dragonfly 환경 및 알림 설정 정보를 API 기반으로 조회할 수 있다.

(1) 모니터링 메트릭 조회

  • 모니터링 메트릭은 VM 에이전트로부터 다음과 같은 모니터링 메트릭들을 수집한다.
    • VM 모니터링 메트릭: Cpu, Mem, Disk I/O 등 52가지 메트릭
    • MCIS 모니터링 메트릭: Cpu, Mem, Database, Network 등 21가지 메트릭
    • MCK8S 모니터링 메트릭: Node, Pod 등 16가지 메트릭
    • 멀티클라우드 모니터링 메트릭 종류
  • VM 모니터링 메트릭 조회 기능은 사용자에게 모니터링 메트릭 또는 메트릭들의 평균, 최소, 최대 값 등의 정보를 제공한다.
    • 모니터링 메트릭 조회 시 주요 입력 정보는 다음과 같다.
      • 네임스페이스 이름: 예시) test_namespace
      • MCIS 이름: 예시) test_mcis_id
      • VM 이름: 예시) test_vm_id
      • VM 주소 정보: 예시) 0.0.0.0
      • 조회하고자 하는 메트릭 이름: 예시) cpu
    • API 활용 예시: 모니터링 메트릭 조회
      curl --location -g --request GET 'http://localhost:9090/dragonfly/ns/test_namespace/mcis/test_mcis_id/vm/test_vm_id/agent_ip/0.0.0.0/metric/cpu'
      
    • 모니터링 메트릭 통계치 조회 시 주요 입력 정보는 다음과 같다.
      • 네임스페이스 이름: 예시) test_namespace
      • MCIS 이름: 예시) test_mcis_id
      • VM 이름: 예시) test_vm_id
      • 조회하고자 하는 메트릭 이름: 예시) cpu
      • 모니터링 단위: 예시) min
      • 메트릭 통계 기준: 예시) avg
      • 모니터링 조회 범위: 예시) 5m
    • API 활용 예시: 모니터링 메트릭 통계치 조회
      curl --location -g --request GET 'http://localhost:9090/dragonfly/ns/test_namespace/mcis/test_mcis_id/vm/test_vm_id/metric/cpu/info?periodType=min&statisticsCriteria=avg&duration=5m'
      
  • MCIS 모니터링 메트릭 조회 기능은 사용자에게 MCIS 모니터링 메트릭 값을 제공한다.
  • 조회 시 주요 입력 정보는 다음과 같다.
    • 네임스페이스 이름: 예시) test_namespace
    • MCIS 이름: 예시) test_mcis_id
    • VM 이름: 예시) test_vm_id
    • VM 주소 정보: 예시) 0.0.0.0
    • 조회하고자 하는 메트릭 이름: 예시) cpu
  • API 활용 예시
    curl --location -g --request GET 'http://localhost:9090/dragonfly/ns/test_namespace/mcis/test_mcis_id/vm/test_vm_id/agent_ip/0.0.0.0/metric/cpu/mcis-monitoring-info'
    
  • MCK8S 모니터링 메트릭 조회 기능은 사용자에게 MCK8S 모니터링 메트릭 값을 제공한다.
  • 조회 시 주요 입력 정보는 다음과 같다.
    • 네임스페이스 이름: 예시) test_ns
    • MCK8S 이름: 예시) test_mck8s
    • 조회하고자 하는 메트릭 이름: 예시) node, pod
    • 조회하고자 하는 메트릭 분류 기준: 예시) cluster, node, namespace, pod
  • API 활용 예시
    curl --location --request GET 'http://13.125.246.184:30090/dragonfly/ns/test_ns/mck8s/test_mck8s/metric/node/info?groupBy=node&node=test_node&namespace=test_ns&pod=test_pod&periodType=m&statisticsCriteria=last&duration=5m'
    

(2) 모니터링 알림 설정 조회

  • 모니터링 알림 조회 기능은 사용자에게 모니터링 알람 이벤트 및 이벤트 핸들러 정보를 제공한다.
    • API 활용 예시
      curl --location -g --request GET 'http://localhost:9090/dragonfly/alert/task/cpualert/events?level=warning'
      
    • 알람 이벤트 핸들러 조회 API 활용 예시
      curl --location --request GET 'http://localhost:9090/dragonfly/alert/eventhandlers?eventType=slack'
      

(3) 모니터링 설정 정보 조회

  • 모니터링 설정 정보 조회 기능은 사용자에게 CB-Dragonfly의 모니터링 설정 정보를 제공한다.
    • API 활용 예시
      curl --location -g --request GET 'http://localhost:9090/dragonfly/config'
      
  • 인터페이스 규격 및 예시

3. 멀티클라우드 모니터링 이상치 메트릭 알림(Multi-Cloud Monitoring Outlier Metric Alert)

  • 멀티클라우드 VM 모니터링 메트릭 중 이상치가 감지될 경우 사용자에게 알림을 제공한다.
  • 알림을 위해서는 이벤트 핸들러 및 알람 태스크를 API 요청 기반으로 생성해야한다.

(1) 이벤트 핸들러

  • 이벤트 핸들러는 알림의 종류 설정을 담당하며 Slack 및 SMTP를 제공한다.
  • Slack 이벤트 핸들러 생성을 위한 주요 API 입력 정보는 다음과 같다.
    • 알림 발생 타입: 예시) slack
    • 이밴트 핸들러 이름: 예시) slackHandler
    • Slack hook url: 예시) https://hooks.slack.com/services/{{Token value}}
    • Slack 채널 이름: 예시) #kapacitor-alert
  • API 활용 예시
    curl --location --request POST 'http://localhost:9090/dragonfly/alert/eventhandler' \
    --form 'type="slack"' \
    --form 'name="slackHandler"' \
    --form 'url="https://hooks.slack.com/services/{{Tokenvalue}}"' \
    --form 'channel="#kapacitor-alert"'
    

(2) 알림 태스크

  • 이벤트 태스크는 이상치가 발생하는지 워치할 메트릭의 종류와 알람 임계치 설정을 담당한다.
  • 이벤트 태스크는 warning, critical의 2종 메트릭을 지원한다.
  • 워치하고 있는 메트릭의 값이 설정된 시간 범위 내에 여러번 알람 임계치 설정 값을 초과할 경우 사용자에게 알람을 제공한다.
  • 알람 태스크 생성을 위한 주요 입력 정보는 다음과 같다.
    • 알람 태스크 이름: ex) cpualert
    • 워치할 메트릭 타입: ex) cpu
    • 알람 임계치 타겟 유형: ex) VM
    • 알람 임계치 타겟 id: ex) test_vm_id
    • 알람 주기: ex) 5m
    • 알람 메트릭: ex) usage_idle
    • 알람 임계치 정규식: ex) equalgreater
    • 알람 임계치 값: ex) 10
    • warning 알람 임계치 횟수: ex) 1
    • critical 알람 임계치 횟수: ex) 4
    • 알람 이벤트 유형: ex) slack
    • 알람 이벤트 핸들러 이름: ex) slackHandler
    • 이벤트 핸들러 메세지: ex) cpualert
  • API 활용 예시
    curl --location --request POST 'http://localhost:9090/dragonfly/alert/task' \
    --form 'name="cpualert"' \
    --form 'measurement="cpu"' \
    --form 'target_type="VM"' \
    --form 'target_id="test_vm"' \
    --form 'event_duration="5m"' \
    --form 'metric="usage_idle"' \
    --form 'alert_math_expression="equalgreater"' \
    --form 'alert_threshold="10"' \
    --form 'warn_event_cnt="1"' \
    --form 'critic_event_cnt="4"' \
    --form 'alert_event_type="slack"' \
    --form 'alert_event_name="slackHandler"' \
    --form 'alert_event_message="cpualert"'
    
Clone this wiki locally