Sentry: мониторинг ошибок в веб-приложениях

Если ты когда-нибудь деплоил веб-приложения и не сталкивался с ошибками в проде — поздравляю, ты либо бог, либо у тебя никто не пользуется сервисом. В реальности же баги случаются всегда, и чем раньше ты о них узнаешь, тем меньше нервов потратишь на разбор полётов. Для этого и придумали мониторинг ошибок. Один из самых крутых и простых инструментов для этого — 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 и зависимостями вручную.

  1. Клонируем репозиторий:
    git clone https://github.com/getsentry/self-hosted.git sentry-selfhosted
  2. Переходим в папку:
    cd sentry-selfhosted
  3. Обновляем submodules (важно!):
    git submodule update --init --recursive
  4. Кастомизируем .env (по желанию):
    cp .env.example .env
    Открой .env и пропиши свои параметры (например, почту, адрес, порт и т.д.)
  5. Запускаем установку:
    ./install.sh
    (Будет долго, но это нормально — тянет всё, что нужно)
  6. Запускаем Sentry:
    docker compose up -d
  7. Открываем в браузере:
    http://localhost:9000 (или свой IP/домен)
  8. Регистрируем первого пользователя:
    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

Хотите прочитать больше про Разное?
Отзывов нет.

Ваш отзыв

Пожалуйста, заполните поля снизу и добавьте отзыв!.
Имя *
E-mail *
Сайт
Сообщение *