> ## 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` показує лише вивід контейнера під час запуску (скрипти ініціалізації, міграції). `bin/logs` з Toolkit читає ті самі файли, див. [Журналювання](https://ayakaleaf-pro.mintlify.site/uk/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`, а також `third-party-datastore.log`, якщо ввімкнено Dropbox |
| `/var/log/nginx/` у поді | `access.log`, `error.log` nginx, що стоїть перед службами |
| `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/uk/on-premises/configuration/kubernetes/horizontal-scaling.md) кожен под має власні файли: використовуйте ім'я пода (`overleaf-0`, `overleaf-1`, ...) замість `deploy/overleaf`. Заголовок `X-Served-By`, який додає HAProxy, показує, яка репліка відповіла на запит.

`LOG_LEVEL` у ConfigMap (за замовчуванням `info`, також `debug`, `warn`, `error`) задає рівень для всіх служб пода одночасно.

### Зберігання журналів

Файли знаходяться в контейнері й втрачаються, коли под замінюється. Щоб зберегти їх, змонтуйте том у `/var/log/overleaf`, наприклад `hostPath` на вузлі або PersistentVolumeClaim, у Deployment чи StatefulSet:

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

Контейнер щодня ротує файли й зберігає п'ять, тож том не зростає безмежно. Або збирайте їх за цим шляхом агентом журналів вашого кластера.

### Перевірено на Kubernetes

На Kubernetes 1.37 з трьома репліками та томом `hostPath` у `/var/log/overleaf`, як вище, `/srv/overleaf-logs` кожного вузла містив дванадцять журналів служб його репліки, а команди з таблиці працювали, як показано: `tail` через `kubectl exec`, `kubectl cp` файлу журналу, `kubectl logs` пода Overleaf (запуск і міграції) та `mongo-0`.


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