> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 로깅

> Kubernetes 배포의 로그를 읽고, 복사하고, 보관합니다.

Ayakaleaf Pro 파드 내부의 각 서비스는 `/var/log/overleaf/` 아래에 자체 로그 파일을 기록합니다. `kubectl logs`는 컨테이너의 시작 출력(초기화 스크립트, 마이그레이션)만 보여줍니다. Toolkit의 `bin/logs`는 같은 파일을 읽습니다. [로깅](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/overleaf-toolkit/logging.md)을 참조하세요.

| 위치 | 내용 |
| - | - |
| `kubectl -n overleaf logs <pod>` | 시작: 시크릿 확인, 마이그레이션(`Finished migrations`), 서비스 시작 |
| 파드 내 `/var/log/overleaf/<service>.log` | `web.log`, `web-api.log`, `clsi.log`, `real-time.log`, `document-updater.log`, `docstore.log`, `filestore.log`, `history-v1.log`, `project-history.log`, `chat.log`, `notifications.log`, `linked-url-proxy.log`, 그리고 Dropbox 활성화 시 `third-party-datastore.log` |
| 파드 내 `/var/log/nginx/` | 서비스 앞단 nginx의 `access.log`, `error.log` |
| `kubectl -n overleaf logs mongo-0`, `redis-0`, `git-bridge-0` | 각자의 파드에서 실행되는 MongoDB, Redis, git-bridge |

### 로그 읽기

| Toolkit | Kubernetes |
| - | - |
| `bin/logs web` | `kubectl -n overleaf exec deploy/overleaf -- tail -n 20 /var/log/overleaf/web.log` |
| `bin/logs -f web clsi` | `kubectl -n overleaf exec deploy/overleaf -- tail -f /var/log/overleaf/web.log /var/log/overleaf/clsi.log` |
| `bin/logs -n all web > web.log` | `kubectl -n overleaf cp overleaf/<pod>:/var/log/overleaf/web.log web.log` |
| `bin/logs mongo` | `kubectl -n overleaf logs mongo-0` |

[여러 레플리카](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/kubernetes/horizontal-scaling.md)를 사용하는 경우 각 파드는 자체 파일을 가지므로 `deploy/overleaf` 대신 파드 이름(`overleaf-0`, `overleaf-1`, ...)을 사용하세요. HAProxy가 추가하는 `X-Served-By` 헤더로 어느 레플리카가 요청에 응답했는지 알 수 있습니다.

ConfigMap의 `LOG_LEVEL`(기본값 `info`, 그 밖에 `debug`, `warn`, `error`)은 파드 내 모든 서비스의 로그 수준을 한 번에 설정합니다.

### 로그 보관

파일은 컨테이너 안에 있으므로 파드가 교체되면 사라집니다. 보관하려면 Deployment 또는 StatefulSet에서 `/var/log/overleaf`에 볼륨(예: 노드의 `hostPath` 또는 PersistentVolumeClaim)을 마운트하세요.

```yaml theme={null}
          volumeMounts:
            # ...
            - name: logs
              mountPath: /var/log/overleaf
      volumes:
        # ...
        - name: logs
          hostPath:
            path: /srv/overleaf-logs
            type: DirectoryOrCreate
```

컨테이너는 파일을 매일 순환하고 다섯 개를 보관하므로 볼륨이 끝없이 커지지 않습니다. 또는 클러스터의 로그 에이전트로 해당 경로에서 로그를 수집하세요.

### Kubernetes에서의 테스트

레플리카 세 개와 위와 같이 `/var/log/overleaf`에 `hostPath` 볼륨을 둔 Kubernetes 1.37에서, 각 노드의 `/srv/overleaf-logs`에는 해당 레플리카의 서비스 로그 12개가 보관되었고, 표의 명령은 표시된 대로 동작했습니다: `kubectl exec`를 통한 `tail`, 로그 파일의 `kubectl cp`, Overleaf 파드(시작 및 마이그레이션)와 `mongo-0`의 `kubectl logs`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.