Self-hosted Sentry: error tracking без подписки $30+

calendar_month 8 мая 2026 schedule 6 мин. чтения visibility 14 просмотров
person
Valebyte Team
Self-hosted Sentry: error tracking без подписки $30+
Для стабильной работы sentry self hosted на 10-20 проектов с объемом до 50 000 событий в месяц потребуется VPS с минимум 8 GB RAM, 4 vCPU и 80 GB NVMe-диска, что позволяет полностью отказаться от подписки Sentry.io стоимостью от $29/мес и получить полный контроль над данными.

Sentry — это индустриальный стандарт для мониторинга ошибок и производительности приложений (APM). Однако ценовая политика SaaS-версии часто становится барьером для растущих команд: начальный платный тариф стартует от $29, а бизнес-план — от $249 в месяц. Переход на sentry on premise позволяет не только сэкономить бюджет, но и соблюсти требования безопасности (GDPR, 152-ФЗ), так как трейсы ошибок и данные пользователей не покидают ваш контур.

Требования к железу: почему sentry self hosted требует 8GB RAM?

Развертывание свой sentry — это не просто запуск одного контейнера. Современная архитектура Sentry состоит из 25+ микросервисов, включая такие тяжеловесные компоненты, как Kafka, ClickHouse и Snuba. Попытка запустить систему на сервере с 4 GB RAM приведет к неминуемому срабатыванию OOM Killer в первые же часы работы.

Минимальные и рекомендуемые характеристики VPS

Для комфортной работы error tracking vps должен обладать запасом ресурсов. Ниже приведены требования, основанные на реальных бенчмарках при нагрузке 10-15 событий в секунду (EPS).

Характеристика Минимум (Dev/Small) Рекомендуемо (Production) High Load (100+ EPS)
CPU (vCores) 4 Cores (2.5 GHz+) 8 Cores 16+ Cores
RAM 8 GB 16 GB 32 GB+
Disk Type NVMe SSD NVMe SSD (RAID 1) NVMe SSD (Enterprise)
Disk Space 80 GB 200 GB 500 GB+
ОС Ubuntu 22.04 LTS Debian 12 / Ubuntu 24.04 Debian 12

Важно понимать, что ClickHouse и Kafka очень чувствительны к скорости дисковой подсистемы. Использование обычных HDD или медленных сетевых дисков приведет к огромным задержкам (lag) в обработке событий. Если вы планируете хранить логи долго, ознакомьтесь с темой переезда с AWS Lightsail на выделенные серверы, чтобы получить максимальный IOPS за те же деньги.

Архитектура sentry on premise: ClickHouse, Postgres и Kafka

Современный sentry on premise отошел от простой модели "Postgres + Redis". Теперь это сложный конвейер обработки данных. Понимание его устройства критично для траблшутинга и настройки retention-политик.

Роль компонентов в стеке

  • PostgreSQL: Хранит метаданные — пользователей, настройки проектов, ключи API, структуру команд. Сами ошибки здесь не лежат.
  • Redis: Используется как брокер для Celery-задач и кэширования промежуточных данных.
  • Kafka: Выступает в роли буфера. Все входящие события сначала попадают в Kafka, что позволяет Sentry выдерживать пиковые нагрузки без потери данных.
  • ClickHouse: Главное хранилище всех событий и таймингов. Именно благодаря ему Sentry мгновенно строит графики по миллионам записей.
  • Snuba: Сервис-прослойка, которая переводит запросы Sentry в SQL-запросы для ClickHouse.
  • Symbolicator: Обрабатывает нативные стектрейсы (C++, Rust, Android) и сопоставляет их с символами отладки.

Такое разделение позволяет масштабировать error tracking vps горизонтально, но на одном сервере требует жесткого лимитирования ресурсов для каждого Docker-контейнера. Если вы строите комплексную систему мониторинга, возможно, вам также будет интересно внедрить self-hosted аналитику без Google для полной независимости стека.

Ищете надёжный сервер для ваших проектов?

VPS от $10/мес и выделенные серверы от $9/мес с NVMe, DDoS-защитой и поддержкой 24/7.

Смотреть предложения →

Пошаговая установка через sentry docker compose

Официальный способ развертывания — репозиторий getsentry/self-hosted. Это набор скриптов, которые автоматизируют настройку sentry docker окружения, создание сетей и томов.

Шаг 1: Подготовка системы

Обновите пакеты и установите необходимые зависимости. Вам понадобятся Docker и Docker Compose (плагин V2).

sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl build-essential

# Установка Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Шаг 2: Клонирование и настройка

Мы будем использовать последнюю стабильную версию. Не рекомендуется использовать ветку master для продакшена.

git clone https://github.com/getsentry/self-hosted.git
cd self-hosted

# Проверка соответствия системным требованиям
# Скрипт install.sh сам проверит RAM, но лучше убедиться заранее

Шаг 3: Запуск инсталлятора

