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