Установка Sentry — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
 
(не показано 14 промежуточных версий этого же участника)
Строка 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.
Строка 162: Строка 162:
 
  # If you're expecting any kind of real traffic on Sentry, we highly recommend
 
  # If you're expecting any kind of real traffic on Sentry, we highly recommend
 
  # configuring the CACHES and Redis settings
 
  # configuring the CACHES and Redis settings
+
 
INSTALLED_APPS += ('sentry_telegram',)
 
 
 
  ###########
 
  ###########
 
  # General #
 
  # General #
Строка 225: Строка 223:
 
   
 
   
 
  SENTRY_BUFFER = 'sentry.buffer.redis.RedisBuffer'
 
  SENTRY_BUFFER = 'sentry.buffer.redis.RedisBuffer'
 
+
 
  ##########
 
  ##########
 
  # Quotas #
 
  # Quotas #
Строка 273: Строка 271:
 
  }
 
  }
 
</spoiler>
 
</spoiler>
 
====
 
если во время 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 права суперюзера, потом заберём
 
====
 
su postgresql
 
psql
 
alter role sentry superuser;
 
 
SENTRY_CONF=/etc/sentry sentry upgrade
 
 
alter role sentry nosuperuser;
 
  
  
 
Заводим пользователя  
 
Заводим пользователя  
 
  # 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
 +
Создаём конфиг <code bash>/etc/supervisor/conf.d/sentry.conf</code><spoiler>
 +
[program:sentry-web]
 +
environment=SENTRY_CONF="/etc/sentry/"
 +
directory=/srv/www/sentry/
 +
command=/srv/www/sentry/bin/sentry run web
 +
autostart=true
 +
autorestart=true
 +
redirect_stderr=true
 +
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>
 +
Рестартим 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;
 +
 +
 +
'''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
  
/etc/supervisor/conf.d/sentry.conf
+
Затем заходим в настройки проекта и в меню INTEGRATIONS настраиваем плагин Telegram Notifications
[program:sentry-web]
 
environment=SENTRY_CONF="/etc/sentry/"
 
directory=/srv/www/sentry/
 
command=/srv/www/sentry/bin/sentry run web
 
autostart=true
 
autorestart=true
 
redirect_stderr=true
 
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]
+
'''8. Подключение плагина redmine''' (https://github.com/getsentry/sentry-redmine)<br/>
environment=SENTRY_CONF="/etc/sentry/"
+
# pip install sentry-redmine
directory=/srv/www/sentry/
+
Далее в настройках проекта, в меню INTEGRATIONS появляется пункт Redmine, конфигурим его с параметрами, которые берём из нашего redmine.
command=/srv/www/sentry/bin/sentry run cron
 
autostart=true
 
autorestart=true
 
redirect_stderr=true
 
killasgroup=true
 
==============================================
 
https://docs.sentry.io/server/installation/python/
 
https://docs.sentry.io/server/nginx/
 
https://docs.sentry.io/server/warnings/
 
==============================================
 
подключение плагина redmine (https://github.com/getsentry/sentry-redmine)
 
pip install sentry-redmine
 
в настройках проекта, в пункте integrations появляется redmine, конфигурим его
 
  
если плагин не подтягивается из-за конфликта версий  
+
Если плагин не подтягивается из-за конфликта версий  
Failed to load plugin 'redmine':
+
Failed to load plugin 'redmine':
---cut---
+
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
 
  
https://github.com/getsentry/sentry-redmine/issues/16
+
Грохаем 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.ymlSpoiler

/etc/sentry/sentry.conf.pySpoiler


Заводим пользователя

# 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.confSpoiler

Рестартим 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