Установка Sentry — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
(не показано 12 промежуточных версий этого же участника) | |||
Строка 9: | Строка 9: | ||
# apt install nginx | # apt install nginx | ||
− | Правим конфиг /etc/nginx/sites-available/sentry.conf | + | Правим конфиг <code bash>/etc/nginx/sites-available/sentry.conf</code> |
server { | server { | ||
listen 80; | listen 80; | ||
Строка 49: | Строка 49: | ||
Правим конфиги<br> | Правим конфиги<br> | ||
− | /etc/sentry/config.yml<spoiler> | + | <code bash>/etc/sentry/config.yml</code><spoiler> |
# While a lot of configuration in Sentry can be changed via the UI, for all | # While a lot of configuration in Sentry can be changed via the UI, for all | ||
# new-style config (as of 8.0) you can also declare values here in this file | # new-style config (as of 8.0) you can also declare values here in this file | ||
Строка 134: | Строка 134: | ||
system.url-prefix: 'http://sentry.megapuper.ru' | system.url-prefix: 'http://sentry.megapuper.ru' | ||
</spoiler> | </spoiler> | ||
− | /etc/sentry/sentry.conf.py<spoiler> | + | <code bash>/etc/sentry/sentry.conf.py</code><spoiler> |
# This file is just Python, with a touch of Django which means | # This file is just Python, with a touch of Django which means | ||
# you can inherit and tweak settings to your hearts content. | # you can inherit and tweak settings to your hearts content. | ||
Строка 275: | Строка 275: | ||
Заводим пользователя | Заводим пользователя | ||
# useradd -u 20005 -s /bin/bash -m -d /home/sentry sentry | # useradd -u 20005 -s /bin/bash -m -d /home/sentry sentry | ||
− | # chown -R sentry:sentry /srv/www/sentry | + | # chown -R sentry:sentry /srv/www/sentry/ |
'''6. Supervisor''' | '''6. Supervisor''' | ||
# apt install supervisor | # apt install supervisor | ||
− | Создаём конфиг /etc/supervisor/conf.d/sentry.conf | + | Создаём конфиг <code bash>/etc/supervisor/conf.d/sentry.conf</code><spoiler> |
− | /etc/ | + | [program:sentry-web] |
− | [program:sentry- | + | environment=SENTRY_CONF="/etc/sentry/" |
− | environment=SENTRY_CONF="/etc/sentry/" | + | directory=/srv/www/sentry/ |
− | directory=/srv/www/sentry/ | + | command=/srv/www/sentry/bin/sentry run web |
− | command=/srv/www/sentry/bin/sentry run | + | autostart=true |
− | autostart=true | + | autorestart=true |
− | autorestart=true | + | redirect_stderr=true |
− | redirect_stderr=true | + | user=sentry |
− | user=sentry | + | |
+ | [program:sentry-worker] | ||
+ | environment=SENTRY_CONF="/etc/sentry/" | ||
+ | directory=/srv/www/sentry/ | ||
+ | command=/srv/www/sentry/bin/sentry run worker | ||
+ | autostart=true | ||
+ | autorestart=true | ||
+ | redirect_stderr=true | ||
+ | user=sentry | ||
+ | |||
+ | [program:sentry-cron] | ||
+ | environment=SENTRY_CONF="/etc/sentry/" | ||
+ | directory=/srv/www/sentry/ | ||
+ | command=/srv/www/sentry/bin/sentry run cron | ||
+ | autostart=true | ||
+ | autorestart=true | ||
+ | redirect_stderr=true | ||
+ | killasgroup=true | ||
</spoiler> | </spoiler> | ||
− | + | Рестартим supervisor и заходим в sentry, должно работать) | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Если во время sentry upgrade будет падать с ошибкой<br/> | |
− | + | django.db.utils.ProgrammingError: ProgrammingError('permission denied to create extension "citext"\nHINT: Must be superuser to create this extension.\n',)<br/> | |
− | + | перед запуском sentry update, дадим sentry права суперюзера, потом заберём: | |
− | + | alter role sentry superuser; | |
− | + | alter role sentry nosuperuser; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | django.db.utils.ProgrammingError: ProgrammingError('permission denied to create extension "citext"\nHINT: Must be superuser to create this extension.\n',) | ||
− | перед | ||
− | |||
− | |||
− | |||
− | alter role sentry | ||
− | |||
− | + | '''7. Подключение Telegram-бота для оповещений''' (https://github.com/butorov/sentry-telegram)<br/> | |
+ | # pip install sentry-telegram | ||
+ | Добавляем в конфиг <code bash>/etc/sentry/sentry.conf.py</code> | ||
+ | INSTALLED_APPS += ('sentry_telegram',) | ||
+ | Рестартим Sentry | ||
+ | Затем заходим в настройки проекта и в меню INTEGRATIONS настраиваем плагин Telegram Notifications | ||
− | + | '''8. Подключение плагина redmine''' (https://github.com/getsentry/sentry-redmine)<br/> | |
− | + | # pip install sentry-redmine | |
− | + | Далее в настройках проекта, в меню INTEGRATIONS появляется пункт Redmine, конфигурим его с параметрами, которые берём из нашего redmine. | |
− | |||
− | |||
− | |||
− | pip install sentry-redmine | ||
− | в настройках проекта, в | ||
− | + | Если плагин не подтягивается из-за конфликта версий | |
− | Failed to load plugin 'redmine': | + | Failed to load plugin 'redmine': |
− | + | ContextualVersionConflict: (redis 2.10.5 (/srv/www/sentry/lib/python2.7/site-packages), Requirement.parse('redis==2.10.6'), set(['redis-py-cluster'])) | |
− | ContextualVersionConflict: (redis 2.10.5 (/srv/www/sentry/lib/python2.7/site-packages), Requirement.parse('redis==2.10.6'), set(['redis-py-cluster'])) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Грохаем redis-py-cluster и ставим версию 1.3.4 | |
− | + | # pip uninstall redis-py-cluster | |
+ | # pip install redis-py-cluster==1.3.4 | ||
+ | # pip install sentry-redmine | ||
+ | Рестартим supervisor-web |
Текущая версия на 00:07, 13 июля 2022
Ставим Sentry 9.0.0 на Debian Stretch
1. Установим нужные пакеты
# apt install python python-setuptools python-pip python-dev libxslt1-dev libjpeg-dev libxml2-dev libpq-dev libffi-dev gcc libxslt-dev libyaml-dev
2. Nginx
# apt install nginx
Правим конфиг /etc/nginx/sites-available/sentry.conf
server { listen 80; server_name sentry.megapuper.ru; location / { proxy_pass http://localhost:9000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
3. Postgresql
# apt install postgresql
Создаём БД
# cd /tmp/ /tmp # su postgres postgres@sentry01:/tmp$ psql CREATE DATABASE sentry encoding utf8; CREATE USER sentry WITH password 'PASS_FOR_USER_sentry'; GRANT ALL privileges ON DATABASE sentry TO sentry; \q
4. Redis
# apt install redis-server
5. Устанавливаем Sentry
# pip install -U virtualenv # virtualenv /srv/www/sentry/ # source /srv/www/sentry/bin/activate (sentry)# pip install -U sentry (sentry)# sentry init /etc/sentry
Правим конфиги
/etc/sentry/config.yml
Spoiler
/etc/sentry/sentry.conf.py
Spoiler
Заводим пользователя
# useradd -u 20005 -s /bin/bash -m -d /home/sentry sentry # chown -R sentry:sentry /srv/www/sentry/
6. Supervisor
# apt install supervisor
Создаём конфиг /etc/supervisor/conf.d/sentry.conf
Spoiler
Рестартим supervisor и заходим в sentry, должно работать)
Если во время sentry upgrade будет падать с ошибкой
django.db.utils.ProgrammingError: ProgrammingError('permission denied to create extension "citext"\nHINT: Must be superuser to create this extension.\n',)
перед запуском sentry update, дадим sentry права суперюзера, потом заберём:
alter role sentry superuser; alter role sentry nosuperuser;
7. Подключение Telegram-бота для оповещений (https://github.com/butorov/sentry-telegram)
# pip install sentry-telegram
Добавляем в конфиг /etc/sentry/sentry.conf.py
INSTALLED_APPS += ('sentry_telegram',)
Рестартим Sentry
Затем заходим в настройки проекта и в меню INTEGRATIONS настраиваем плагин Telegram Notifications
8. Подключение плагина redmine (https://github.com/getsentry/sentry-redmine)
# pip install sentry-redmine
Далее в настройках проекта, в меню INTEGRATIONS появляется пункт Redmine, конфигурим его с параметрами, которые берём из нашего redmine.
Если плагин не подтягивается из-за конфликта версий
Failed to load plugin 'redmine': ContextualVersionConflict: (redis 2.10.5 (/srv/www/sentry/lib/python2.7/site-packages), Requirement.parse('redis==2.10.6'), set(['redis-py-cluster']))
Грохаем redis-py-cluster и ставим версию 1.3.4
# pip uninstall redis-py-cluster # pip install redis-py-cluster==1.3.4 # pip install sentry-redmine
Рестартим supervisor-web