Для стабильной работы 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. Однако она переносит только структуру (проекты, команды, ключи), но не сами исторические события ошибок.
- Создайте Auth Token в панели Sentry.io с правами
org:read.
- Используйте Docker-контейнер Sentry для выполнения экспорта:
docker compose run --rm web export /home/sentry-export.json
- Для облачной версии придется использовать 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-доступом.
Начать сейчас →