로그 배치 전송 방법
Note
스냅샷 로그는 두가지 방식을 이용하여 전송할 수 있습니다.
Google Cloud Storage에 직접 파일 업로드¶
- GCS로 로그 배치 파일을 업로드 하기 위해서는 빅쿼리 권한 신청이 우선 되어야 합니다.
GCS 버킷 리스트 ¶
운영 환경 | 버킷 주소 | 설명 |
---|---|---|
라이브 서비스 | gs://snapshot_upload_live | 서비스 운영 환경 용 로그 배치 데이터 업로드 bucket |
샌드 박스 | gs://snapshot_upload_sandbox | 샌드박스 환경 용 로그 배치 데이터 업로드 bucket |
(필수)업로드 파일명 규칙¶
- 회사명_category값/YYYY/MM/dd/회사명_category값_YYYY_MM_dd_HH_mm_ss_uuidRandom.log
- 반드시 업로드 파일명 규칙을 준수해야 합니다.
- 파일명에 일시와 uuid는 파일의 저장 일시 확인과 중복 방지를 위함입니다.
- 파일 확장자 명은 .log 입니다.
- 예시)
- com2us_nbasuperstars_team/2023/03/24/com2us_nbasuperstars_team_2023-03-24_05_55_00_c4c9c6e0-4093-4e29-853f-2d0d9608ca3b.log
파일 형식¶
- 파일은 테이블 단위로 로그가 구성되어야 하며 서로 다른 category로 데이터가 혼합되어서는 안 됩니다.
- 줄 바꿈으로 구분된 json 파일 (샘플)
{"dateTime":"2021-10-11 11:27:15", "category":"게임명_login_log", "timezone":"UTC+09:00", "channel":"HIVE", "user_id":10053833008, "app_id":"com.com2us.hivesdk.android.google.global.normal", "did":5102491016, "level":0, "client_ip":"172.XX.XXX.XX", "device_name":"TINNO U319AA", "company":"C2S", "server_id":"GLOBAL-2", "server_uid":256489411, "last_login_date":"2021-10-10 08:33:11", "os_version":"11", "is_emulator":0, "game_language":"en"}
{"dateTime":"2021-10-11 11:27:15", "category":"게임명_login_log", "timezone":"UTC+09:00", "channel":"HIVE", "user_id":10053833008, "app_id":"com.com2us.hivesdk.android.google.global.normal", "did":5102491016, "level":0, "client_ip":"172.XX.XXX.XX", "device_name":"TINNO U319AA", "company":"C2S", "server_id":"GLOBAL-2", "server_uid":256489411, "last_login_date":"2021-10-10 08:33:11", "os_version":"11", "is_emulator":0, "game_language":"en"}
{"dateTime":"2021-10-11 11:27:15", "category":"게임명_login_log", "timezone":"UTC+09:00", "channel":"HIVE", "user_id":10053833008, "app_id":"com.com2us.hivesdk.android.google.global.normal", "did":5102491016, "level":0, "client_ip":"172.XX.XXX.XX", "device_name":"TINNO U319AA", "company":"C2S", "server_id":"GLOBAL-2", "server_uid":256489411, "last_login_date":"2021-10-10 08:33:11", "os_version":"11", "is_emulator":0, "game_language":"en"}
- 파일은 압축하지 않습니다.
- 파일 크기는 최대 1G를 초과하지 않도록 조절해야 합니다.
- 여러 개의 파일을 업로드 하는 경우 파일 크기가 크고 파일 수가 적은 것이 좋습니다.
- 한 번에 너무 많은 파일을 업로드하는 경우 오류가 발생할 수 있습니다.(초당 10건 이하)
GCS 파일 업로드 가이드¶
- https://cloud.google.com/storage/docs/uploading-objects?hl=ko#storage-upload-object-python
- 파일 업로드 직후 새로 고침을 하면 파일이 없어진 것처럼 보일 수 있습니다.
- 이는 파일 처리 후 바로 파일을 이동시키기 때문이며 동일 파일을 재업로드 하면 데이터가 중복으로 빅쿼리에 적재 되니 참고하시기를 바랍니다.
fluentD를 통한 로그 전송¶
Note
스트리밍 FluentD에서 수신하는 서버로는 로그 배치 전송을 할 수 없습니다.
fluentD 사용 가이드에 대한 자세한 내용은 fluentd 방식 페이지에서 확인이 가능합니다.
fluentD 전송 주의 사항¶
- chunk file - limit은 10Mbyte 입니다. 초과하는 파일은 자동으로 삭제 처리되기 때문에 유의 하셔야 합니다.
- 라인 단위 전송(10Mbyte 이하)이 불가능 한 경우 google cloud storage 파일 업로드 방식 이용을 권장합니다.
로그 배치 전용 서버 정보¶
서버 종류 | url 주소 |
---|---|
라이브 서버 01 | analytics-hivelog-snap-01.withhive.com |
라이브 서버 02 | analytics-hivelog-snap-02.withhive.com |
샌드박스 서버 | sandbox-analytics-hivelog.withhive.com |
Fluentd 태그 규칙¶
- 태그 생성 규칙
- 회사명_테이블 명(category 값)_snapshot
- 예시)
- 회사명과 category값을 조합한 후 _snapshot을 포함하여 만든 tag를 사용
- com2us_logname_snapshot
- 회사명과 category값을 조합한 후 _snapshot을 포함하여 만든 tag를 사용
참고 사항¶
- 로그 배치 파일은 전송 방법과 관계 없이 파일 형태로 GCS에 일정 기간 보관합니다.
- 보관 기간 : 90일
- 90일이 지난 파일은 삭제되며 복구가 불가합니다. (bigquery의 데이터는 조회 가능)
- 파일은 추후 bigquery에 데이터를 다시 로드시켜야 하거나 데이터 누락 등을 확인하기 위한 용도입니다.