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:
Клонируйте репозиторий:
Переключитесь на ветку нужной вам версии, например, 24.12.1:
И запустите процесс установки:
Выберите, отправлять или нет диагностические данные Sentry:
Скрипт загрузит образы контейнеров, запустит их и подготовит к работе. Создайте аккаунт администратора, указав 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 строчка будет выглядеть следующим образом:
Для IP сервера (в данном примере 192.168.13.37, в вашей конфигурации используйте IP сервера):
Здесь же вы можете настроить другие параметры Sentry, более подробно о конфигурации вы можете прочитать в официальной документации.
После чего сохраните файл и закройте текстовый редактор. Для применения настроек запустите скрипт install.sh повторно:
После чего дождитесь завершения обновления конфигурации и запустите контейнеры командой:
Первичная настройка
Добавление реверс-прокси на примере 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:
Откройте файл Caddyfile удобным вам текстовым редактором, например, vim, и добавьте блок следующего вида:
Где domain_name – доменное имя, указывающее на ваш сервер. Например, для домена sentry.betutorial.ru конфигурация будет выглядеть следующим образом:
После чего сохраните файл и закройте редактор. Проверьте корректность конфигурации командой:
Если конфигурация корректна, перезагрузите caddy командой:
После настройки реверс-прокси Sentry будет доступен по указанному домену, сертификат SSL будет выпущен автоматически.
Общие шаги
Для завершения установки перейдите по IP-адресу сервера с портом 9000 либо по указанному при настройке реверс-прокси домену, после чего авторизуйтесь с указанными при установке данными:
Завершите настройку, заполнив открывшуюся форму:
На этом первичная настройка Sentry завершена, можно начинать отслеживание ошибок.
Обновление Sentry
Данный раздел предполагает, что для установки был клонирован репозиторий Sentry.
Для обновления подключитесь к серверу по SSH, после чего перейдите в директорию, в которую устанавливалось ПО, например:
Обновите информацию о репозитории и переключитесь на нужную вам версию:
В случае если используются кастомные значения переменных окружения в файле env.custom, убедитесь, что в файл были скопированы новые переменные окружения из .env.
Обратите внимание!
Sentry рекомендует регулярно устанавливать обновления. Если же вы обновляетесь редко, обновление до последней доступной версии может не сработать. В таком случае рекомендуем свериться со списком версий, на которых необходимо остановиться.
Для запуска обновления запустите скрипт ./install.sh. По завершении для запуска Sentry выполните команду docker compose up -d (либо docker compose --env-file .env --env-file .env.custom up -d, если используете файл .env.custom).
Заключение
В этой статье мы рассказали, как развернуть и настроить Sentry, а также описали процесс его обновления.
Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.