분산된 서비스들의 로그를 효과적으로 추적하기 위한 로그 수집 시스템
- 임의 서비스가 보내온 전송 로그를 수집하는 API 서버를 구현해야한다
- JSON Format
- 필수 로그 정보
- 추적 ID (TraceId)
- 서비스이름(혹은 TagID)
- 로그타입 ( INFO, ERROR ) - 두가지 타입만
- 비정형 Log Data Content (TEXT)
- 서버 로깅 시각
- 해당 수집한 API 서버에서 분류 작업 및 로그를 저장하는 서비스를 구현한다.
- ERROR의 경우 별도의 알림 처리(알림은 담당자 메일로)를 진행한다.
- 추적ID를 기준으로 어떤 서비스들을 사용했는지 어떤 로그를 남겼는지를 알 수 있도록 DB에 저장한다. (날짜별 테이블)
- 해당 분류되어 저장된 로그를 지정한 조건으로 조회할 수 있는 API 서버를 구현해야한다.
- 하루에 어떤서비스가 에러가 많이 났는지
- 서비스별 평균 걸린시간이 얼마인지
- 서비스별로 가장 오래걸린 시간 및 짧은 시간과의 간극이 어느정도인지
- 가장 많은 서비스를 사용하는게 어떤건지
- 특정 ID의 내용을 검색하는 기능
- 서비스(혹은 서비스 그룹), 로그 레벨, 로그 시간에 따른 정렬 가능
- 단어 검색 가능
- api를 통한 정보 제공
- 알람 기능(설정, 발송)
- 다양한 서비스들이 사용 가능한 확장성과 유연함
- 부하 분산을 위한 인프라 구성 간편화 대비 컨테이너 구성 (이론적인 학습만)
- 부하 완충용 미들웨어(MOM) 도입을 고려한 개발