Cloud-Barista 제6차 오픈 컨퍼런스 : 오픈소스로 만들어가는 멀티클라우드 생태계(Cloud-Barista)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 대규모 통합 모니터링 (CB-Dragonfly)
1. 멀티클라우드, “새로운 생태계를 향한 클라우드 비긴어게인“
클라우드바리스타 커뮤니티 제5차 컨퍼런스
CLOUD
BARISTA
아포가토(Affogato) 한잔 어떠세요 ?
멀티클라우드 대규모 통합 모니터링
박 재 호
[세션] CB-Dragonfly:
CB-Dragonfly 프레임워크 맴버
2. 이번 세션은 …
1
멀티클라우드 서비스 개방형 인터페이스
멀티클라우드 인프라 연동
프레임워크
멀티클라우드 애플리케이션
통합관리 프레임워크
멀티클라우드 인프라 서비스
통합 관리 프레임워크
멀티클라우드
통합
모니터링
프레임워크
멀티클라우드 서비스 공통 플랫폼
응용/도메인/기관 특화 SW
CB-Dragonfly
CLOUD
BARISTA
3. 목 차
CB-Dragonfly 프레임워크 기술 개요
I
CB-Dragonfly 프레임워크 주요 기능
II
CB-Dragonfly 프레임워크 로드맵
IV
CB-Dragonfly 프레임워크 개발 현황 (Affogato)
III
CB-Dragonfly 프레임워크 기술 시연
V
2
4. CB-Dragonfly 프레임워크 기술 개요
*CSP
*CSP: Cloud Service Provider
VM VM VM
메트릭
메트릭
메트릭
CSP 별 모니터링 메트릭 제공
• 이종 클라우드 연동 환경에서의 대규모 인프라 서비스 및 애플리케이션 통합 모니터링 기능을 제공하는
멀티 클라우드 통합 모니터링 프레임워크
다양한 이종 환경의 유연한 모니터링
멀티 클라우드 특화 모니터링
대규모 멀티 클라우드 서비스 모니터링
안정적인 대규모 멀티 클라우드 모니터링을
위한 메시지 큐 기반 모니터링 트래픽
부하분산 및 모니터링 데이터 처리 기능 제공
멀티 클라우드 인프라 서비스 기반
온디맨드 모니터링, MCIS, MCKS, MC-App 등
특화 모니터링 발굴 및 수집/제공
에이전트 기반 VM 환경, 컨테이너 환경 등
다양한 환경에서 모니터링 기능 제공
As-Is
To-Be
3
5. CB-Dragonfly 프레임워크 사용자 관점 활용 시나리오
모니터링
에이전트 설치
모니터링 알람
임계치 설정
모니터링
데이터 확인
REST API
& GRPC 활용 CLI 지원
API 기반
에이전트 설치
및 알람 설정
<7>
<1>
<2>
<4>
<6>
모니터링
알람 확인
<5>
모니터링
환경 변수 설정
<3>
Config 파일 기반
모니터링 환경 설정
CB-Dragonfly
기능 활용
모니터링 방법(Push, Pull)
모니터링 정책(Agent, CSP)
모니터링 환경
(Max host, Collect interval 등)
모니터링 에이전트
자동 설치
알람 이벤트 핸들러 등록
알람 태스크 생성
설정 환경 조회
콜렉터 동작 제어
메트릭 정보 조회
총 73개의 모니터링
메트릭 데이터 확인
REST API 및 GRPC 기반
CB-dragonfly 기능 동작
알람 태스크 기반 알람 진단
Slack & SMTP 알람 발생
• CB-Dragonfly 프레임워크 모니터링 기능 활용 시나리오
4
6. CB-Dragonfly 프레임워크 수집 방식 및 모니터링 대상
• CB-Dragonfly 프레임워크 모니터링 데이터 수집 방식
• Agent PUSH, Server PULL, On-Demand 등 3종 모니터링 수집 방식 지원
• CB-Dragonfly 프레임워크 모니터링 대상
• 모니터링 에이전트 기반 VM 모니터링
• CPU, Memory, Disk I/O 등 모니터링 메트릭 제공
• 모니터링 에이전트 기반 MCIS 모니터링
• CPU Freq, Network Packets 등 성능 메트릭 제공
• MCKS, MC-App 모니터링
MCIS
VM
MCKS
VM
모니터링
에이전트
MC-
App
MC-
App
MC-
App
... ...
MCIS 모니터링
MCKS 모니터링
MC-App 모니터링
모니터링 대상
모니터링 데이터
수집 방식
PUSH 방식
PULL 방식
On-Demand 방식
VM 모니터링
MCIS
PUSH PULL On-Demand
5
7. • PUSH & PULL 모니터링 비교도
모니터링 PULL & PUSH 메커니즘
PULL 방식 (서버 PULL)
PUSH 방식 (에이전트 PUSH)
모니터링 서버
에이전트 에이전트 에이전트
모니터링 서버
에이전트 에이전트 에이전트
• 에이전트에서 모니터링 서버로 데이터 전송
• 최소한의 설정(서버 주소, 수집 주기 등)으로 에이전트
구동 => 대규모 모니터링 환경에 적합
• 모니터링 서버에서 에이전트로 데이터 전송
• 서버 접속 허용을 위한 자격 증명, 방화벽 설정 필요
6
8. CB-Dragonfly 프레임워크 구성도
CB-Dragonfly 구성도
모니터링 에이전트 모니터링 에이전트 모니터링 에이전트 ...
에이전트 메타데이터
관리 기능
통합 모니터링 프레임워크 API
메타 데이터 관리
CB-Dragonfly
모니터링 제어 기능
데이터 수집기 스케줄링
모니터링 정책/알람 기능
모니터링 알람
모니터링 데이터 수집 기능
모니터링 콜렉터
(에이전트 PUSH)
모니터링 콜러
(서버 PULL)
모니터링 데이터 수집 및 저장
(MCIS, MCKS, MC-App … )
메시지 큐
모니터링 데이터 진단
모니터링 데이터 정책 설정
CB-Dragonfly 기본 기능
모니터링 부하분산 처리 기능
모니터링 에이전트 메타데이터
관리 기능
Push & Pull 방식 모니터링
모니터링 알람 진단 및 제어 기능
CB-Ladybug
CB-Tumblebug
CB-Dragonfly
CB-WaterStrider
InfluxDB &
CB-Store
에이전트 기반
모니터링 메트릭 수집
개방형 API
메트릭 처리 및 저장 기능
7
9. 모니터링 콜렉터
CB-Dragonfly 프레임워크 세부 구조도
CB-Dragonfly
통합 모니터링 프레임워크 API
모니터링 정책/알림
매니저
모니터링 알람
모니터링 데이터
진단 모듈
모니터링 데이터
정책 관리 모듈
에이전트
메타데이터 매니저
에이전트 메타데이터
관리 모듈
모니터링 콜러
매니저
콜러 제어 모듈
모니터링 콜렉터
매니저
모니터링 에이전트
PULL-LISTENER
PULL 모듈 온디맨드 모듈 PUSH 모듈
통합 모니터링 수집 모듈
모니터링 지표 ...
...
1
2
4
5
7
4
1
3
7 8
1 2
스토리지
CB-Store
InfluxDB
모니터링 콜러
5
6
2
6
3
8
8
11. CB-Dragonfly 프레임워크 주요 기능
1
7
6
5
4
3
2
Push & Pull 방식 모니터링
개방형 API
모니터링 알람 진단 및 제어 기능
모니터링 에이전트 메타데이터 관리 기능
메트릭 처리 및 저장 기능
에이전트 기반 모니터링 메트릭 수집
모니터링 부하분산 처리 기능
10
13. 모니터링 부하분산 처리 기능
멀티 클라우드
통합 모니터링 프레임워크
모니터링 정책 기반 유연한 콜렉터 Scale in / out
Stable
콜렉터
콜렉터
콜렉터
에이전트
• 대규모 환경 모니터링을 위한 콜렉터 확장 기능 지원
• 메시지 큐 기반 메트릭 데이터 수집, 모니터링 정책에 따른 유연한 콜렉터 Scale in/out
12
14. • Hetero-IaaS 환경의 통합 모니터링 메트릭 수집 기능
• CSP Vendor Lock-in 없는 통합 수집 모듈 기반 모니터링 메트릭 수집
• VM 모니터링 메트릭, MCIS 모니터링 메트릭 제공
• 사용자 설정 기반의 다양한 모니터링 메커니즘 지원
• Listener 모듈
• 서버 요청에 대한 REST API 기반 모니터링 메트릭 전달
• 유동적인 모니터링 메커니즘 변경 기능 제공
• Push 모듈
• AMQP 기반 주기적인 모니터링 메트릭 전달
• 에이전트 상태 데이터 전달
• 통합 수집 모듈
• 사용자 설정 정보 확인
• VM 모니터링 메트릭 수집
• MCIS 모니터링 메트릭 수집
에이전트 기반 모니터링 메트릭 수집 기능 (1/2)
<CB-Dragonfly 모니터링 에이전트 구조> 13
15. 에이전트 기반 모니터링 메트릭 수집 기능 (2/2)
• 모니터링 메트릭
• Affogato 버전 기준 총 73개의 모니터링 메트릭 제공
• 메트릭 종류에 따라 VM 모니터링 메트릭, MCIS 성능 모니터링 메트릭 제공
14
모니터링 메트릭
VM 모니터링 메트릭 MCIS 성능 모니터링 메트릭
CPU, Memory, Network 등 VM 모니터링 메트릭 57개 제공
CPU. Memory, File I/O 등
MCIS 성능 모니터링 메트릭 16개 제공
14
16. • 모니터링 Aggregator 모듈
• Aggregate 주기에 따라 캐싱된 모니터링 데이터를 처리 후 TSDB(InfluxDB)에 저장
• Aggregate 함수: MIN, MAX, AVG, LAST
모니터링 메트릭 처리 및 저장 기능
모니터링 Aggregator 모듈 동작 방식
* 모니터링 데이터 기본 수집 주기 : 2 Sec
* 모니터링 데이터 기본 aggregate 주기 : 10 Sec
15
17. • 모니터링 에이전트 메타데이터 관리 기능
• CB-Dragonfly 프레임워크에서 수집 중인 모니터링 에이전트 목록 관리
• 모니터링 에이전트 태그 정보, CSP 유형, 수집 메커니즘, 헬스체크 상태 저장
모니터링 에이전트 메타데이터 관리 기능
VM
MCIS
Agent
MCIS
VM VM
Agent Agent
NS
MCIS
VM VM
Agent Agent
NS
에이전트 설치/삭제
에이전트 구동 시 헬스체크 정보 전달
16
18. • 모니터링 알람 진단 및 제어 기능
모니터링 알람 진단 및 제어 기능
1. 이벤트 핸들러 등록 2. 태스크 생성 3. 알람 진단 4. 알람 생성
• 알람 이벤트 핸들러 등록
• Slack, SMTP 이벤트
핸들러 지원
• 알람 태스크 생성
• 메트릭 및 알람 임계치 설정
• 메트릭 2종 지원
(warn, critical 알람 레벨)
• 생성된 태스크 기반 알람
진단
• 알람 발생 시 알람 발생
로그 생성
• 등록된 이벤트 핸들러 기반
알람 메세지 전달
17
19. • CB-Dragonfly 프레임워크를 활용할 수 있는 다양한 API 도구 제공
• REST API, gRPC, CLI 유형으로 CB-Dragonfly 기능 활용
개방형 API
REST API gRPC CLI 도구
• CLI 도구를 통해 CB-Dragonfly
기능 제공
• 환경설정 조회 기능 제공
• 콜렉터 제어 기능 제공
• 메트릭 정보 조회 기능 제공
• REST API 기반 CB-Dragonfly API
기능 제공
• 공식 문서:
https://documenter.getpostm
an.com/view/7454078/TzJu8w
wi
• gRPC 기반의 CB-Dragonfly API
기능 제공
• gogoproto 라이브러리 기반 gRPC
제공
18
20. CB-Dragonfly 구동 환경 지원 범위
Go 바이너리 지원
Docker 지원
Docker-compose
지원
K8s, helm 지원
• 통합 모니터링 프레임워크의 다양한 배포 및 구동 환경 지원
• Container 및 Container Orchestration 환경 상의 모니터링 제공
• Docker-Compose, Kubernetes (K8s), Helm 등
19
21. • CB-Dragonfly 프레임워크 버전 별 개발 현황
CB-Dragonfly 프레임워크 버전 별 개발 현황
Americano
• 콜렉터, 콜렉터 매니저 개발
• 모니터링 수집 및 처리 모듈
개발
• VM 모니터링 개발
• 최신 데이터 모니터링 개발
• Etcd 기반 모니터링 캐싱
멀티 클라우드 모니터링
기본 매커니즘 개발
Cappucino
• VM 모니터링 메트릭
추가 개발
• MCIS 모니터링
메트릭 설계
• 온디멘드 모니터링 설계
• Windows 환경 에이전트
설치 도구 개발
신규 모니터링 메트릭
발굴 및 개발
Espresso
• Kafka 기반 부하분산
모듈 고도화
• MCIS 성능 모니터링
메트릭 개발
• 온디멘드 모니터링 개발
• CB-Store 기반 모니터링
캐싱
• 알람 모듈 개발
• gRPC 통신 및 CLI 도구
지원
• Cloud-Twin 환경
에이전트 구동
대규모 모니터링 기능
고도화
Cafe Mocha
• PULL 방식 모니터링 개발
• PUSH/PULL 메커니즘
기반 CB-DF 구동 모듈
고도화
• PUSH/PULL 메커니즘
기반 에이전트 모듈 고도화
• MCIS 특화 메트릭 도출
• MCKS, MCAS 모니터링
PoC
신규 모니터링
매커니즘 개발
Affogato
• Push 방식 모니터링
메커니즘 고도화
• 쿠버네티스 런타임 기반
대규모 모니터링 구조 개발
• MCIS 특화 메트릭 추가 개발
• MCKS 모니터링 개발
신규 모니터링
런타임 구조 개발
20
22. CB-Dragonfly 아포가토(Affogato) 개발 현황
Push 방식 모니터링 메커니즘 고도화
K8s 환경 기반 모니터링 콜렉터 확장성 고도화
모니터링 항목 발굴 및 개발
< Affogato Version >
21
23. 기존 Push 방식 모니터링 메커니즘의 문제점
Monitoring Agent
Publish Metric
Consume Metric
Collector Manager
Collector-Scale-In/Out
MQ Topic Manager
Collector
Metric-Aggregator
MQ Subscriber
...
Aggregate Metric
2
1
1
2
Get All Topic list
Distribute Topic List
3
Lookup Aggregated
Metric
API Handler
Lookup
Aggregated Metric
3
...
CB-Dragonfly
< CB-Dragonfly (Ver. Cafe Mocha) >
Agent
Topic List
Agent
Metadata
Dragonfly
Collector
Agent 설치 이후
Agent Metadata
업데이트 기능 X
Kafka에 등록되어 있는
모든 Agent Topic
리스트를 5초마다 수집
Collector Manager와
Collector의 결합 구조
Topic 연산
복잡도 문제
Agent
Metadata
상태 문제
단일
프로세스
문제
22
24. Push 방식 모니터링 메커니즘 고도화 (1/3)
Main
Agent
Metadata
Manager
Push
Manager
Collector
Aggre
gator
InfluxDB
Push
Module
Metric
Collector
Agent
Conf
Broker
CB-Dragonfly Agent (Install)
Kafka
Agent Metadata 저장 { AgentState: Unhealty }
Agent 설치 요청
{ AgentState: Healthy } 전달
Agent Metadata 업데이트 { AgentState: Healty }
설치 요청 응답: 200 OK or 500 Fail
메트릭 수집 요청
수집 메트릭 전달
Topic 등록 및 메트릭 전송
모니터링 지표 확인
Topic Message Queue에
메트릭 데이터 저장
Opt: Agent 설치 == 200 OK
23
25. Push 방식 모니터링 메커니즘 고도화 (2/3)
Main
Agent
Metadata
Manager
Push
Manager
Collector
Aggre
gator
InfluxDB
Push
Module
Metric
Collector
Agent
Conf
Broker
CB-Dragonfly Agent (Active)
Kafka
모니터링
메트릭 가공
모니터링 데이터 저장
메트릭 수집 요청
수집 메트릭 전달
Topic 등록 및 메트릭 전송
에이전트 메타데이터 조회
Topic 분배
Loop
메트릭 데이터 응답
구독한 Topic의
메트릭 데이터 수집 요청
Topic Message Queue에
메트릭 데이터 저장
모니터링 지표 확인
Collector 생성
생성 성공 Topic 구독
및 목록 전달
24
26. Push 방식 모니터링 메커니즘 고도화 (3/3)
Main
Agent
Metadata
Manager
Push
Manager
Collector
Aggre
gator
InfluxDB
Push
Module
Metric
Collector
Agent
Conf
Broker
CB-Dragonfly Agent (Inactive)
Kafka
Agent Metadata 업데이트
{ AgentState: Unhealthy } Kafka Topic 구독 해지
메트릭 데이터 수집
Time-out
구독한 Topic의
메트릭 데이터 수집 요청
에이전트 메타데이터 조회
Topic 분배
Topic 구독
및 목록 전달
Collector 생성
생성 성공
Loop
Topic Message
Queue 조회
메트릭 수집이 안되는
Topic 전달
Metric Not Found
25
27. • 쿠버네티스 리소스 형태의 모니터링 콜렉터 스케일 인/아웃(배포/삭제) 기능 개발
K8s 환경 기반 모니터링 콜렉터 확장성 고도화 (1/2)
26
28. K8s 환경 기반 모니터링 콜렉터 확장성 고도화 (2/2)
• Cloud-Twin 기반 대규모 모니터링
• 대규모 멀티 클라우드 인프라 가상 시험 환경 모니터링 실시
• Cloud-Twin 기반 대규모 모니터링 개념도
27
29. 모니터링 항목 발굴 및 개발
28
멀티 클라우드 인프라 서비스 (MCIS) 모니터링
user VM의 사용자 계정
pid Process ID 값
pcpu Process CPU 점유율
pmem Process Mem 점유율
command 수행중인 Process 명령어
destination_ip 송신중인 목적지 ip
packet_cnt 송신 중인 패킷 개수
packets_bytes 송신 중인 패킷들의 크기
msg 송신 현황 시스템 메시지
• VM 모니터링 5종 추가
• VM의 사용자 및 프로세스별 자원 사용량, 프로세스 수 등
• MCIS 성능 모니터링 4종 추가
• MCIS 단위 네트워크 성능 메트릭
28
31. CB-Dragonfly 기술 시연
30
동영상 시연이 준비되어 있습니다.
: Cloud-Barista 커뮤니티(https://cloud-barista.github.io/youtube)
세션을 놓치셨다면? 걱정하지 마세요! Cloud-Barista 커뮤니티 YouTube 채널에서 확인하실 수 있습니다 ^^
32. 감사합니다.
멀티클라우드, “새로운 생태계를 향한 클라우드 비긴어게인”
Cloud-Barista Community the 5th Conference
클라우드 바리스타들의 다섯번째 이야기
본 발표자료에는 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.
(박 재 호/ contact-to-cloud-barista@googlegroups.com)
https://github.com/cloud-barista
https://cloud-barista.github.io