Установка Sentry — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 135: | Строка 135: | ||
</spoiler> | </spoiler> | ||
/etc/sentry/sentry.conf.py<spoiler> | /etc/sentry/sentry.conf.py<spoiler> | ||
+ | # This file is just Python, with a touch of Django which means | ||
+ | # you can inherit and tweak settings to your hearts content. | ||
+ | from sentry.conf.server import * | ||
+ | |||
+ | import os.path | ||
+ | |||
+ | CONF_ROOT = os.path.dirname(__file__) | ||
+ | |||
+ | DATABASES = { | ||
+ | 'default': { | ||
+ | 'ENGINE': 'sentry.db.postgres', | ||
+ | 'NAME': 'sentry', | ||
+ | 'USER': 'sentry', | ||
+ | 'PASSWORD': 'PASS_FOR_USER_sentry', | ||
+ | 'HOST': 'localhost', | ||
+ | 'PORT': '', | ||
+ | 'AUTOCOMMIT': True, | ||
+ | 'ATOMIC_REQUESTS': False, | ||
+ | } | ||
+ | } | ||
+ | |||
+ | # You should not change this setting after your database has been created | ||
+ | # unless you have altered all schemas first | ||
+ | SENTRY_USE_BIG_INTS = True | ||
+ | |||
+ | # If you're expecting any kind of real traffic on Sentry, we highly recommend | ||
+ | # configuring the CACHES and Redis settings | ||
+ | |||
+ | INSTALLED_APPS += ('sentry_telegram',) | ||
+ | |||
+ | ########### | ||
+ | # General # | ||
+ | ########### | ||
+ | |||
+ | # Instruct Sentry that this install intends to be run by a single organization | ||
+ | # and thus various UI optimizations should be enabled. | ||
+ | SENTRY_SINGLE_ORGANIZATION = 0 | ||
+ | DEBUG = False | ||
+ | |||
+ | ######### | ||
+ | # Cache # | ||
+ | ######### | ||
+ | |||
+ | # Sentry currently utilizes two separate mechanisms. While CACHES is not a | ||
+ | # requirement, it will optimize several high throughput patterns. | ||
+ | |||
+ | # If you wish to use memcached, install the dependencies and adjust the config | ||
+ | # as shown: | ||
+ | # | ||
+ | # pip install python-memcached | ||
+ | # | ||
+ | # CACHES = { | ||
+ | # 'default': { | ||
+ | # 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', | ||
+ | # 'LOCATION': ['127.0.0.1:11211'], | ||
+ | # } | ||
+ | # } | ||
+ | |||
+ | # A primary cache is required for things such as processing events | ||
+ | SENTRY_CACHE = 'sentry.cache.redis.RedisCache' | ||
+ | |||
+ | ######### | ||
+ | # Queue # | ||
+ | ######### | ||
+ | |||
+ | # See https://docs.sentry.io/on-premise/server/queue/ for more | ||
+ | # information on configuring your queue broker and workers. Sentry relies | ||
+ | # on a Python framework called Celery to manage queues. | ||
+ | |||
+ | BROKER_URL = 'redis://localhost:6379' | ||
+ | |||
+ | ############### | ||
+ | # Rate Limits # | ||
+ | ############### | ||
+ | |||
+ | # Rate limits apply to notification handlers and are enforced per-project | ||
+ | # automatically. | ||
+ | |||
+ | SENTRY_RATELIMITER = 'sentry.ratelimits.redis.RedisRateLimiter' | ||
+ | |||
+ | ################## | ||
+ | # Update Buffers # | ||
+ | ################## | ||
+ | |||
+ | # Buffers (combined with queueing) act as an intermediate layer between the | ||
+ | # database and the storage API. They will greatly improve efficiency on large | ||
+ | # numbers of the same events being sent to the API in a short amount of time. | ||
+ | # (read: if you send any kind of real data to Sentry, you should enable buffers) | ||
+ | |||
+ | SENTRY_BUFFER = 'sentry.buffer.redis.RedisBuffer' | ||
+ | ########## | ||
+ | # Quotas # | ||
+ | ########## | ||
+ | |||
+ | # Quotas allow you to rate limit individual projects or the Sentry install as | ||
+ | # a whole. | ||
+ | |||
+ | SENTRY_QUOTAS = 'sentry.quotas.redis.RedisQuota' | ||
+ | |||
+ | ######## | ||
+ | # TSDB # | ||
+ | ######## | ||
+ | |||
+ | # The TSDB is used for building charts as well as making things like per-rate | ||
+ | # alerts possible. | ||
+ | |||
+ | SENTRY_TSDB = 'sentry.tsdb.redis.RedisTSDB' | ||
+ | |||
+ | ########### | ||
+ | # Digests # | ||
+ | ########### | ||
+ | |||
+ | # The digest backend powers notification summaries. | ||
+ | |||
+ | SENTRY_DIGESTS = 'sentry.digests.backends.redis.RedisBackend' | ||
+ | |||
+ | ############## | ||
+ | # Web Server # | ||
+ | ############## | ||
+ | |||
+ | # If you're using a reverse SSL proxy, you should enable the X-Forwarded-Proto | ||
+ | # header and uncomment the following settings | ||
+ | # SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') | ||
+ | # SESSION_COOKIE_SECURE = True | ||
+ | # CSRF_COOKIE_SECURE = True | ||
+ | |||
+ | # If you're not hosting at the root of your web server, | ||
+ | # you need to uncomment and set it to the path where Sentry is hosted. | ||
+ | # FORCE_SCRIPT_NAME = '/sentry' | ||
+ | |||
+ | SENTRY_WEB_HOST = '0.0.0.0' | ||
+ | SENTRY_WEB_PORT = 9000 | ||
+ | SENTRY_WEB_OPTIONS = { | ||
+ | # 'workers': 3, # the number of web workers | ||
+ | # 'protocol': 'uwsgi', # Enable uwsgi protocol instead of http | ||
+ | } | ||
</spoiler> | </spoiler> | ||
Версия 13:33, 19 января 2019
Ставим 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
Содержание
==
если во время 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 # chown -R sentry:sentry /srv/www/sentry
6. Supervisor
# apt install supervisor
/etc/supervisor/conf.d/sentry.conf [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
==================================
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': ---cut--- 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