Скрипт ./install.sh выполнит миграции базы данных, настроит Kafka топики и создаст пользователя администратора. Процесс занимает от 10 до 20 минут в зависимости от скорости диска и процессора.

./install.sh

Во время установки вас попросят создать учетную запись администратора. Обязательно сохраните эти данные. После завершения запустите контейнеры:

docker compose up -d

После запуска ваш свой sentry будет доступен по адресу http://IP_ВАШЕГО_СЕРВЕРА:9000. Для работы в продакшене крайне рекомендуется настроить Reverse Proxy (Nginx или Traefik) с поддержкой SSL. Безопасность доступа к панели управления так же важна, как и защита паролей в команде через self-hosted Vaultwarden.

Миграция с SaaS (Sentry.io) на свой VPS

Многие команды начинают с бесплатного или дешевого тарифа на Sentry.io, но со временем упираются в лимиты. Перенести данные из облака в sentry self hosted можно, но с определенными нюансами. Прямого импорта базы "одной кнопкой" не существует из-за различий в версиях API и архитектуре ClickHouse в облаке.

Экспорт через API и CLI

Основной способ миграции — использование встроенной команды export. Однако она переносит только структуру (проекты, команды, ключи), но не сами исторические события ошибок.

  1. Создайте Auth Token в панели Sentry.io с правами org:read.
  2. Используйте Docker-контейнер Sentry для выполнения экспорта:
    docker compose run --rm web export /home/sentry-export.json
  3. Для облачной версии придется использовать API для выгрузки настроек проектов и воссоздания их локально через Terraform или кастомные скрипты на Python.

Смена DSN: критический этап

После поднятия sentry on premise у вас изменятся DSN (Data Source Name) для всех проектов. Вам придется обновить конфиги во всех микросервисах и фронтенд-приложениях. Если у вас много проектов на Next.js, процесс можно автоматизировать, следуя принципам миграции Next.js на свой VPS.

Совет: Не удаляйте сразу аккаунт в Sentry.io. Оставьте его как fallback на 2 недели, пока все клиенты не обновят закэшированные DSN в своих браузерах или приложениях.

Настройка Retention: как не забить диск логами

По умолчанию sentry docker хранит события 90 дней. При большом потоке ошибок (например, зацикленный фронтенд-баг у тысяч пользователей) ClickHouse может быстро "съесть" все свободное место на NVMe.

Изменение срока хранения данных

Настройки retention задаются в файле .env или напрямую в конфигурации Snuba. Чтобы изменить срок хранения на 30 дней (оптимально для большинства), отредактируйте переменные:

# В файле .env в директории self-hosted
SENTRY_EVENT_RETENTION_DAYS=30

После изменения необходимо перезапустить контейнеры и дождаться отработки worker-ов, которые очищают старые партиции в ClickHouse.

Очистка неиспользуемых данных

Иногда Docker-тома начинают занимать слишком много места из-за логов самих контейнеров. Используйте команду для очистки:

docker system prune -a --volumes --filter "label!=com.docker.compose.project=self-hosted"

Также полезно настроить ротацию логов Docker в /etc/docker/daemon.json, чтобы один контейнер не мог создать лог-файл на 50 GB.

Оптимизация производительности и тюнинг ClickHouse

Если ваш error tracking vps начинает тормозить, первым делом проверьте потребление памяти ClickHouse. По умолчанию он пытается занять до 50% доступной RAM. В условиях 8-16 GB сервера это может привести к конфликтам с Kafka.

В файле clickhouse/config.xml можно ограничить использование ресурсов:

<max_server_memory_usage>4000000000</max_server_memory_usage>
<max_thread_pool_size>8</max_thread_pool_size>

Для разработчиков, которые активно используют AI для исправления найденных в Sentry багов, отличным дополнением станет связка Continue.dev + Ollama, развернутая на том же или соседнем сервере. Это позволяет анализировать трейсы ошибок локальной нейросетью без отправки кода во внешний мир.

Мониторинг очередей Kafka

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

docker compose run --rm kafka kafka-consumer-groups --bootstrap-server kafka:9092 --describe --group snuba-consumers

Если поле LAG растет, вам нужно либо увеличивать количество ядер CPU, либо оптимизировать количество отправляемых событий на стороне клиента (sampling).

Выводы

Self-hosted Sentry — это мощное решение, которое окупается уже в первый месяц при наличии более 3-х активных проектов, требуя лишь качественный VPS с 8-16 GB RAM. Для стабильной работы критично использовать NVMe-диски и настроить retention-политику на 14-30 дней, чтобы избежать переполнения хранилища ClickHouse. Рекомендуется разворачивать Sentry на чистой ОС Ubuntu 22.04 через официальный инсталлятор, предварительно настроив Reverse Proxy для защиты данных.

Готовы выбрать сервер?

VPS и выделенные серверы в 72+ странах с мгновенной активацией и полным root-доступом.

Начать сейчас →

Share this post:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.