image

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)
  1. Полная Докеризация: Оптимизированный, легковесный Docker-образ (менее 150 МБ) с быстрой сборкой.
  2. Гибкость конфигурации (12 Factor App): Все настройки управляются через переменные окружения, что обеспечивает простое и быстрое развертывание в любой среде.
  3. Оптимизация Gunicorn: Настройки WSGI-сервера Gunicorn (таймаут до 3600 секунд) откалиброваны для надежной обработки потенциально длительных HTTP-сессий при передаче больших лог-архивов.
  4. Reverse Proxy Compliance: Приложение спроектировано для обязательной работы за Reverse Proxy. Логирование настроено на чтение заголовка X-Forwarded-For для корректного отображения реального IP-адреса.
  5. 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, что демонстрирует приверженность принципам открытого исходного кода.

Технологии:

Нужна помощь с вашим проектом?

Независимо от того, являетесь ли вы работодателем, который ищет специалиста, или руководите проектом, которому нужно свежее видение и надёжное исполнение, я открыт к новым возможностям. Свяжитесь со мной любым удобным способом, и мы обязательно обсудим, как я могу помочь вам в реализации ваших целей.