감사 로그
플랫폼 전체의 관리·시스템 행위를 시간순으로 남긴 기록 — 누가 언제 무엇을 했는지 추적한다.
언제 쓰나
문제가 생겼을 때 원인을 되짚거나, 특정 조직·행위자의 활동을 감사할 때 본다. 크레딧 판매, 노드 등록·해제, 예약 승인, 팀 강제 중지 같은 운영 행위와 시스템이 자동으로 한 조치(자동 중지·크레딧 소진 중지·팀 잠금)가 모두 남는다.
화면
감사 로그는 플랫폼 전역 이벤트를 최신순으로 보여준다.
감사 로그
| 컬럼 | 의미 |
|---|---|
시간 | 이벤트 발생 시각 |
행위자 | 실행 주체. 관리자 이메일, 유저 이름, 또는 system |
액션 | 행위 코드(reservation.submit, instance.team_locked 등) |
대상 | 행위 대상(예약 코드·노드명·팀명 등). 없으면 - |
| 이벤트 코드 | 우측의 EVT-…. 이벤트 하나의 고유 식별자 |
우측 상단 전체 조직 드롭다운으로 조직을 골라 필터링한다. 조회는 최신순이고 기본 100건(최대 500건)까지 불러온다.
액션 종류
행위자 유형은 user·org_admin·super_admin·system 넷이다. 주요 액션을 분류하면 다음과 같다.
| 분류 | 액션 예 | 주체 |
|---|---|---|
| 인증 | auth.admin_login, auth.member_login, auth.member_join, auth.password_change | 관리자·유저 |
| 조직 | org.create, org.aws_update, org.sell_credits, org.delete | Super Admin |
| 단가표 | node_type.create, node_type.update, node_type.delete | Super Admin |
| 노드 풀 | node.register, node.unregister, node.disable, node.enable | Super Admin |
| 예약 | reservation.submit, reservation.approve, reservation.adjust, reservation.reject, reservation.accept_adjustment | 유저·Super Admin |
| 노드 요청 | node_request.done, node_request.rejected | Super Admin |
| 팀 | team.create, team.update, team.delete, team.force_stop, team.reset_code, team.unlock, team.allowed_types | Org Admin·Super Admin |
| 멤버 | member.activate, member.deactivate | Org Admin |
| 서버리스 | llm_key.issue, llm_key.claim, llm_key.update, llm_key.revoke | Org Admin·유저 |
| 인스턴스 | instance.launch, instance.start, instance.stop, instance.change_type | 유저 |
| 보안 그룹 | sg.rule_add, sg.rule_delete | 유저 |
| 플랫폼 설정 | platform.settings_update | Super Admin |
| 시스템 자동 | instance.auto_stop, instance.credits_exhausted, instance.team_locked, team.lockdown | system |
절차
- 조사할 조직을
전체 조직드롭다운에서 고른다(선택). - 목록을 시간순으로 훑는다. 각 행의 액션·행위자·대상으로 무슨 일이 있었는지 읽는다.
- 특정 이벤트의 상세가 필요하면 그 행의 detail을 본다. before/after나 정산 금액 같은 부가 정보가 담긴다.
이렇게 되면 정상
- 예약 신청·승인, 키 발급·수령·폐기, 인스턴스 시작·중지가 모두 시간순으로 남는다.
- 시스템이 자동으로 한 조치도
system행위자로 남는다. 예를 들어 크레딧이 바닥나 중지된 인스턴스는instance.credits_exhausted로, 팀 잠금으로 중지된 인스턴스는instance.team_locked로 기록된다. - 각 이벤트에 고유한
EVT-…코드가 붙는다.
막히는 경우
| 증상 | 원인 | 조치 |
|---|---|---|
| 찾는 이벤트가 안 보임 | 기본 100건만 조회 | 필터(조직·액션)로 범위를 좁히거나 조회 한도를 늘린다(최대 500건) |
| 조직 필터에 아무것도 안 뜸 | 그 조직 범위의 이벤트가 없음 | 인증·시스템 이벤트는 조직 없이 남는 경우가 있다. 전체 조직으로 확인 |
알아둘 것
- 감사 로그는 append-only다. 이벤트는 추가만 되고 수정·삭제되지 않는다. 조직을 제거해도 그 조직의 감사 기록은 보존된다(D-021).
- 시스템 주도 중지도 기록된다(D-026). auto_stop·credits_exhausted·team_locked 같은 자동 조치를
system행위자로 남기고, 정산 금액을 detail에 포함한다. 유저 중지는 API가instance.stop으로 기록한다. - Org Admin은 자기 조직 범위만 본다. Org Admin의
사용 로그는 자기 조직의 액션 이력과 세션 추적을 보여주고 CSV로 내보낸다. 이 플랫폼 전역 감사 로그는 Super Admin 전용이다. - detail 필드는 JSONB다. 액션마다 담기는 내용이 다르다. 조직 제거는 회수·정산 금액을, 단가 수정은 before/after를, 노드 등록 해제는 숨겨진 인스턴스 목록을 남긴다.