> ## 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.

# Logging

> Baca, salin, dan simpan log dari deployment Kubernetes.

Setiap layanan di dalam pod Ayakaleaf Pro menulis file log-nya sendiri di bawah `/var/log/overleaf/`; `kubectl logs` hanya menampilkan output startup kontainer (skrip init, migrasi). `bin/logs` milik Toolkit membaca file yang sama, lihat [Logging](https://ayakaleaf-pro.mintlify.site/id/on-premises/configuration/overleaf-toolkit/logging.md).

| Lokasi | Isi |
| - | - |
| `kubectl -n overleaf logs <pod>` | startup: pemeriksaan secret, migrasi (`Finished migrations`), layanan dimulai |
| `/var/log/overleaf/<service>.log` di pod | `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`, dan `third-party-datastore.log` saat Dropbox aktif |
| `/var/log/nginx/` di pod | `access.log`, `error.log` dari nginx di depan layanan-layanan |
| `kubectl -n overleaf logs mongo-0`, `redis-0`, `git-bridge-0` | MongoDB, Redis, dan git-bridge, yang berjalan di pod masing-masing |

### Membaca log

| 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` |

Dengan [beberapa replika](https://ayakaleaf-pro.mintlify.site/id/on-premises/configuration/kubernetes/horizontal-scaling.md), setiap pod memiliki file-nya sendiri: gunakan nama pod (`overleaf-0`, `overleaf-1`, ...) sebagai ganti `deploy/overleaf`. Header `X-Served-By` yang ditambahkan HAProxy menunjukkan replika mana yang menjawab sebuah permintaan.

`LOG_LEVEL` di ConfigMap (default `info`, juga `debug`, `warn`, `error`) mengatur level setiap layanan di pod sekaligus.

### Menyimpan log

File-file tersebut berada di kontainer dan hilang saat pod diganti. Untuk menyimpannya, mount sebuah volume di `/var/log/overleaf`, misalnya `hostPath` di node atau PersistentVolumeClaim, di Deployment atau StatefulSet:

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

Kontainer merotasi file setiap hari dan menyimpan lima, sehingga volume tidak tumbuh tanpa batas. Atau kumpulkan log dari path tersebut dengan agen log klaster Anda.

### Diuji di Kubernetes

Di Kubernetes 1.37 dengan tiga replika dan volume `hostPath` di `/var/log/overleaf` seperti di atas, `/srv/overleaf-logs` di setiap node menyimpan dua belas log layanan dari replikanya, dan perintah-perintah di tabel berfungsi seperti yang ditunjukkan: `tail` melalui `kubectl exec`, `kubectl cp` dari file log, `kubectl logs` dari pod Overleaf (startup dan migrasi) dan dari `mongo-0`.


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