Если ты когда-нибудь деплоил веб-приложения и не сталкивался с ошибками в проде — поздравляю, ты либо бог, либо у тебя никто не пользуется сервисом. В реальности же баги случаются всегда, и чем раньше ты о них узнаешь, тем меньше нервов потратишь на разбор полётов. Для этого и придумали мониторинг ошибок. Один из самых крутых и простых инструментов для этого — Sentry.
Возможности
- Автоматический сбор ошибок и исключений из приложения (backend, frontend, мобильные, десктопные — почти всё, что движется)
- Удобная группировка ошибок по типу/трейсу/пользователю
- Детализация: stack trace, параметры, окружение, версия, пользователь
- Интеграции: Slack, Telegram, Email, Webhook, Jira и т.д.
- Performance monitoring (метрики производительности, APM-лайт)
- Open source (можно хостить у себя, не обязательно юзать облако)
Что требуется
- Любая современная ОС: Linux, Windows, MacOS (для self-hosted)
- Docker (рекомендовано, иначе готовься к пляскам с зависимостями)
- Железо: 2+ CPU, 4+ ГБ RAM для теста, 8+ ГБ RAM для боевого окружения — Sentry любит поесть
- Почта для уведомлений (SMTP), если нужно
- Доступ в интернет (для загрузки образов и зависимостей)
Установка — пошаговая инструкция
Я покажу установку self-hosted Sentry через Docker Compose — это самый простой и быстрый способ, который не заставит тебя страдать с Python и зависимостями вручную.
- Клонируем репозиторий:
git clone https://github.com/getsentry/self-hosted.git sentry-selfhosted
- Переходим в папку:
cd sentry-selfhosted
- Обновляем submodules (важно!):
git submodule update --init --recursive
- Кастомизируем .env (по желанию):
cp .env.example .env
Открой.env
и пропиши свои параметры (например, почту, адрес, порт и т.д.) - Запускаем установку:
./install.sh
(Будет долго, но это нормально — тянет всё, что нужно) - Запускаем Sentry:
docker compose up -d
- Открываем в браузере:
http://localhost:9000
(или свой IP/домен) - Регистрируем первого пользователя:
docker compose run --rm web createuser
Вуаля! У тебя свой Sentry, готовый к бою. Официальная дока: https://develop.sentry.dev/self-hosted/
Использование: команды и варианты
Sentry работает как веб-интерфейс + API. Но вот самые частые штуки, которые тебе пригодятся:
- Добавить новый проект: через UI (Projects → Create Project), выбери нужный язык/фреймворк.
- Интегрировать SDK: для каждого языка есть свой пакет. Например, для Python:
pip install --upgrade sentry-sdk
и в коде:
import sentry_sdk sentry_sdk.init( dsn="https://...@sentry.yourdomain.com/1", traces_sample_rate=1.0 )
Для других языков — смотри https://docs.sentry.io/platforms/
- Обновить Sentry:
git pull git submodule update --init --recursive ./install.sh docker compose up -d
- Посмотреть логи:
docker compose logs -f web
- Перезапустить сервис:
docker compose restart web
- Бэкап базы:
docker compose exec postgres pg_dumpall -U postgres > sentry_backup.sql
Sentry поддерживает тонну интеграций и кастомных алертов — смотри официальную доку.
Ошибки: как делать не надо
- Не ставь Sentry на слабое железо. Он реально прожорлив, особенно если у тебя не маленький проект.
- Не пихай продовый DSN в тестовые среды. Потом замучаешься фильтровать мусор.
- Не забывай про SMTP. Без настроенной почты не увидишь алертов.
- Не игнорируй обновления. Sentry быстро развивается, баги фиксят часто.
- Не смешивай логи из разных окружений в одном проекте. Разделяй прод, стейдж, дев.
- Не выкладывай DSN публично. Иначе любой сможет слать тебе ложные ошибки.
Пример реального использования в окружении
В одном из проектов (Python/Django + React) Sentry был внедрён за вечер. Сначала мы словили пару неожиданных 500-ок, которые не воспроизводились локально. Sentry показал полный stack trace, включая значения переменных и ID пользователя. Оказалось, что баг был только у пользователей с определённым языком интерфейса. Благодаря Sentry мы починили это за 20 минут, хотя без него искали бы неделю.
Потом настроили алерты в Slack — теперь если что-то падает, команда узнаёт моментально, а не когда пользователи начинают писать гневные письма.
Заключение
Sentry — это must-have для любого современного веб-приложения. Он реально спасает время и деньги, а главное — нервы. Ставится быстро, работает стабильно, легко интегрируется с чем угодно. Если ещё не используешь — попробуй, потом себе спасибо скажешь.
Официальные ссылки:
sentry.io
github.com/getsentry/self-hosted
docs.sentry.io
Ваш отзыв