image

Logs Collector

Цель

Если вы являетесь разработчиком ПО которое в дальнейшем клиенты используют в своей инфраструктуре, вы должны понимать, как иногда бывает трудно изучить проблему с ПО не имея доступа к серверу на котором это ПО работает.

Для решения этой задачи вы можете настраивать ПО на автоматическую отправку обезличенных отчетов о сбоях например использовать Sentry. Это не всегда приемлемо для клиента, к тому же информация может быть не полной или клиенту требуется повышенная конфиденциальность.

В таком случае вы можете попросить клиента отправить вам нужные лог файлы и изучить их в последствии. Но тут возникает другая проблема вам нужен безопасный способ передачи этих файлов как для вас так и для клиента. Это мог быть FTP, SFTP, облако etc. Но что если вы не хотите давать клиенту данные для аутентификации и авторизации?

Возможно у вас есть доступ к серверу клиента и вы можете прочитать лог файлы на месте. И казалось бы проблема решена. Но на сервере клиента могут отсутствовать инструменты для удобного изучения лог файлов. Даже если сотрудник поддержки может забрать себе нужные файлы и изучить их локально, возникает проблема распространения этих файлов между другими сотрудниками.

Logs-collector позволяет решить эти задачи.

Logs-collector является удаленным хранилищем и может принимать и отдавать файлы.

Термины

  • Платформа: это ПО разработанное вашей компанией
  • Тикет: это номер связанный с тикетом в вашей help desk системе
  • Архив: это загруженный лог файл (поддерживается любой формат)

Как это работает?

  • Создаете платформы
  • Создаете тикет связанный с платформой и номером
  • Передаете клиенту уникальный токен тикета
  • Клиент загружает архив лог файлов
  • Скачиваете архив (находите решение проблемы)
  • Удаляете архив или тикет или отмечаете тикет решенным

Особенности

  • Централизованное хранилище
  • Для загрузки файла не нужно давать auth credentials
  • Каждый токен на загрузку уникален и связан только с одним тикетом
  • Токен имеет ограничение на количество попыток и время жизни
  • Загрузить файл можно из консоли или через веб
  • Полнофункциональный RestFullAPI v1
  • Мониторинг свободного пространства в хранилище
  • Удаление архива или тикета так же удаляет физические файлы
  • Приложение соответствует архитектуре приложения 12 факторов
  • Гибкая настройка развертывания переменными окружения
  • Приложение докеризировано, размер образа меньше 150mb
  • Может работать как с sqlite3 так и с PostgreSQL^15
  • Управление статикой без настройки для этого веб сервера
  • healthcheck проверка доступности приложения

Безопасность

  • Токен на загрузку не связан с авторизацией
  • Токен на загрузку обладает высокой энтропией.
  • Двухфакторная аутентификация для пользователей
  • Для скачивания файла - 2FA должна быть принудительно включена
  • Админ панель пропатчена на принудительное использование 2FA
  • Пользователь в контейнере является не привилегированным
  • Стандартные методы защиты Django и DRF

Установка

Подробные инструкции по установке и настройке см. README.md

Технологии:

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

Если вы работодатель или управляете проектом я буду рад сотрудничеству. Свяжитесь со мной и мы обсудим детали.