'HDFS에 로그를 좀 더 쉽게 저장하고 보자!'
H-Navi - Log4j, RabbitMQ, Flume과 HDFS 기반의 로그수집 및 ExtJS 및 Eclipse RCP(3.7) 의 HDFS 브라우저
- 지식경제부 SoftwareMaestro 2기 2단계 2차 발표 자료
- 김주리 멘티
- 김태완 멘토
4. 현재 로깅 아키텍처의 문제점
2012
Server Farm
System
다수의 머신 환경에서는 시스템상의 관리가 어렵다.
Data
Problem
Object
Impl.
Future
로그로부터 정보를 추출하기 어렵다. logger
logger
logger
Accessibility
장애 발생시 혹은 특정 시점에 접근 자체도 어렵다.
Permanent
FormattedLOG
VM 이미지가
FormattedLOG
FormattedLOG
깨지거나 하드 손상의 경우 손상될 위험이 크다.
4
5. 요구사항
중앙 집권 형태의 로그 관리
기존 소프트웨어의 변경 최소화
Scale Out 지원
Problem
Object
Impl.
Future
로그 데이터에 대한 접근성 및 분석기능 지원
2012
6. 프로젝트 정의
2012
Web & App
어디서나 쉽게 로그데이터에 쉽게 접근해야 한다.
로그 데이터관리가 용이해야 한다.
HDFS Client
Flume
Scale Out이 지원되어야 한다.
기존의 소프트웨어를 최소한으로 변경해야 한다.
설정하기 쉬워야 한다.
Problem
Impl.
Future
로그로부터 정보를 추출하기 어렵다. (Data)
에러 상황 시 데이터 복구가 어렵다. (Permanent)
로그를 중앙집권적으로 관리할 수 있어야 한다.
Logging Extension
시스템상의 관리가 어렵다. (System)
Repository의 제약이 따른다.
Object
Log 수집기
로그데이터에 대한 분석기능이 있어야 한다.
Hadoop File System
6
13. Summary
2012
대량의 로그를 중앙집권적으로
저장, 관리할 수 있어야 한다.
하둡 인프라를 이용한
로그 수집 프레임워크 설계 & 개발
기술셋
사용
확장
Hadoop
Problem
Object
Impl.
Future
Play Framework
Flume
Amqp
Log4j / Logback
ExtJS
Eclipse RCP
13
14. Summary
2012
서브 프로젝트
분류
설명
Flume Amqp Source
Plug in
라이브러리
로그수집기(Flume)에서 사용자지정 port를
사용하기 위한 amqp 라이브러리 개발
Logback Amqp
Appender
라이브러리
Logback 로거에서 올바르게 지원되지 않
Amqp Appender 개발
HDFS Core Server
서버
원격지에 위치한 하둡 네임노드의
파일시스템의 정보를 Rest 아키텍처를 활용한
서버사이드 개발 (Play Framework)
Problem
ExtJS Web Client
클라이언트
웹 표준을 준수하고 크로스 브라우징이 가능한
ExtJS를 이용한 Web Client 개발
Object
Eclipse RCP Client
클라이언트
멀티 OS 를 지원하고 개발자에게 익숙한
Eclipse RCP 를 이용한 Client 개발
Impl.
Future
14
15. 프로젝트 확장(안)
2012
오픈소스화
Data Analysis
Data Visualization
정리된 Documentation,
설치/사용 용이성 제공
하둡 맵리듀스 프레임워크
통계 수치들의 시각화
데이터 처리 시스템 구현
로그 이벤트 기반 프로세싱
Problem
Object
Impl.
Future
15
16. 사례분석 - Splunk
2012
소프트웨어 플랫폼 제공
포맷, 소스에 상관없는 로그 데이터 수집
데이터 indexing 후 검색 지원
데이터 모니터와 리포팅 기술 제공
올해 1월 나스닥 상장 후 꾸준한 성장세
데이터 수집/검색/분석 소프트웨어
Problem
Object
Impl.
Future
Splunk in NASDAQ
16
17. Lessons Learned
2012
Hadoop 이론 & 클러스터링 설정
Play Framework & Rest
ExtJS & Cross Domain
Eclipse RCP
Flume 설정 & Plug in 개발
17