2015. 12. 22. 16:01ㆍComputer/Server
안녕하세요?
이번시간에는 게임서버에서 꼭 필요한 로그 시스템을 적용할 예정입니다.
관련 정보는 아래의 사이트에서 참조하였습니다.
출처 : http://gameqa.tistory.com/86
우선 제가 적용시킬 서버 로그들은 다음과 같습니다.
아래는 위의 컨텐츠를 그대로 저장해두고 싶어 복사해두었습니다.
따로 문제가 생긴다면 비공개로 포스팅을 없애도록 하겠습니다.
1. 기록 단계별 분류
- 게임 로그는 DB에 쌓이는 것이기 때문에, DB Machine의 시스템 제약을 받습니다.
MMORPG는 동시에 수많은 액션이 발생하므로, 데이터 테이블을 여러 개 연결하는 작업이 많아지면,
데이터 적재시 동시처리에 지연을 가져올 수 있습니다.
- 그래서 게임 로그는 게임서버에서 얻을 수 있는 단순한 정보를 남기고 (원본 로그),
이를 다시 사람이 판별하기 쉽도록 변경하고, 여기에 부가정보를 더하는 과정을 (표준화 로그) 거치게 됩니다.
※ 최근에 개발된 게임들은, 별도의 재가공 없이 로그를 바로 읽을 수 있도록,
표준화 로그 형태로 작업이 많이 이루어 지고 있습니다.
2. 발생시간과 기록시간의 동시성에 따른 분류
A. 액션로그
- 액션이 발생할 때, 그 즉시 남는 로그를 액션로그라 하며, 대부분의 게임 로그는 여기에 포함됩니다.
- 액션로그는 액션의주체 + 액션정보 + 부가정보로 구성 됩니다.
아래는 액션로그의 예제 입니다.
데이터 | 로그이름 | 로그분류 | 로그주체 |
서버 다운 내역 | server close | 시스템 | server |
계정 플레이 타임 | account login | 게임 | server |
account logout | 게임 | server | |
캐릭터 플레이 타임 | character login | 게임 | server |
character logout | 게임 | server | |
클래스별 캐릭터 생성 | character create | 게임 | server |
레벨 업 | character levelup | 게임 | server |
아이템별 사용빈도 | character takeon con | 게임 | DB |
개인상점 거래품목 | character trade | 게임 | server |
아이템 생성 | item create | 게임 | server |
아이템 습득 | character get | 게임 | server |
아이템 드랍 | character drop | 게임 | server |
아이템 소비 | character useitem | 게임 | server |
아이템 소멸 | item delete | 게임 | server |
아이템 거래 | Item trade | 게임 | server |
아이템 강화 | character enchant | 게임 | server |
캐릭터 killed | character killed | 게임 | server |
B. 히스토리로그
- 게임의 변동내역을 쉽고 빠르게 알아볼 수 있도록 하기 위하여, 일정한 주기로 현재의 상태를 기록하는 로그를 말합니다.
- 히스토리로그는 시간 + 기록하고자하는정보 로 구성 됩니다.
아래는 히스토리로그의 예제 입니다.
데이터 | 로그이름 | 로그분류 | 로그주체 |
동시접속자수 | server user | 시스템 | server |
서버 상태 내역 | server ping | 시스템 | DB |
클래스별 캐릭터 분포 – 전체 | character class all | 시스템 | DB |
클래스별 캐릭터 분포 – 접속중 | character class con | 시스템 | server |
아이템별 총 수량 | item all | 시스템 | DB |
지역별 로그인 정보 | account login | 게임 | server |
계정정보 | |||
결제정보 | |||
클래스별 로그인 정보 | character login | 게임 | server |
계정정보 | |||
결제정보 | |||
서버인원 통계 | account login | 게임 | server |
character login | 게임 | server | |
계정정보 | |||
결제정보 | |||
불량이용자 통계 | admin ban | 게임 | server |
계정정보 |
3. 액션별 상세 분류
- 액션 주체에 따라 시스템로그, 캐릭터로그, NPC로그(캐릭터가 주체가 아니면서 시스템로그가 아닌 모든 액션들) 로 분류를 나눕니다.
- 게임서버나 DB의 설계에 따라 적재할 수 있는 구체적인 데이터의 항목은 제한 될 수 있으므로,
실제 로그의 구현은 상황에 따라 case by case 로 진행하게 됩니다.
아래는 액션별 로그의 예제 입니다.
A. 시스템 로그
server start : 서버시작시 남는로그
server close : 서버비정상 종료시 남는로그
server user : 동시접속자를 일정주기로 체크하는 로그
server ping : 서버의 응답시간을 일정주기로 체크하는 로그
character class all : 캐릭터 클래스의 총 숫자를 종류별로 일정주기로 체크하는 로그
item all : 아이템의 총숫자를 종류별로 일정주기로 체크하는 로그
character class con : 현재 접속중인 캐릭터들의 클래스 비율을 일정주기로 체크하는 로그
character takeon con : 현재 접속중인 캐릭터들의 착용 아이템을 일정주기로 체크하는 로그
B. 캐릭터 로그
account login : 접속자의 정보를 확인하는 로그 (ip, play time포함됨)
account logout
character create : 캐릭터 생성을 확인하는 로그
character delete
character login : 캐릭터의 로그인을 확인하는 로그
character logout
character lovelup : 캐릭터의 레벨업을 체크하는 로그
character get : 아이템을 줍는 로그
character drop
character buy : 아이템을 상점에서 사는 로그
character sell : 아이템을 상점에 파는 로그
character trade : 개인상점 등 교환로그
character upgrade : 아이템을 업그레이드 하는 로그
character enchant
character useitem : 소모성 아이템을 소모하는 로그
character killed : 전투에 의해 캐릭터가 죽는로그
admin : 운영자 명령어에 대한 로그
C. NPC 로그
item create : 아이템을 생성하는 로그 (보통은 몬스터가 drop함)
item delete
monster create : 몬스터가 생성될때 남는로그
monster killed1. 기록 단계별 분류
- 게임 로그는 DB에 쌓이는 것이기 때문에, DB Machine의 시스템 제약을 받습니다.
MMORPG는 동시에 수많은 액션이 발생하므로, 데이터 테이블을 여러 개 연결하는 작업이 많아지면,
데이터 적재시 동시처리에 지연을 가져올 수 있습니다.
- 그래서 게임 로그는 게임서버에서 얻을 수 있는 단순한 정보를 남기고 (원본 로그),
이를 다시 사람이 판별하기 쉽도록 변경하고, 여기에 부가정보를 더하는 과정을 (표준화 로그) 거치게 됩니다.
※ 최근에 개발된 게임들은, 별도의 재가공 없이 로그를 바로 읽을 수 있도록,
표준화 로그 형태로 작업이 많이 이루어 지고 있습니다.
2. 발생시간과 기록시간의 동시성에 따른 분류
A. 액션로그
- 액션이 발생할 때, 그 즉시 남는 로그를 액션로그라 하며, 대부분의 게임 로그는 여기에 포함됩니다.
- 액션로그는 액션의주체 + 액션정보 + 부가정보로 구성 됩니다.
아래는 액션로그의 예제 입니다.
데이터 | 로그이름 | 로그분류 | 로그주체 |
서버 다운 내역 | server close | 시스템 | server |
계정 플레이 타임 | account login | 게임 | server |
account logout | 게임 | server | |
캐릭터 플레이 타임 | character login | 게임 | server |
character logout | 게임 | server | |
클래스별 캐릭터 생성 | character create | 게임 | server |
레벨 업 | character levelup | 게임 | server |
아이템별 사용빈도 | character takeon con | 게임 | DB |
개인상점 거래품목 | character trade | 게임 | server |
아이템 생성 | item create | 게임 | server |
아이템 습득 | character get | 게임 | server |
아이템 드랍 | character drop | 게임 | server |
아이템 소비 | character useitem | 게임 | server |
아이템 소멸 | item delete | 게임 | server |
아이템 거래 | Item trade | 게임 | server |
아이템 강화 | character enchant | 게임 | server |
캐릭터 killed | character killed | 게임 | server |
'Computer > Server' 카테고리의 다른 글
[SQL] Index 체크 및 추가 (0) | 2016.01.08 |
---|---|
[AWS] MySQL Timezone Setup (0) | 2015.12.23 |
[Node.js] 우분투 14.04 설치 및 설정 (0) | 2015.11.17 |
[Jenkins] Yosemite 10.10 에서 Jenkins설치시 유의점 (0) | 2015.11.04 |
[Centos] 방화벽 포트 열기 (0) | 2015.08.28 |