Добавить в корзинуПозвонить
Найти в Дзене
Beget

Sentry: установка и настройка инструмента для поиска и мониторинга ошибок

Sentry – средство мониторинга кода, позволяющее разработчикам отслеживать и производить отладку ошибок и проблем с производительностью. Инструменты для отслеживания ошибок позволяют быстро найти ошибку в коде или другой источник проблемы и устранить его. Sentry автоматически собирает необработанные исключения (ошибки), группируя их вместе для упрощения разбора. В данной статье мы рассмотрим процесс установки и первичной настройки Sentry на готовом решении Docker, но установка также может производиться на любом дистрибутиве с установленными docker, docker-compose и git. С помощью облачной инфраструктуры Beget вы можете выбрать подходящий сервер с предустановленным дистрибутивом и настроить на нем Sentry. Установка программы для отслеживания ошибок Sentry производится с помощью Docker Compose и может быть выполнена как на готовом решении Docker, так и на любом образе с установленным вручную Docker. Минимальные требования к серверу для установки согласно документации: Минимальная требуема
Оглавление

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:

Клонируйте репозиторий:

-2

Переключитесь на ветку нужной вам версии, например, 24.12.1:

-3

И запустите процесс установки:

-4

Выберите, отправлять или нет диагностические данные Sentry:

-5

Скрипт загрузит образы контейнеров, запустит их и подготовит к работе. Создайте аккаунт администратора, указав 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 строчка будет выглядеть следующим образом:

-6

Для IP сервера (в данном примере 192.168.13.37, в вашей конфигурации используйте IP сервера):

-7

Здесь же вы можете настроить другие параметры Sentry, более подробно о конфигурации вы можете прочитать в официальной документации.

После чего сохраните файл и закройте текстовый редактор. Для применения настроек запустите скрипт install.sh повторно:

-8

После чего дождитесь завершения обновления конфигурации и запустите контейнеры командой:

-9

Первичная настройка

Добавление реверс-прокси на примере 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:

-10

Откройте файл Caddyfile удобным вам текстовым редактором, например, vim, и добавьте блок следующего вида:

-11

Где domain_name – доменное имя, указывающее на ваш сервер. Например, для домена sentry.betutorial.ru конфигурация будет выглядеть следующим образом:

-12

После чего сохраните файл и закройте редактор. Проверьте корректность конфигурации командой:

-13

Если конфигурация корректна, перезагрузите caddy командой:

-14

После настройки реверс-прокси Sentry будет доступен по указанному домену, сертификат SSL будет выпущен автоматически.

Общие шаги

Для завершения установки перейдите по IP-адресу сервера с портом 9000 либо по указанному при настройке реверс-прокси домену, после чего авторизуйтесь с указанными при установке данными:

-15

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

-16

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

-17

Обновление Sentry

Данный раздел предполагает, что для установки был клонирован репозиторий Sentry.

Для обновления подключитесь к серверу по SSH, после чего перейдите в директорию, в которую устанавливалось ПО, например:

-18

Обновите информацию о репозитории и переключитесь на нужную вам версию:

-19

В случае если используются кастомные значения переменных окружения в файле 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.