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

> Logs eines Kubernetes-Deployments lesen, kopieren und aufbewahren.

Jeder Dienst im Ayakaleaf Pro-Pod schreibt seine eigene Logdatei unter `/var/log/overleaf/`; `kubectl logs` zeigt nur die Startausgabe des Containers (Init-Skripte, Migrationen). `bin/logs` des Toolkits liest dieselben Dateien, siehe [Logging](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/overleaf-toolkit/logging.md).

| Wo | Was |
| - | - |
| `kubectl -n overleaf logs <pod>` | Start: Prüfung der Secrets, Migrationen (`Finished migrations`), Starten der Dienste |
| `/var/log/overleaf/<service>.log` im 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` sowie `third-party-datastore.log`, wenn Dropbox aktiviert ist |
| `/var/log/nginx/` im Pod | `access.log`, `error.log` des nginx vor den Diensten |
| `kubectl -n overleaf logs mongo-0`, `redis-0`, `git-bridge-0` | MongoDB, Redis und git-bridge, die in eigenen Pods laufen |

### Logs lesen

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

Mit [mehreren Replikaten](https://ayakaleaf-pro.mintlify.site/de/on-premises/configuration/kubernetes/horizontal-scaling.md) hat jeder Pod seine eigenen Dateien: Verwenden Sie den Pod-Namen (`overleaf-0`, `overleaf-1`, ...) statt `deploy/overleaf`. Der von HAProxy hinzugefügte Header `X-Served-By` zeigt an, welches Replikat eine Anfrage beantwortet hat.

`LOG_LEVEL` in der ConfigMap (Standard `info`, außerdem `debug`, `warn`, `error`) legt die Stufe aller Dienste im Pod auf einmal fest.

### Logs aufbewahren

Die Dateien liegen im Container und gehen verloren, wenn der Pod ersetzt wird. Um sie aufzubewahren, binden Sie im Deployment oder StatefulSet ein Volume unter `/var/log/overleaf` ein, zum Beispiel einen `hostPath` auf dem Knoten oder einen PersistentVolumeClaim:

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

Der Container rotiert die Dateien täglich und behält fünf, sodass das Volume nicht unbegrenzt wächst. Alternativ können Sie sie mit dem Log-Agenten Ihres Clusters von diesem Pfad einsammeln.

### Auf Kubernetes getestet

Auf Kubernetes 1.37 mit drei Replikaten und einem `hostPath`-Volume unter `/var/log/overleaf` wie oben enthielt `/srv/overleaf-logs` auf jedem Knoten die zwölf Dienst-Logs seines Replikats, und die Befehle in der Tabelle funktionierten wie gezeigt: `tail` über `kubectl exec`, `kubectl cp` einer Logdatei, `kubectl logs` des Overleaf-Pods (Start und Migrationen) und von `mongo-0`.


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