Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 대규모 통합 모니터링 (CB-Dragonfly)
1. “오픈소스”로 만들어가는 “멀티클라우드” 생태계
클라우드바리스타 커뮤니티 제6차 컨퍼런스
CLOUD
BARISTA
카페라떼(Cafe Latte) 한잔 어떠세요 ?
멀티클라우드 대규모 통합 모니터링
박 진 휘
[세션] CB-Dragonfly
CB-Dragonfly 프레임워크 멤버
2. 목 차
1
CB-Dragonfly 프레임워크 기술 개요
I
CB-Dragonfly 프레임워크 주요 기능
II
CB-Dragonfly 프레임워크 로드맵
IV
CB-Dragonfly 프레임워크 개발 현황 (Cafe Latte)
III
CB-Dragonfly 프레임워크 기술 시연
V
3. CB-Dragonfly 프레임워크 기술 개요
2
*CSP
*CSP: Cloud Service Provider
VM
메트릭
VM
메트릭
VM
메트릭
CSP 별 모니터링 메트릭 제공
• 이종 클라우드 연동 환경에서의 대규모 인프라 서비스 및 쿠버네티스 서비스의 통합 모니터링 기능을 제공하는
멀티 클라우드 통합 모니터링 프레임워크
다양한 이종 환경의 유연한 모니터링
다양한 클라우드 서비스 특화 모니터링
대규모 멀티 클라우드 서비스 모니터링
안정적인 대규모 멀티 클라우드 모니터링을
위한 메시지 큐 기반 모니터링 트래픽
부하분산 및 모니터링 데이터 처리 기능 제공
멀티 클라우드 인프라 서비스, 쿠버네티스 서비스
기반 특화 모니터링 메트릭 발굴 및 수집/제공
에이전트 기반 VM 환경, 컨테이너 환경 등
다양한 환경에서 모니터링 기능 제공
As-Is
To-Be
*K8S
Pod
메트릭
NS
메트릭
메트릭
CSP K8S 서비스 별
모니터링 메트릭 제공
Node
*K8S: Kubernetes
4. CB-Dragonfly 프레임워크 사용자 관점 활용 시나리오
모니터링
에이전트 설치
모니터링 알람
임계치 설정
모니터링
데이터 확인
REST API
& Go API 활용 CLI 지원
API 기반
에이전트 설치
및 알람 설정
<7>
<1>
<2>
<4>
<6>
모니터링
알람 확인
<5>
모니터링
환경 변수 설정
<3>
Config 파일 기반
모니터링 환경 설정
CB-Dragonfly
기능 활용
모니터링 방법(Push, Pull)
모니터링 정책(Agent, CSP)
모니터링 환경
(Max host, Collect interval 등)
모니터링 에이전트
자동 설치
알람 이벤트 핸들러 등록
알람 태스크 생성
설정 환경 조회
콜렉터 동작 제어
메트릭 정보 조회
총 90개의 모니터링
메트릭 데이터 확인
REST API 및 Go API 기반
CB-dragonfly 기능 동작
알람 태스크 기반 알람 진단
Slack, SMTP, HTTP 알람 발생
• CB-Dragonfly 프레임워크 모니터링 기능 활용 시나리오
3
5. CB-Dragonfly 프레임워크 수집 방식 및 모니터링 대상
• CB-Dragonfly 프레임워크 모니터링 데이터 수집 방식
• Agent PUSH, Server PULL, On-Demand 등 3종 모니터링 수집 방식 지원
• CB-Dragonfly 프레임워크 모니터링 대상
• VM 모니터링
• 모니터링 에이전트 기반 동작
• CPU, Memory, Disk I/O 등 모니터링 메트릭 제공
• MCIS 모니터링
• 모니터링 에이전트 기반 동작
• File I/O, Network Packets 등 성능 메트릭 제공
• MC-K8S 모니터링
• 모니터링 에이전트 기반 동작
• MCKS, CMKS, PMKS 등 쿠버네티스 서비스 모니터링
• 노드, 파드 단위 모니터링 정보 제공
• CPU, Memory, FS, Network 등 모니터링 메트릭 제공
4
MCIS
VM
K8S
VM
모니터링
에이전트
Node Node
Node
... ...
MCIS 모니터링
MC-K8S 모니터링
모니터링 대상
모니터링 데이터
수집 방식
PUSH 방식
PULL 방식
On-Demand 방식
VM 모니터링
MCIS
PUSH PULL On-Demand
Namespace
Pod
6. 모니터링 콜렉터
CB-Dragonfly 프레임워크 구성도
CB-Dragonfly
통합 모니터링 프레임워크 API
모니터링 정책/알림
매니저
모니터링 알람
모니터링 데이터
진단 모듈
모니터링 데이터
정책 관리 모듈
에이전트
메타데이터 매니저
에이전트 메타데이터
관리 모듈
모니터링 콜러
매니저
콜러 제어 모듈
모니터링 콜렉터
매니저
모니터링 에이전트
에이전트 API
PULL 모듈 온디맨드 모듈 PUSH 모듈
통합 모니터링 수집 모듈
모니터링 지표 ...
...
1
2
4
5
8
4
1
3
7 8
1 2
스토리지
CB-Store
InfluxDB
모니터링 콜러
5
6
2
7
3
9
5
6
8. CB-Dragonfly 프레임워크 주요 기능
모니터링 에이전트 모니터링 에이전트 ...
통합 모니터링 프레임워크 API
에이전트 메타데이터 관리 기능
메타 데이터 관리
CB-Dragonfly
모니터링 제어 기능
데이터 수집기 스케줄링
모니터링 에이전트
모니터링 콜렉터
(에이전트 PUSH)
모니터링 콜러
(서버 PULL)
모니터링 데이터 수집 및 저장
(VM, MCIS,MC-K8S… )
모니터링 데이터 수집 기능
메시지 큐
모니터링 정책/알람 기능
모니터링 알람
모니터링 데이터 진단
모니터링 데이터 정책 설정
CB-Dragonfly 기능
모니터링 부하분산 처리 기능
모니터링 에이전트 메타데이터
관리 기능
Push & Pull 방식 모니터링
모니터링 알람 진단 및 제어 기능
TSDB & Key-Value 저장소
에이전트 기반
모니터링 메트릭 수집
개방형 API
메트릭 처리 및 저장 기능
7
다양한 구동 환경 지원
이벤트 핸들러 등록 및 관리
9. • Hetero-IaaS 환경의 통합 모니터링 메트릭 수집 기능
• CSP Vendor Lock-in 없는 통합 수집 모듈 기반 모니터링 메트릭 수집
• VM 모니터링 메트릭, MCIS 모니터링 메트릭 제공
• 사용자 설정 기반의 다양한 모니터링 메커니즘 지원
• Listener 모듈
• 서버 요청에 대한 REST API 기반 모니터링 메트릭 전달
• 유동적인 모니터링 메커니즘 변경 기능 제공
• Push 모듈
• AMQP 기반 주기적인 모니터링 메트릭 전달
• 에이전트 상태 데이터 전달
• 통합 수집 모듈
• 사용자 설정 정보 확인
• VM 모니터링 메트릭 수집
• MCIS 모니터링 메트릭 수집
에이전트 기반 모니터링 메트릭 수집 기능 (1/2)
8
<CB-Dragonfly 모니터링 에이전트 구조>
10. 에이전트 기반 모니터링 메트릭 수집 기능 (2/2)
• 모니터링 메트릭
• Affogato 버전 기준 총 73개의 모니터링 메트릭 제공
• 메트릭 종류에 따라 VM 모니터링 메트릭, MCIS 성능 모니터링 메트릭 제공
9
모니터링 메트릭
VM 모니터링 메트릭 MCIS 성능 모니터링 메트릭
CPU, Memory, Network 등 VM 모니터링 메트릭 57개 제공
CPU. Memory, File I/O 등
MCIS 성능 모니터링 메트릭 16개 제공
11. 10
CB-Dragonfly 다양한 구동 환경 지원 (1/2)
• 통합 모니터링 프레임워크의 다양한 배포 및 구동 환경 지원
• Container 및 Container Orchestration 환경 상의 모니터링 제공
• Docker-Compose, Kubernetes, Helm 등
Go 바이너리 지원
Docker 지원
Docker-compose
지원
K8s, helm 지원
12. 11
• 런타임 환경에 따른 내부 구조
CB-Dragonfly 다양한 구동 환경 지원 (2/2)
바이너리, 컨테이너 쿠버네티스
13. • 모니터링 PUSH & PULL 메커니즘
PULL & PUSH 방식 모니터링 (1/2)
PULL 방식 (서버 PULL)
PUSH 방식 (에이전트 PUSH)
모니터링 서버
에이전트 에이전트 에이전트
모니터링 서버
에이전트 에이전트 에이전트
• 에이전트에서 모니터링 서버로 데이터 전송
• 최소한의 설정(서버 주소, 수집 주기 등)으로 에이전트
구동 => 대규모 모니터링 환경에 적합
• 모니터링 서버에서 에이전트로 데이터 전송 요청
• 에이전트 접속 허용을 위한 자격 증명, 방화벽 설정 필요
12
15. 모니터링 부하분산 처리 기능
멀티 클라우드
통합 모니터링 프레임워크
모니터링 정책 기반 유연한 콜렉터 Scale in / out
Stable
콜렉터
콜렉터
콜렉터
에이전트
• 대규모 환경 모니터링을 위한 콜렉터 확장 기능 지원
• 메시지 큐 기반 메트릭 데이터 수집
• 모니터링 정책에 따른 유연한 콜렉터 Scale in/out
• 모니터링 대상(VM) 개수
• CSP 종류
14
16. 15
• 모니터링 Aggregator 모듈
• Aggregate 주기에 따라 캐싱된 모니터링 데이터를 처리 후 TSDB(InfluxDB)에 저장
• Aggregate 함수: MIN, MAX, AVG, LAST
모니터링 메트릭 처리 및 저장 기능
모니터링 Aggregator 모듈 동작 방식
* 모니터링 데이터 기본 수집 주기 : 2 Sec
* 모니터링 데이터 기본 aggregate 주기 : 10 Sec
17. 16
• 모니터링 에이전트 메타데이터 관리 기능
• CB-Dragonfly 프레임워크에서 수집 중인 모니터링 에이전트 목록 관리
• 모니터링 에이전트 태그 정보, CSP 유형, 수집 메커니즘, 헬스체크 상태 저장
모니터링 에이전트 메타데이터 관리 기능
VM
MCIS
Agent
MCIS
VM VM
Agent Agent
NS
MCIS
VM VM
Agent Agent
NS
에이전트 설치/삭제
에이전트 구동 시 헬스체크 정보 전달
18. 17
• 모니터링 알람 진단 및 제어 기능
모니터링 알람 진단 및 제어 기능
1. 이벤트 핸들러 등록 2. 태스크 생성 3. 알람 진단 4. 알람 생성
• 알람 이벤트 핸들러 등록
• Slack, SMTP, HTTP 이벤트
핸들러 지원
• 알람 태스크 생성
• 메트릭 및 알람 임계치 설정
• 메트릭 2종 지원
(warn, critical 알람 레벨)
• 생성된 태스크 기반 알람 진단
• 알람 발생 시 알람 발생
로그 생성
• 등록된 이벤트 핸들러 기반
알람 메세지 전달
HTTP
HTTP
19. 18
• CB-Dragonfly 프레임워크를 활용할 수 있는 다양한 API 도구 제공
• REST API, Go API, CLI 유형으로 CB-Dragonfly 기능 활용
• 공식 문처 참고: CB-Dragonfly 공식 Github Wiki
개방형 API
REST API Go API CLI 도구
• CLI 도구를 통해 CB-Dragonfly
기능 제공
• 환경설정 조회 기능 제공
• 콜렉터 제어 기능 제공
• 메트릭 정보 조회 기능 제공
• REST API 기반 CB-Dragonfly API
기능 제공
• Go API 기반의 CB-Dragonfly API
기능 제공
• gogoproto 라이브러리 기반 Go
API 제공
20. CB-Dragonfly 프레임워크 버전 별 개발 현황
Cafe Mocha
신규 모니터링
매커니즘 개발
Affogato
신규 모니터링
런타임 구조 개발
Cafe Latte
쿠버네티스
모니터링 기능 개발
• 모니터링 수집 모듈 개발
• 메트릭 처리 모듈 개발
• VM 모니터링 개발
• 최신 데이터 모니터링 개발
• etcd 기반 모니터링 캐싱
• VM 모니터링 메트릭 추가 개발
• MCIS 모니터링 메트릭 설계
• 온디멘드 모니터링 설계
• Windows 환경 에이전트
설치 도구 개발
• Kafka 기반 부하분산 모듈 개발
• MCIS 성능 모니터링 메트릭 개발
• 온디멘드 모니터링 개발
• CB-Store 기반 모니터링 캐싱
• 알람 모듈 개발
• Go API 통신 및 CLI 도구 지원
• Cloud-Twin 환경
에이전트 구동
• PULL 방식 모니터링 개발
• PUSH/PULL 메커니즘 기반 CB-
DF 구동 모듈 고도화
• MCIS 특화 메트릭 도출
• MC-K8S 모니터링 PoC
멀티 클라우드 모니터링
기본 매커니즘 개발
Americano
신규 모니터링 메트릭
발굴 및 개발
Cappuccino
대규모 모니터링 기능
고도화
Espresso
• Push 방식 모니터링
메커니즘 고도화
• 쿠버네티스 런타임 기반
대규모 모니터링 구조 개발
• MCIS 특화 메트릭 추가 개발
• MC-K8S 모니터링 개발
• 쿠버네티스 모니터링 기능 개발
• 쿠버네티스 기반 에이전트 동작 개발
• 쿠버네티스 환경 모니터링 메트릭 도
출 및 개발
• 쿠버네티스 및 MCIS 에이전트
메타데이터 관리 기능 고도화
19
21. 20
CB-Dragonfly 카페라떼(Caffe Latte) 개발 현황
< Caffe Latte >
쿠버테니스 모니터링 메트릭 발굴 및 구현
쿠버네티스 기반 에이전트 구동 환경 지원
쿠버네티스 클러스터 모니터링 기능 구현
쿠버네티스 및 MCIS 에이전트 메타데이터 관리 고도화
22. 21
쿠버네티스 기반 에이전트 구동 환경 지원
모니터링 에이전트
PULL-LISTENER
PULL 모듈 온디맨드 모듈 PUSH 모듈
통합 모니터링 수집 모듈
모니터링 지표
Monitoring
Agent
Monitoring
Agent
Monitoring
Agent
• 사용자 연동 쿠버네티스 클러스터별 모니터링 에이전트 구동 기능 구현
• Daemon Set 컨트롤러 기반 클러스터 내부 노드별 에이전트 배포
• PUSH 모니터링 메커니즘 기반 에이전트 모니터링 메트릭 수집
쿠버네티스 컨셉 공식 문서
https://kubernetes.io/ko/docs/concepts/overview/components
23. 22
쿠버네티스 클러스터 모니터링 기능 구현
• 쿠버네티스 서비스 제공자에 종속되지 않는 모니터링 기능
• EKS, AKS, GKE 등 쿠버네티스 서비스 Vendor Lock-In 개선
• 쿠버네티스 서비스 모니터링 기능을 위한 신규 모니터링 정책 설정
• 모니터링 콜렉터 스케일링 정책: 클러스터 개수 (1:1)
• 모니터링 데이터 기본 수집 주기: 30초
• 모니터링 데이터 기본 Aggregate 주기: 1분
User / 3rd Party
24. 23
쿠버네티스 및 MCIS 모니터링 에이전트 메타데이터 관리 고도화 (1/2)
• 쿠버네티스, MCIS 에이전트 메타데이터 및 토픽 데이터 형식 고도화
• 서비스에 따른 데이터 기반 UUID 형식의 메타데이터 키 변경
• PUSH 모니터링 기능을 위한 Kafka 토픽으로 활용
<~Affogato>
<Café latte>
25. 24
쿠버네티스 및 MCIS 모니터링 에이전트 메타데이터 관리 고도화 (2/2)
모니터링 콜렉터
CB-Store
Pod
CMKS
Agent
MCKS
Node Pod
Agent Agent
NS
MCIS
VM VM
Agent Agent
NS
모니터링 콜렉터 매니저
• 에이전트 헬스 체크 로직 고도화
• 기존 에이전트 메타데이터 매니저 모듈과 모니터링 콜렉터의 에이전트 상태 중복 체크 개선
• MC-K8S 환경에서의 에이전트 상태 관리 로직의 복잡성 개선
• 3개 이상의 노드로 구성된 클러스터의 에이전트 개수: 3개
1
2
3
7
4
5
6
1
2
3
4
5
6
7
26. 25
쿠버네티스 서비스 모니터링 플로우
API
Manager
CB-Store
Metadata
Manager
Collect
Manager
Collector
CB-Dragonfly
서비스 확인
설정 확인
에이전트 생성 요청
Push
Module
Conf
Module
Metric
Collector
API
Server
Agent
K8S Cluster (MC-K8S)
에이전트 환경 설정
설정 정보 로드
쿠버네티스
모니터링 메트릭 수집
메타데이터
생성
Broker
Kafka
모니터링 메트릭 Publish
모니터링 메트릭 Subscribe 및 에이전트 헬스체크
에이전트
상태 전달
Influx
DB
메트릭 저장
메타데이터
저장
콜렉터 생성
및 토픽 분배
Loop
에이전트 상태 수정
API 연결 및 인증 정보 확인
메타데이터
및 토픽 확인
메타데이터 수정
27. 쿠버네티스 모니터링 메트릭 발굴 및 개발
26
쿠버네티스 모니터링
• 쿠버네티스 환경 모니터링 대상
• 클러스터 구성 노드
• 노드 또는 네임스페이스 하위 파드
CPU Usage 클러스터 구성 노드의 CPU 사용량
9종
MEMORY
Usage 클러스터 구성 노드의 Memory 사용량
Available 클러스터 구성 노드의 Memory 유휴량
NETWORK
Rx_bytes 클러스터 구성 노드의 수신 네트워크 데이터 양
Rx_errors 클러스터 구성 노드의 수신 네트워크의 에러 데이터 양
Tx_bytes 클러스터 구성 노드의 송신 네트워크 데이터 양
Tx_error 클러스터 구성 노드의 송신 네트워크 에러 데이터 양
FILESYSTEM
Capacity 클러스터 구성 노드의 파일 시스템 전체 용량
Usage 클러스터 구성 노드의 파일 시스템 전체 사용량
CPU Usage 파드 내부 컨테이너들의 CPU 사용량
8종
MEMORY Usage 파드 내부 컨테이너들의 Memory 사용량
NETWORK
Rx_bytes 파드의 수신 네트워크 데이터 크기
Rx_errors 파드의 수신 네트워크 에러 데이터 크기
Tx_bytes 파드의 송신 네트워크 데이터 크기
Tx_error 파드의 송신 네트워크 에러 데이터 크기
FILESYSTEM
Rootfs_capacity 파드 내부 Root 파일 시스템의 전체 용량
Rootfs_used 파드 내부 Root 파일 시스템의 사용량
29. 멀티클라우드 서비스 공통 플랫폼
CLOUD
BARISTA
카페라떼(Cafe Latte) 한잔 어떠세요 ?
CB-Dragonfly 기술 시연
28
30. 감사합니다.
“오픈소스”로 만들어가는 “멀티클라우드” 생태계
Cloud-Barista Community the 6th Conference
클라우드 바리스타들의 여섯번째 이야기
본 발표자료에는 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.
(박 진 휘 / contact-to-cloud-barista@googlegroups.com)
https://github.com/cloud-barista
https://cloud-barista.github.io