Sentry – средство мониторинга кода, позволяющее разработчикам отслеживать и производить отладку ошибок и проблем с производительностью.
Инструменты для отслеживания ошибок позволяют быстро найти ошибку в коде или другой источник проблемы и устранить его.
Sentry автоматически собирает необработанные исключения (ошибки), группируя их вместе для упрощения разбора.
- При мониторинге веб-приложения есть возможность воспроизвести сценарий пользователя и найти ошибку в коде, будь то “питон”, “джава”, “джаваскрипт” или “си”. Также система отслеживания ошибок позволяет найти проблемную строчку кода, используя карты исходников.
- Если настроить Sentry и для фронтенда, и для бэкенда, станет возможно использование распределенной трассировки, позволяющей увидеть последовательность действий (как на фронтенде, так и на бэкенде), которая привела к интересующему вас событию.
- Также можно настроить интеграцию для работы с исходным кодом, что позволит упростить поиск возможных коммитов, ставших причиной ошибки, а также предложить кандидатов для исправления на основе авторов коммитов.
В данной статье мы рассмотрим процесс установки и первичной настройки Sentry на готовом решении Docker, но установка также может производиться на любом дистрибутиве с установленными docker, docker-compose и git. С помощью облачной инфраструктуры Beget вы можете выбрать подходящий сервер с предустановленным дистрибутивом и настроить на нем Sentry.
Установка Sentry
Установка программы для отслеживания ошибок Sentry производится с помощью Docker Compose и может быть выполнена как на готовом решении Docker, так и на любом образе с установленным вручную Docker. Минимальные требования к серверу для установки согласно документации:
- 4 ядра;
- 16 Гб оперативной памяти;
- 20 Гб дискового пространства.
Минимальная требуемая версия Docker – 19.03.6, Compose – 2.23.2.
Обратите внимание! Указанные выше требования – минимальные. В зависимости от нагрузки может потребоваться более высокая конфигурация для корректной работы Sentry.
Для установки подключитесь к серверу по SSH либо воспользуйтесь терминалом в панели управления.
Создайте директорию для файлов Sentry, например, /opt/sentry-self-hosted:
sudo mkdir -p /opt/sentry-self-hosted
cd /opt/sentry-self-hostedКлонируйте репозиторий:
git clone https://github.com/getsentry/self-hosted.git .Переключитесь на ветку нужной вам версии, например, 24.12.1:
git checkout 24.12.1И запустите процесс установки:
sudo ./install.shВыберите, отправлять или нет диагностические данные Sentry:
Hey, so ... we would love to automatically find out about issues with your
Sentry instance so that we can improve the product. Turns out there is an app
for that, called Sentry. Would you be willing to let us automatically send data
about your instance upstream to Sentry for development and debugging purposes?
y / yes / 1
n / no / 0
(Btw, we send this to our own self-hosted Sentry instance, not to Sentry SaaS,
so that we can be in this together.)
Here's the info we may collect:
- OS username
- IP address
- install log
- runtime errors
- performance data
Thirty (30) day retention. No marketing. Privacy policy at sentry.io/privacy.
y or n? n
Скрипт загрузит образы контейнеров, запустит их и подготовит к работе. Создайте аккаунт администратора, указав email и пароль:
Would you like to create a user account now? [Y/n]: y
Email: example@betutorial.ru
Password:/usr/local/lib/python3.13/getpass.py:90: GetPassWarning: Can not control echo on the terminal.
passwd = fallback_getpass(prompt, stream)
Warning: Password input may be echoed.
REDACTED
Repeat for confirmation:
Warning: Password input may be echoed.
REDACTED
Added to organization: sentry
User created: example@betutorial.ru
После чего дождитесь завершения установки. Скрипт установит необходимые файлы, а также сформирует базовую конфигурацию.
Чтобы избежать ошибки проверки CSRF-токена при авторизации, необходимо скорректировать конфигурацию Sentry. Для этого перейдите в директорию, куда был клонирован репозиторий, и откройте файл sentry/config.yml удобным вам редактором, например, vim. В файле раскомментируйте строку system.url-prefix: и измените значение на домен, использованный при настройке реверс-прокси, либо IP сервера и порт 9000. Например, для домена sentry.betutorial.ru строчка будет выглядеть следующим образом:
system.url-prefix: https://sentry.betutorial.ruДля IP сервера (в данном примере 192.168.13.37, в вашей конфигурации используйте IP сервера):
system.url-prefix: http://192.168.13.37:9000Здесь же вы можете настроить другие параметры Sentry, более подробно о конфигурации вы можете прочитать в официальной документации.
После чего сохраните файл и закройте текстовый редактор. Для применения настроек запустите скрипт install.sh повторно:
sudo ./install.shПосле чего дождитесь завершения обновления конфигурации и запустите контейнеры командой:
sudo docker compose up --waitПервичная настройка
Добавление реверс-прокси на примере Caddy (опционально)
Sentry рекомендуется устанавливать за реверс-прокси на собственном домене с сертификатом SSL. В рамках этой статьи будет использоваться Caddy для более простой настройки и автоматического получения SSL-сертификатов.
Если Caddy не установлен, на ОС Ubuntu установка производится следующим набором команд:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddyЗатем перейдите в директорию /etc/caddy:
cd /etc/caddyОткройте файл Caddyfile удобным вам текстовым редактором, например, vim, и добавьте блок следующего вида:
domain_name {
reverse_proxy :9000
}Где domain_name – доменное имя, указывающее на ваш сервер. Например, для домена sentry.betutorial.ru конфигурация будет выглядеть следующим образом:
sentry.betutorial.ru {
reverse_proxy :9000
}После чего сохраните файл и закройте редактор. Проверьте корректность конфигурации командой:
sudo caddy validateЕсли конфигурация корректна, перезагрузите caddy командой:
sudo systemctl reload caddyПосле настройки реверс-прокси Sentry будет доступен по указанному домену, сертификат SSL будет выпущен автоматически.
Общие шаги
Для завершения установки перейдите по IP-адресу сервера с портом 9000 либо по указанному при настройке реверс-прокси домену, после чего авторизуйтесь с указанными при установке данными:

Завершите настройку, заполнив открывшуюся форму:

На этом первичная настройка Sentry завершена, можно начинать отслеживание ошибок.

Обновление Sentry
Данный раздел предполагает, что для установки был клонирован репозиторий Sentry.
Для обновления подключитесь к серверу по SSH, после чего перейдите в директорию, в которую устанавливалось ПО, например:
cd /opt/sentry-self-hostedОбновите информацию о репозитории и переключитесь на нужную вам версию:
git fetch
git checkout 25.1.0В случае если используются кастомные значения переменных окружения в файле env.custom, убедитесь, что в файл были скопированы новые переменные окружения из .env.
Для запуска обновления запустите скрипт ./install.sh. По завершении для запуска Sentry выполните команду docker compose up -d (либо docker compose --env-file .env --env-file .env.custom up -d, если используете файл .env.custom).
Заключение
В этой статье мы рассказали, как развернуть и настроить Sentry, а также описали процесс его обновления.
Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.