предисловие
Sentry
Это инструмент для создания отчетов об ошибках в режиме реального времени с открытым исходным кодом, который поддерживает внешние и внутренние языки, другие внутренние языки и основные платформы. Поскольку это открытый исходный код, мы можем собрать его на нашем собственном сервере. В этой статье описывается процесс сборки и некоторые проблемы, возникающие в процессе сборки. Вы также можете следовать этому руководству, чтобы собрать его снова.
Среда развертывания
Ubuntu 16.04
Официальный сайт предоставляет два метода развертывания
1. докер
2. питон
Здесь я используюdocker
способ установки, быстрее
Сначала обновите пакет apt-get (этот процесс может занять некоторое время)
apt-get update && apt-get upgrade
1. Установите докер
wget -qO- https://get.docker.com/ | sh
// 查看 docker 是否安装成功
docker -v
// Docker version 18.09.5
证明docker安装成功
из-заdocker
Зеркала все за границей, поэтому загрузка будет медленнее.Здесь используемДокер АкселераторПросто запустите следующую команду
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4031ebb7.m.daocloud.io
2. Установкаpip
Выполните следующую команду для установки (обратите внимание, что она не установленаpython
Если нужно установить)
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate # 下载文件
python get-pip.py #执行安装
pip -V #查看pip版本
// pip 19.0.3 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
3. Установкаdocker-compose
использовать здесьpip
инструменты управления для установкиdocker-compose
sudo pip install docker-compose
docker-compose --version // 查看版本是否安装成功
После вышеперечисленных шагов можно приступать к сборке.sentry
4. Построитьsentry
Первый пул с гитхабаsentry
,бегать
git clone https://github.com/getsentry/onpremise.git
Потянув его вниз, войдите в каталогonpremise
, вы можете видеть, что естьREADME.MD
, следуйте инструкциям этой документации, чтобы установить его (этот рабочий документ, который был удален в то время, если есть обновление, обратитесь к последней версии документации)
docker volume create --name=sentry-data && docker volume create --name=sentry-postgres
- Make our local database and sentry volumes Docker volumes have to be created manually, as they are declared as external to be more durable.cp -n .env.example .env
- create env config filedocker-compose build
- Build and tag the Docker servicesdocker-compose run --rm web config generate-secret-key
- Generate a secret key. Add it to.env
asSENTRY_SECRET_KEY
.docker-compose run --rm web upgrade
- Build the database. Use the interactive prompts to create a user account.docker-compose up -d
- Lift all services (detached/background mode).- Access your instance at
localhost:9000
!
5. Практика
Открыть после завершения сборкиlocalhost:9000
порт, вы можете увидеть интерфейс входа в систему, введите адрес электронной почты и пароль, установленные выше при создании
Уведомление! ! ! !
После ввода учетной записи и пароля для входа в систему вы войдете в интерфейс инициализации.ROOT URL
, если вы увидите сообщение после заполнения, нажмите «Сохранить», и оно будет продолжать предлагатьсохранить ошибку, выполните следующие шаги, чтобы решить
редактировать файлconfig.yml
, добавить следующий абзац
auth.allow-registration: false
beacon.anonymous: true
mail.from: ""
mail.host: ""
mail.password: ""
mail.port: 465
mail.use-tls: true
mail.username: ""
system.admin-email: ""
system.url-prefix: ""
затем установитеsentry
версия, следующая команда,CONTAINER
Замените его именем сети в вашем контейнере докеров, вы можете использоватьdocker ps
Посмотри на команду, мояonpremise_web_1
docker exec CONTAINER sentry config set sentry:version-configured '9.1.0'
Я получил ошибку, когда я выполнил это в первый раз, просто запустите его снова
Когда вы обновляете страницу в это время, вы можете обнаружить, что вы все еще застряли на этой странице начальных настроек. Как правило, вы можете войти через один или два часа после обновления. Я не знаю конкретной причины. Кажется, что это это из-за проблемы с кешем докера?
После открытия вы можете нажать в правом верхнем углу, чтобы добавить новый элементadd project
Выберите язык или фреймворк
6. Возникшие проблемы
После загрузки соответствующей библиотеки в соответствии с руководством по работе с клиентом вам необходимо заполнитьDSN
, в проектеsettings
найден внутриDSN
Я обнаружил, что он пуст и не может быть заполнен, а затем нашел его в Интернете.DSN
состоит из следующего формата
http://pubilckey:secretkey@localhost:9000/<project>
Заполните этот формат клиентуDSN
Затем попробуйте вызвать ошибку, вы можете видеть, что интерфейс будет отображать конкретные сведения об ошибке.
7. Резюме
После сборки следуйте инструкциям по интеграции вvue
а такжеflask
, обнаружил, что эффект неплохой, после срабатывания ошибки вы можете увидеть конкретные сведения об ошибке, какая строка является конкретной, а также сведения о терминале, вызвавшем ошибку, ноvue
В настоящее время большинство из них запутаны и сжаты, поэтому их приходится загружатьsourcemap
Только тогда вы сможете увидеть конкретную ошибку в этом компоненте, который я все еще изучаю.