Logs Collector
Logs Collector: Безопасный инструмент для сбора лог-файлов
Logs Collector — это высоконадежное и функциональное серверное приложение, разработанное как удобный инструмент для обеспечения контролируемого и безопасного сбора диагностических данных (лог-файлов) с удаленной клиентской инфраструктуры. Проект призван оптимизировать процесс технической поддержки и диагностики ошибок, когда прямой доступ к логам клиента ограничен или невозможен из соображений конфиденциальности.
Архитектура системы построена на современных принципах DevOps и безопасности, предлагая гибкость развертывания и простоту интеграции.
⚙️ Ключевые функции и ценность для поддержки
Упорядоченный и контролируемый процесс сбора данных
Система обеспечивает прозрачный рабочий процесс, где каждый сеанс загрузки логов привязан к конкретному обращению (тикету) в системе поддержки:
- Ticket-Centric Workflow: Создание тикетов и привязка к ним уникальных токенов доступа. Это обеспечивает полную отслеживаемость: всегда понятно, к какому обращению относится загруженный файл.
- Centralized Storage: Централизованное, безопасное хранение всех архивов.
- Data Lifecycle Management: Удаление тикета автоматически приводит к безопасному физическому удалению связанных лог-файлов из хранилища.
- Capacity Monitoring: Встроенный механизм отслеживания свободного места в хранилище для своевременного предотвращения проблем с дисковым пространством.
Удобство для клиента: Консольный загрузчик
Для максимального удобства клиента и простоты использования разработан дополнительный Shell-скрипт (uploader.sh).
- Назначение: Скрипт может быть передан клиенту для осуществления загрузки лог-архива напрямую из консоли его сервера с использованием
curl. - Преимущество: Это устраняет необходимость в веб-интерфейсе для загрузки и позволяет автоматизировать процесс передачи больших файлов, используя простое командное исполнение. Скрипт требует всего три параметра: домен, токен и путь к файлу.
🔒 Безопасность и надежность (Trust and Reliability)
Проект использует лучшие практики для обеспечения защищенной передачи данных:
| Механизм | Описание |
|---|---|
| Одноразовые Токены (High-Entropy) | Для скачивания/загрузки используются уникальные, криптографически стойкие токены, не связанные с учетными данными. Токены строго ограничены по сроку жизни и количеству попыток. |
| Принудительная 2FA | Обязательная двухфакторная аутентификация (2FA) для всех сотрудников при доступе к чувствительным функциям (скачивание логов, администрирование), что усиливает защиту от несанкционированного доступа. |
| Защита данных | Приложение использует стандартные методы защиты Django и DRF от распространенных атак (CSRF, XSS). |
💻 Технический стек и Архитектура
Стек и API
- Backend: Python
- Web Framework: Django
- API: Полнофункциональный RestFull API v1 для управления жизненным циклом тикетов и загрузок.
- Базы данных: Гибкая поддержка PostgreSQL 15+ (для Production) и SQLite3.
Развертывание и эксплуатация (DevOps Focus)
- Полная Докеризация: Оптимизированный, легковесный Docker-образ (менее 150 МБ) с быстрой сборкой.
- Гибкость конфигурации (12 Factor App): Все настройки управляются через переменные окружения, что обеспечивает простое и быстрое развертывание в любой среде.
- Оптимизация Gunicorn: Настройки WSGI-сервера Gunicorn (таймаут до 3600 секунд) откалиброваны для надежной обработки потенциально длительных HTTP-сессий при передаче больших лог-архивов.
- Reverse Proxy Compliance: Приложение спроектировано для обязательной работы за Reverse Proxy. Логирование настроено на чтение заголовка
X-Forwarded-Forдля корректного отображения реального IP-адреса. - Health Check: Предоставляется стандартный endpoint для автоматического мониторинга доступности.
🔗 Моя роль в проекте и открытый код
Мой вклад
- Разработка Backend: Реализация всей логики работы API, ORM, бизнес-логики и обработки файлов на Python/DRF.
- Разработка Frontend: Реализация адаптивного дизайна на основе Bootstrap 5 и JS.
- DevOps & Deployment: Проектирование архитектуры контейнеризации (Dockerfile, Docker Compose), оптимизация настроек Gunicorn.
- Security Implementation: Внедрение механизмов токенов, настройка 2FA, обеспечение безопасности на уровне фреймворков.
- Tooling: Разработка вспомогательного uploader.sh для улучшения пользовательского опыта.
Лицензирование
- Проект распространяется под лицензией GNU GPL 3.0, что демонстрирует приверженность принципам открытого исходного кода.