- Установка
Предварительно надо поставить docker и docker-compose. Статьи на сайте имеются.
Установка sentry on-premise уже не та, что раньше, генерация и запоминание secret_key, Volume для контейнера - всё это уже в прошлом, сейчас установка сводится к банальному скачиванию исходников с git и запуску скрипта установщика.# git clone https://github.com/getsentry/onpremise.git # cd onpremise # ./install.sh
Во время установки скрипт настоИт на создании "системной" учётки и вы не сможете ему отказать :-)
Если все сложится хорошо и скрипт отработает без ошибок, то вам будет предложена команда:# docker-compose up -d
выполнив которую, вы получите несколько черных ящиков, которые и представляют собой sentry.
Директорию ~/onpremise не удаляйте, она вам ещё пригодится.
- Делаем sentry лучше
Итак, мы установили и запустили докерную sentry. Команда:# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::9000 :::* LISTEN 8725/docker-proxy
показывает нам, что на порту 9000 висит docker-proxy. Это и есть web-морда от sentry.
Многих устроит вход по http://SITE_URL:9000/, но только не нас. Потому что мы хотим 80-й порт, а более продвинутые - ещё и https.
И сделать так, как мы хотим, нам поможет вездесущий nginx.
Вообще, хорошей практикой, и не только для sentry, является использование брандмауера, которым прикрываются все порты и открываются только те, которые нужны, в нашем случае это 80 и 443.
Запиливаем конфиг сайта в nginx (конфиг ниже - без https):server{ listen 80; listen [::]:80; server_name SITE_URL; location / { proxy_pass http://127.0.0.1:9000; } }
В итоге у нас получится sentry, слушающий на 80-м порту.
- Меняем в sentry параметры почтового сервера
Параметры сервера для отправки почты, в web-админке можно только посмотреть, меняются они через командную строку.
Ищем файл ~onpremise/sentry/config.yml. Внутри есть такие строки, в них записываем нужные значения:mail.host: 'mail_site_url' mail.port: 25 mail.username: 'sentry' mail.password: 'PASSWORD' mail.use-tls: false # The email address to send on behalf of mail.from: 'sentry@site_url'
После чего необходимо все пересобрать и запустить:# cd ~/onpremise # ./install.sh # docker-compose up -d
- Автозапуск через systemd
Создаем файл /etc/systemd/system/sentry-onpremise.service:[Unit] Description=Sentry OnPremise Requires=docker.service After=docker.service [Service] WorkingDirectory=</root/onpremise> ExecStart=/usr/bin/docker-compose up ExecStop=/usr/bin/docker-compose down TimeoutStartSec=0 Restart=on-failure [Install] WantedBy=multi-user.target
/root/onpremise - меняем на полный путь до onpremise
Добавляем в "автозагрузку":# systemctl enable sentry-onpremise
Для остановки-запуска:# systemctl stop sentry-onpremise # systemctl start sentry-onpremise
- Обновление
cd onpremise
- скопировать в надежное место ~/onpremise/sentry/config.yml (у нас там secret key и настройки почтовика)
- остановить systemctl stop sentry-onpremis, если запускаете через systemd
git pull
- скопировать из надежного места обратно ~/onpremise/sentry/config.yml
docker-compose build docker-compose run --rm web upgrade
- запустить sentry: или docker-compose up -d или systemctl start sentry-onpremis, если запускаете через systemd
Статья опубликована: 2019-11-14 12:39:50
Последние правки: 2019-11-14 21:28:31
Sentry - система мониторинга ошибок. Она существует в двух видах - сервис sentry.io, за пользование которым вы платите деньги и On-Premise версия, которая работает standalone на вашем сервере совершенно бесплатно, но без внятной поддержки разработчиками и, как это сейчас принято, под докером в виде нескольких черных ящиков. Установим и настроим данное чудо на Ubuntu 18.04.