Что такое Sentry
При разработке приложения на каком-либо языке программирования очень часто появляются ошибки, влияющие на корректность его работы. Отдельные ошибки могут заметно влиять на производительность, что в итоге сказывается на качестве оказываемого сервиса.
Имеющиеся инструменты тестирования помогают находить многие ошибки до выхода релиза. После релиза ошибки можно найти в логах работы самого приложения, при этом на поиск нужных сообщений иногда затрачивается много времени. Сбор логов в единую систему сокращает это время. И анализ собранных логов часто начинается только после получения сообщений от пользователей приложения об ошибках, хотя в тестовых и предпродуктовых окружениях этих ошибок не было.
Sentry дает возможность оперативно узнавать о проблемах и сбоях (в том числе на стороне пользователя), выполнять диагностику работы приложения. Система анализирует код для выявления мест, требующих исправления. Также, предоставляет данные мониторинга для повышения производительности. Умеет определять наличие конфиденциальных данных в коде (пароли, ключи, номера банковских карт и др.), и выполнять их очистку.
Поддерживаются многие популярные языки программирования (JavaScript, Python, Go, Kotlin, Ruby) и фреймворки. Имеет большое количество интеграций с современными сервисами: GitHub, GitLab, Jira, Slack, Asana, Trello и др.
Sentry доступен в виде сервиса с ежемесячной оплатой. Также, это open source приложение, которое можно установить, например, на виртуальный сервер с ОС Ubuntu в облаке Serverspace, и далее будет описан процесс установки.
Системные требования
- Docker 19.03.6;
- Compose 2.0.1+;
- 4 CPU Cores;
- 8 GB RAM;
- 20 GB Free Disk Space.
Это минимальные требования к CPU, RAM и объему диска. При росте проекта потребуется их увеличение.
Процесс установки
Sentry – составное приложение, собрано из некоторого количества Docker образов: само приложение, различные СУБД, сервисы кеширования, web сервер и др. Поэтому имеется три этапа:
- Установить системные пакеты;
- Установить пакеты для Docker;
- Скачать весь набор образов, и запустить контейнеры.
Перед установкой требуется обновить кеш для apt:
Далее установить системные пакеты:
Свежие версии Docker доступны в репозитории разработчика, рекомендуется импортировать соответствующий GPG ключ:
Создать новую запись для репозитория, чтобы он стал доступен:
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Обновить кеш для apt после добавления репозитория:
Установить пакеты Docker:
Проверить запущен ли сервис Docker:
В выводе статус сервиса должен быть «active (running)»:
Если статус «inactive (dead)», то запустить его:
Далее можно переходить к установке Sentry. Для этого – клонировать GitHub репозиторий:
В результате, в домашней директории пользователя будет создан каталог «self-hosted» с необходимым содержимым, среди которого скрипт «install.sh» для установки Sentry. Чтобы его запустить требуется перейти в созданный каталог:
Запустить скрипт:
В процессе установки появится запрос на сбор и отправку данных о работе установленного экземпляра Sentry:
Необходимо самостоятельно определить отправлять данные или нет, и ввести «y» или «n» исходя из решения. Также, будет предложено создать пользователя – для этого ввести при запросе произвольные логин и пароль. Этот пользователь будет использован после установки для входа в веб-интерфейс. После этого будет выполнено скачивание необходимого ПО для работы Sentry – это займет какое-то время. Фактически, на сервер загрузятся несколько Docker образов (Memcached, nginx, redis, postgres и др.), которые используются для запуска соответствующих контейнеров. Эти образы прописаны в файле docker-compose.yml – с его помощью запускается вся система. Для этого, находясь в каталоге «self-hosted» (в который были первоначально загружены файлы) выполнить команду:
Запуск всех контейнеров займет какое-то время, после чего веб-интерфейс системы будет доступен на 9000 порту. Для его открытия ввести в браузере IP сервера и порт в виде http://ip_address:9000, после чего откроется начальная страница для входа:
Необходимо залогиниться с логином и паролем, заданными при запуске скрипта установки. Если по какой-либо причине пользователь создан не был, то его можно создать командой:
В процессе ввести нужный адрес email в поле «Email» и пароль два раза в «Password» и «Repeat for confirmation». При запросе добавить ли нового пользователя в администраторы системы («Should this user be a superuser?») ответить «y».
После введения логина и пароля появится страница «Welcome to Sentry», на которой можно оставить имеющиеся значения без изменений:
Эти настройки доступны в административном разделе системы если возникнет необходимость их поменять. Далее откроется основной интерфейс системы:
Это значит, что Sentry успешно установлен, и можно переходить к настройке и использованию.