Для стабільної роботи 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.
rocket_launch
Quick pick
Looking for a server that just works?
Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.
View VPS plans
arrow_forward
Міграція з 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).
rocket_launch
Quick pick
Looking for a server that just works?
Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.
View VPS plans
arrow_forward
Висновки
Self-hosted Sentry — це потужне рішення, яке окупається вже в перший місяць при наявності більше 3-х активних проєктів, вимагаючи лише якісний VPS з 8-16 GB RAM. Для стабільної роботи критично використовувати NVMe-диски і налаштувати retention-політику на 14-30 днів, щоб уникнути переповнення сховища ClickHouse. Рекомендується розгортати Sentry на чистій ОС Ubuntu 22.04 через офіційний інсталятор, попередньо налаштувавши Reverse Proxy для захисту даних.
Готові обрати сервер?
VPS та виділені сервери в 72+ країнах з миттєвою активацією та повним root-доступом.
Почати зараз →