이번에는 로그 파이프라인 제작기를 들었는데 잘 알지 못하는 기능들을 굉장히 많이 쓰고계셔서
그냥 이런식으로 제작하셨고 이런것들을 쓰셨구나 정도 전체적인 흐름을 알게 된 강의였던것 같다.
로그 파이프라인이란? 로그를 모아서 이득을 만들기 위해 만든 것이다.
가장 중요한 것은 로그를 어떻게 남기느냐.
유저게임로그 분석 → 잘 쌓아주고 분석할수있는 바탕 만들자 → 로그관리, 조회, 시각화 환경 만들자
현실적인 목표
오픈소스 조립
다양한 게임 적응되게 공통화
관리,대응 용이하게
제작과정은 아래와 같다
1. 수집, 가공, 적재
2. 조회, 시각화
3. 분석
우선 서버가 파일로 로그를 남길것이다.
인게임로그, 서버로그, 에러로그, 디버그로그
그리고 단순정보(Text), 형식이 있는정보(Json)
수집은
Apache Kafka를 사용하였다.
-다양한 포맷 로그를 수집해 입맛에 맞게 가공한다.
- failure에 강하다
적재
Text와 Json로그를 나누어 잘 적재하였다.
PostgreSQL과 S3(AWS)를 사용하였다.
PostgreSQL - JSONB
S3(AWS) - Apache Parquet. Column 단위 저장. JSON대비 10%수준 용량.
대부분 PostgreSQL로 충분하며.
오래될수록 수요가 낮아지므로 일정기간 지나면 S3로 보내버린다.
분석
Apache Spark를 사용한다.
좋고 쉽다. 그러니까 그냥 사용한다.
조회
PostgreSQL은 SQL로
S3는 Spark Thriftserver(Hive Server)의 HiveQL을 사용한다.
시각화
Airbnb Superset을 사용한다.
SQL Lab, Chart & Dashboard 기능 사용가능.
그리고 Log Pipeline Interface를 직접 제작하여 조건에 맞는 저장소 탐색.
반복작업은 어떻게?
Apache Airflow - Work Flow Management
파일 던져놓으면 끝. 분석작업 매일돌리고 메일 발송 등등 해준다.
배포 및 운영
SaltStack
장비별 rule만 설정해두면 알아서
무슨일이 생기면 Nagios
'프로그래밍 공부 > NDC 2018' 카테고리의 다른 글
[1일차] 오래해도 재미있는 게임을 만들기 위한 <메이플스토리>의 시도들 (0) | 2018.04.26 |
---|---|
[1일차] '재생'말고 '연주'하는 사운드의 제작/구현기법 (0) | 2018.04.26 |
[1일차] 30 years of evolution in artwork of Arc System Works - the Japanese developer continues to develop long-run 2D fighting games (0) | 2018.04.26 |
[1일차] 안드로이드에서 유니티 프로젝트 네이티브 프로파일링 삽질기 (0) | 2018.04.26 |
[1일차] 서버개발 생산성 향상을 위한 ORM 구현 경험 공유 (0) | 2018.04.26 |