S3 хранилище для лог-файлов
Общие сведения
Логи фоновых задач по умолчанию сохраняются локально в ./files/logs/tasks/. Для использования S3-совместимого хранилища настройте параметры в конфигурационном файле.
Необходимо в отказоустойчивых конфигурациях
В отказоустойчивых средах фоновые задачи запускаются на каждой ноде с серверов приложений: на одной ноде выполняется N-количество задач, на другой — своё количество. На вкладке Фоновые задачи в интерфейсе доступны только логи с текущей ноды. Чтобы просмотреть логи задач, выполнявшихся на другой ноде, потребуется подключаться к ней напрямую. При хранении лог-файлов в S3 все записи доступны из единого хранилища, и просмотр возможен из интерфейса без переключения между нодами.
Конфигурационный файл
Параметры S3 задаются в файле .env.local (в Docker сборке — .env), который расположен в следующих директориях в зависимости от установки Пассворка:
- Linux —
/var/www/.env.local - Windows Server —
C:\inetpub\wwwroot\passwork\.env.local - Docker —
/<passwork>/.env
Если файл отсутствует, его необходимо создать.
Параметры
| Параметр | Описание |
|---|---|
APP_FILES_SOURCE | Источник хранения: files.storage.local (по умолчанию) или files.storage.aws (S3). |
S3_REGION | Регион бакета. |
S3_BUCKET | Имя бакета. |
S3_STORAGE_PREFIX | Префикс пути внутри бакета (например, passwork-logs). |
S3_STORAGE_KEY | Access Key для S3. |
S3_STORAGE_SECRET | Secret Key для S3. |
S3_ENDPOINT | Endpoint хранилища. Для AWS S3 не указывается. |
S3_USE_PATH_STYLE_ENDPOINT | Path-style адресация: 0 — virtual-hosted style, 1 — path style (для MinIO — 1). |
Логи сохраняются по пути — {S3_STORAGE_PREFIX}logs/tasks/YYYY/MM/DD/task-{taskId}.log
Примеры
AWS S3
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=us-east-1
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_STORAGE_KEY=AKIAIOSFODNN7EXAMPLE
S3_STORAGE_SECRET=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
S3_USE_PATH_STYLE_ENDPOINT=0
MinIO
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=us-east-1
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_ENDPOINT=https://minio.example.com
S3_USE_PATH_STYLE_ENDPOINT=1
S3_STORAGE_KEY=webapp-logs
S3_STORAGE_SECRET=1GV6qaFpMYR11zs0VDEy
Yandex Cloud
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=ru-central1
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_ENDPOINT=https://storage.yandexcloud.net
S3_USE_PATH_STYLE_ENDPOINT=0
S3_STORAGE_KEY=YCAJEpJM_HfJaBrOYrdxpWG-n
S3_STORAGE_SECRET=YCMCZ0O2Rf2h3UET8ucqkXICmRyMNdVDBN5YSDvJ
Selectel
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=ru-3
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_ENDPOINT=https://s3.ru-3.storage.selcloud.ru
S3_USE_PATH_STYLE_ENDPOINT=0
S3_STORAGE_KEY=9734841e98904e24aecbaf3426e275cb
S3_STORAGE_SECRET=c8952ff63c8d4bb4847f6dc226bf2fbf
Timeweb Cloud
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=ru-1
S3_BUCKET=cde1da86-598e-4740-9619-9b2b6238377f
S3_STORAGE_PREFIX=passwork-logs
S3_ENDPOINT=https://s3.twcstorage.ru
S3_USE_PATH_STYLE_ENDPOINT=0
S3_STORAGE_KEY=EQ2P52Y5GAWM81MACLFB
S3_STORAGE_SECRET=MGv7vbQaVCDs0Fmgt1TL8yrjAxvhAOawcYb82Khq
VK Cloud
- shell
APP_FILES_SOURCE=files.storage.aws
S3_REGION=ru-msk
S3_BUCKET=pwk
S3_STORAGE_PREFIX=passwork-logs
S3_ENDPOINT=https://hb.ru-msk.vkcloud-storage.ru
S3_USE_PATH_STYLE_ENDPOINT=0
S3_STORAGE_KEY=i9f18Z5F1rcdLAh6VCRupg
S3_STORAGE_SECRET=7AXhW1vEkgg7ZAJ9kbtNHGnEtjcjW65iezYo5KxhvUbT
После изменения параметров необходимо перезапустить службу PHP-FPM или Docker контейнер:
- DEB
- RPM
- Docker
- PowerShell
systemctl restart php8.3-fpm
systemctl restart php-fpm
docker restart passwork_php
Restart-Service -Name "W3SVC"