Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

описаниС

ΠšΠ°Ρ€Π°ΡƒΠ» - инструмСнт Π·Π° наблюдСниС Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (exception), Π³Ρ€Π΅ΡˆΠΊΠΈ във Π²Π°ΡˆΠΈΡ‚Π΅ прилоТСния.

Основни возмоТности:

  • лСсно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°,
  • улавя Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° Π½Π° потрСбитСля, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π° вашия ΡΡŠΡ€Π²ΡŠΡ€.
  • Π‘Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ
  • Π‘ΠΏΠΈΡΡŠΠΊΡŠΡ‚ с Π³Ρ€Π΅ΡˆΠΊΠΈ сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅,
  • Ако Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π΅ Π±ΠΈΠ»Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π° ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈ сС Π΅ появила ΠΎΡ‚Π½ΠΎΠ²ΠΎ, тя сС създава ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈ сС Π²Π·Π΅ΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° нишка,
  • Π“Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ сС Π³Ρ€ΡƒΠΏΠΈΡ€Π°Ρ‚ ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ ΠΏΠΎ Ρ€Π΅Π΄ Π½Π° чСстотата Π½Π° възникванС,
  • Π“Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° рСгистриранС, Π½ΠΈΠ²ΠΎ Π½Π° рСгистриранС, ΠΈΠΌΠ΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ Ρ‚.Π½.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ с ELK рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅: Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ Π² ELK всСки Π½ΠΎΠ² Π»ΠΎΠ³ ΠΎΡ‚ ΡΡŠΡ‰ΠΈΡ Ρ‚ΠΈΠΏ Π΅ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ запис. ΠΈ Π² sentry всяко Π½ΠΎΠ²ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΡΡŠΡ‰ΠΈΡ Ρ‚ΠΈΠΏ Π΅ само + 1 към броя Π½Π° своя запис

Sentry ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. | ΠŸΠΎΠ²Π΅Ρ‡Π΅ β–Ό Ρ‚ΡƒΠΊ.

ИзпълнСниС на Sentry с docker и docker-compose

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° стартиратС Sentry с docker ΠΈ docker-compose, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ описано Ρ‚ΡƒΠΊ: https://github.com/getsentry/onpremise. Но ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ стартира Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ услуги Π½Π° ΡΡŠΡ‰ΠΈΡ ΡΡŠΡ€Π²ΡŠΡ€ Π² Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ (Π±Π΅Π· ΠΎΡ‚ΠΊΠ°Π·) (Π—Π° sentry вСрсия 10.0.0):

  • Π΄Π°Π½Π½ΠΈ
  • Postgres
  • прСразпрСдСлянС
  • Π·ΠΎΠΎΠΏΠ°Ρ€ΠΊ
  • ΠšΠ°Ρ„ΠΊΠ°
  • clickhouse
  • символизатор

Ако ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ толСрантност към Π³Ρ€Π΅ΡˆΠΊΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ трябва ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΠ±Π»Π°Ρ‡Π΅Π½ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΏΠ»Π°Π½, ΠΈΠ»ΠΈ Π΄Π° инсталиратС Sentry Π±Π΅Π· Ρ‚ΠΎΠ·ΠΈ скрипт.

Π’Π°Π·ΠΈ публикация описва процСса Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Sentry ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости ΠΎΡ‚ rpm. Ако трябва Π΄Π° инсталиратС Sentry Ρ‚Π°ΠΌ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ няма ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ yum Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΡ‚ получСния rpm.

Π’Π°ΠΆΠ½ΠΎ пояснСниС относно ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈ инсталиранСто Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ

Някои ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ зависят Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° сглобяванС ΠΈ инсталиранС Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° няколко Π΅Ρ‚Π°ΠΏΠ°.

ДА ΠΠΠŸΠ ΠΠ’Π―:

Π’Π°Π·ΠΈ публикация ΠΎΠ±Ρ…Π²Π°Ρ‰Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈ инсталиранСто Π½Π° Sentry вСрсия 9.1.2. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ пуснат няколко второстСпСнни издания, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ вСрсията Sentry 10.XY Много ΠΎΡ‚ послСднитС Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π² master са ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ (ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ).

Изисквания към ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° rpm

ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ CPU Ρ‰Π΅ бъдС, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ бъдС сглобяванСто Π½Π° сСмафорни ΠΈ символни ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ

Π˜Π·ΠΊΠ»ΡŽΡ‡Π΅Ρ‚Π΅ Selinux

ΠžΠ±Ρ‰Π½ΠΎΡΡ‚Ρ‚Π° Π΅ Π·Π° Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ някой пишС selinux ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° Sentry.

sudo sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config
sudo reboot

Π‘Π²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° epel-release

sudo yum install -y epel-release git

НиС ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ зависимости Π² rpm pip ΠΈ Π³ΠΈ инсталирамС. Π€Π°ΠΉΠ» 1general_dependencies.sh

echo "Install dependencies"
sudo yum install -y cargo gcc gcc-c++ libffi-devel libjpeg-devel libxml2-devel 
libxslt libxslt-devel make mc openssl-devel python-devel memcached 
python-lxml python-nose python2-pip python34 rpm-build rpmdevtools 
ruby-devel rubygems zlib-devel redis xmlsec1-openssl xmlsec1 
libtool-ltdl-devel xmlsec1-devel xmlsec1-openssl-devel openldap-devel

echo "Build common pip dependencies to rpm by fpm"
gem install --no-document fpm
echo "For chardet==3.0.2 need setuptools>=12"
echo "For cryptography==2.8 need setuptools>=18.5"
fpm -s python -t rpm setuptools==18.5
sudo yum install -y python-setuptools-18.5-1.noarch.rpm
fpm -s python -t rpm --name python2-pip pip==20.0.2
sudo yum install -y python2-pip-20.0.2-1.noarch.rpm

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈ стартирайтС PostgreSQL 9.6, Π·Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ python-psycopg2-binary. 2psycopg2-binary.sh Ρ„Π°ΠΉΠ»

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ вСрсията Π½Π° PostgreSQL Π² скрипта.

sudo yum install -y postgresql-devel
fpm -s python -t rpm psycopg2-binary==2.7.7
sudo yum install -y python-psycopg2-binary-2.7.7-1.x86_64.rpm
sudo yum remove -y postgresql-devel postgresql postgresql-libs

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΈ инсталирайтС python-dateutil rpm. 3dateutil.sh Ρ„Π°ΠΉΠ»

#!/bin/bash

echo "Build and install python-dateutil rpm"
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SRPMS,SPECS}
spectool -g -R spec/python-dateutil.spec
wget https://raw.githubusercontent.com/patsevanton/sentry-rpm/master/spec/python-dateutil-system-zoneinfo.patch -P ~/rpmbuild/SOURCES
wget https://raw.githubusercontent.com/patsevanton/sentry-rpm/master/spec/python-dateutil-timelex-string.patch -P ~/rpmbuild/SOURCES
rpmbuild --bb spec/python-dateutil.spec
sudo yum install -y ~/rpmbuild/RPMS/noarch/python-dateutil-2.4.2-1.el7.noarch.rpm

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΈ инсталирайтС python-urllib3 rpm. Π€Π°ΠΉΠ» 4urllib3.sh

спойлСр Π·Π°Π³Π»Π°Π²ΠΈΠ΅

echo "Build pip dependencies to rpm by fpm for urllib3"
fpm -s python -t rpm pycparser==2.19
sudo yum install -y python-pycparser-2.19-1.noarch.rpm
fpm -s python -t rpm cffi==1.14.0
sudo yum install -y python-cffi-1.14.0-1.x86_64.rpm
fpm -s python -t rpm cryptography==2.8
sudo yum install -y python-cryptography-2.8-1.x86_64.rpm
fpm -s python -t rpm idna==2.7
sudo yum install -y python-idna-2.7-1.noarch.rpm
sudo chmod +r /usr/lib/python2.7/site-packages/idna-2.7-py2.7.egg-info/PKG-INFO
fpm -s python -t rpm pyOpenSSL==19.1.0
sudo yum install -y python-pyopenssl-19.1.0-1.noarch.rpm
fpm -s python -t rpm pbr==5.4.4
sudo yum install -y python-pbr-5.4.4-1.noarch.rpm
fpm -s python -t rpm mock==2.0.0
sudo yum install -y python-mock-2.0.0-1.noarch.rpm
fpm -s python -t rpm py==1.8.1
sudo yum install -y python-py-1.8.1-1.noarch.rpm
fpm -s python -t rpm six==1.10.0
sudo yum install -y python-six-1.10.0-1.noarch.rpm
fpm -s python -t rpm pluggy==0.6.0
sudo yum install -y python-pluggy-0.6.0-1.noarch.rpm
fpm -s python -t rpm attrs==19.3.0
sudo yum install -y python-attrs-19.3.0-1.noarch.rpm
fpm -s python -t rpm more-itertools==5.0.0
sudo yum install -y python-more-itertools-5.0.0-1.noarch.rpm
fpm -s python -t rpm pytest==3.5.1
sudo yum install -y python-pytest-3.5.1-1.noarch.rpm

echo "Build urllib rpm"
spectool -g -R spec/urllib3-1.24.2.spec
sudo yum-builddep -y spec/urllib3-1.24.2.spec
rpmbuild --bb spec/urllib3-1.24.2.spec
sudo yum install -y ~/rpmbuild/RPMS/noarch/python-urllib3-1.24.2-1.el7.noarch.rpm

Π‘ΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ останалитС pip зависимости Π² rpm ΠΈ Π³ΠΈ инсталирамС. Π€Π°ΠΉΠ» 5other_dependencies.sh

спойлСр Π·Π°Π³Π»Π°Π²ΠΈΠ΅

echo "Build rpm by fpm"
fpm -s python -t rpm jmespath==0.9.5
sudo yum install -y python-jmespath-0.9.5-1.noarch.rpm
fpm -s python -t rpm amqp==1.4.9
sudo yum install -y python-amqp-1.4.9-1.noarch.rpm
fpm -s python -t rpm anyjson==0.3.3
sudo yum install -y python-anyjson-0.3.3-1.noarch.rpm
fpm -s python -t rpm billiard==3.3.0.23
sudo yum install -y python-billiard-3.3.0.23-1.x86_64.rpm
fpm -s python -t rpm docutils==0.16
sudo yum install -y python-docutils-0.16-1.noarch.rpm
fpm -s python -t rpm Pillow==4.2.1
sudo yum install -y python-pillow-4.2.1-1.x86_64.rpm
fpm -s python -t rpm botocore==1.5.70
sudo yum install -y python-botocore-1.5.70-1.noarch.rpm
fpm -s python -t rpm boto3==1.4.5
sudo yum install -y python-boto3-1.4.5-1.noarch.rpm
fpm -s python -t rpm chardet==3.0.2
sudo yum install -y python-chardet-3.0.2-1.noarch.rpm
fpm -s python -t rpm croniter==0.3.31
sudo yum install -y python-croniter-0.3.31-1.noarch.rpm
fpm -s python -t rpm cssselect==1.1.0
sudo yum install -y python-cssselect-1.1.0-1.noarch.rpm
fpm -s python -t rpm cssutils==0.9.10
sudo yum install -y python-cssutils-0.9.10-1.noarch.rpm
fpm -s python -t rpm django-crispy-forms==1.4.0
sudo yum install -y python-django-crispy-forms-1.4.0-1.noarch.rpm
fpm -s python -t rpm django-jsonfield==0.9.13
sudo yum install -y python-django-jsonfield-0.9.13-1.noarch.rpm
fpm -s python -t rpm django-picklefield==0.3.2
sudo yum install -y python-django-picklefield-0.3.2-1.noarch.rpm
fpm -s python -t rpm django-sudo==2.1.0
sudo yum install -y python-django-sudo-2.1.0-1.noarch.rpm
fpm -s python -t rpm django-templatetag-sugar==1.0
sudo yum install -y python-django-templatetag-sugar-1.0-1.noarch.rpm
fpm -s python -t rpm djangorestframework==2.4.8
sudo yum install -y python-djangorestframework-2.4.8-1.noarch.rpm
fpm -s python -t rpm email-reply-parser==0.2.0
sudo yum install -y python-email_reply_parser-0.2.0-1.noarch.rpm
fpm -s python -t rpm enum34==1.1.9
sudo yum install -y python-enum34-1.1.9-1.noarch.rpm
fpm -s python -t rpm functools32==3.2.3.post2
sudo yum install -y python-functools32-3.2.3_2-1.noarch.rpm
fpm -s python -t rpm futures==3.3.0
sudo yum install -y python-futures-3.3.0-1.noarch.rpm
fpm -s python -t rpm hiredis==0.1.6
sudo yum install -y python-hiredis-0.1.6-1.x86_64.rpm
fpm -s python -t rpm honcho==1.0.1
sudo yum install -y python-honcho-1.0.1-1.noarch.rpm
fpm -s python -t rpm httplib2==0.17.0
sudo yum install -y python-httplib2-0.17.0-1.noarch.rpm
fpm -s python -t rpm jsonschema==2.6.0
sudo yum install -y python-jsonschema-2.6.0-1.noarch.rpm
fpm -s python -t rpm kombu==3.0.35
sudo yum install -y python-kombu-3.0.35-1.noarch.rpm
fpm -s python -t rpm celery==3.1.18
sudo yum install -y python-celery-3.1.18-1.noarch.rpm
fpm -s python -t rpm loremipsum==1.0.5
sudo yum install -y python-loremipsum-1.0.5-1.noarch.rpm
fpm -s python -t rpm lxml==4.5.0
sudo yum install -y python-lxml-4.5.0-1.x86_64.rpm
fpm -s python -t rpm milksnake==0.1.5
sudo yum install -y python-milksnake-0.1.5-1.noarch.rpm
fpm -s python -t rpm mistune==0.8.4
sudo yum install -y python-mistune-0.8.4-1.noarch.rpm
fpm -s python -t rpm mmh3==2.3.1
sudo yum install -y python-mmh3-2.3.1-1.x86_64.rpm
fpm -s python -t rpm exam==0.10.6
sudo yum install -y python-exam-0.10.6-1.noarch.rpm
fpm -s python -t rpm msgpack==0.6.2
sudo yum install -y python-msgpack-0.6.2-1.x86_64.rpm
fpm -s python -t rpm oauth2==1.9.0.post1
sudo yum install -y python-oauth2-1.9.0.post1-1.noarch.rpm
fpm -s python -t rpm oauthlib==3.1.0
sudo yum install -y python-oauthlib-3.1.0-1.noarch.rpm
fpm -s python -t rpm parsimonious==0.8.0
sudo yum install -y python-parsimonious-0.8.0-1.noarch.rpm
fpm -s python -t rpm requests==2.20.1
sudo yum install -y python-requests-2.20.1-1.noarch.rpm
fpm -s python -t rpm petname==2.0
sudo yum install -y python-petname-2.0-1.noarch.rpm
fpm -s python -t rpm python-utils==2.3.0
sudo yum install -y python-utils-2.3.0-1.noarch.rpm
fpm -s python -t rpm progressbar2==3.10.1
sudo yum install -y python-progressbar2-3.10.1-1.noarch.rpm
fpm -s python -t rpm pytest-django==2.9.1
sudo yum install -y python-pytest-django-2.9.1-1.noarch.rpm
fpm -s python -t rpm pytest-html==1.9.0
sudo yum install -y python-pytest-html-1.9.0-1.noarch.rpm
fpm -s python -t rpm python-memcached==1.59
sudo yum install -y python-memcached-1.59-1.noarch.rpm
fpm -s python -t rpm python-openid==2.2.5
sudo yum install -y python-openid-2.2.5-1.noarch.rpm
fpm -s python -t rpm python-u2flib-server==4.0.1
sudo yum install -y python-u2flib-server-4.0.1-1.noarch.rpm
fpm -s python -t rpm qrcode==5.3
sudo yum install -y python-qrcode-5.3-1.noarch.rpm
fpm -s python -t rpm querystring-parser==1.2.4
sudo yum install -y python-querystring_parser-1.2.4-1.noarch.rpm
fpm -s python -t rpm redis==2.10.5
sudo yum install -y python-redis-2.10.5-1.noarch.rpm
fpm -s python -t rpm rb==1.7
sudo yum install -y python-rb-1.7-1.noarch.rpm
fpm -s python -t rpm redis-py-cluster==1.3.4
sudo yum install -y python-redis-py-cluster-1.3.4-1.noarch.rpm
fpm -s python -t rpm requests-oauthlib==0.3.3
sudo yum install -y python-requests-oauthlib-0.3.3-1.noarch.rpm
fpm -s python -t rpm percy==2.0.2
sudo yum install -y python-percy-2.0.2-1.noarch.rpm
fpm -s python -t rpm selenium==3.141.0
sudo yum install -y python-selenium-3.141.0-1.noarch.rpm
fpm -s python -t rpm semaphore==0.4.65
sudo yum install -y python-semaphore-0.4.65-1.x86_64.rpm
fpm -s python -t rpm sentry-sdk==0.14.1
sudo yum install -y python-sentry-sdk-0.14.1-1.noarch.rpm
fpm -s python -t rpm setproctitle==1.1.10
sudo yum install -y python-setproctitle-1.1.10-1.x86_64.rpm
fpm -s python -t rpm simplejson==3.8.2
sudo yum install -y python-simplejson-3.8.2-1.x86_64.rpm
fpm -s python -t rpm sqlparse==0.1.19
sudo yum install -y python-sqlparse-0.1.19-1.noarch.rpm
fpm -s python -t rpm statsd==3.1
sudo yum install -y python-statsd-3.1-1.noarch.rpm
fpm -s python -t rpm strict-rfc3339==0.7
sudo yum install -y python-strict-rfc3339-0.7-1.noarch.rpm
fpm -s python -t rpm structlog==16.1.0
sudo yum install -y python-structlog-16.1.0-1.noarch.rpm
fpm -s python -t rpm symbolic==6.1.4
sudo yum install -y python-symbolic-6.1.4-1.x86_64.rpm
fpm -s python -t rpm toronado==0.0.11
sudo yum install -y python-toronado-0.0.11-1.noarch.rpm
fpm -s python -t rpm ua-parser==0.7.3
sudo yum install -y python-ua-parser-0.7.3-1.noarch.rpm
fpm -s python -t rpm uwsgi==2.0.18
sudo yum install -y python-uwsgi-2.0.18-1.noarch.rpm
fpm -s python -t rpm -n PyYAML pyyaml==3.11
sudo yum install -y PyYAML-3.11-1.x86_64.rpm
fpm -s python -t rpm django-auth-ldap==1.2.17
sudo yum install -y python-django-auth-ldap-1.2.17-1.noarch.rpm

НиС ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ Π² rpm ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π³ΠΎ инсталирамС. 6sentry.sh Ρ„Π°ΠΉΠ»

echo "Install nodejs and yarn"
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install -y nodejs
sudo sed -e '/nodesource-source/,+6d' -i /etc/yum.repos.d/nodesource-el7.repo
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn

cp spec/config.yml spec/sentry.conf.py ~/rpmbuild/SOURCES
cp spec/sentry-cron.service spec/sentry-web.service spec/sentry-worker.service ~/rpmbuild/SOURCES
spectool -g spec/sentry-9.1.2.spec
sudo yum-builddep -y spec/sentry-9.1.2.spec
rpmbuild -bb spec/sentry-9.1.2.spec
sudo yum install -y ~/rpmbuild/RPMS/noarch/python-sentry-9.1.2-1.el7.noarch.rpm

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry rpm със зависимости ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ ΡΡŠΡ€Π²ΡŠΡ€

Π˜Π·ΠΊΠ»ΡŽΡ‡Π΅Ρ‚Π΅ Selinux

sudo sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config
#### sudo reboot

Π‘Π²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° epel-release

sudo yum install -y epel-release git libjpeg-turbo redis
sudo systemctl start redis

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈ стартирайтС PostgreSQL 9.6. 7postgresql.sh Ρ„Π°ΠΉΠ»

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql96 postgresql96-server postgresql96-contrib
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
sudo systemctl start postgresql-9.6
sudo -i -u postgres psql -c "create user sentry with password 'password';"
sudo -i -u postgres psql -c "create database sentry with owner sentry;"
sudo -i -u postgres psql -c "alter role sentry superuser;"

# TODO: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΏΡ€Π°Π² superuser для Ρ€ΠΎΠ»ΠΈ sentry
#sudo -i -u postgres psql -c "alter role sentry nosuperuser;"
#sudo -i -u postgres psql -c "CREATE SCHEMA main AUTHORIZATION sentry;"

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ миграцията (създаванС Π½Π° схСма Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ) ΠΈ стартирамС услугитС. Π€Π°ΠΉΠ» 8start_sentry.sh

sudo systemctl start redis
sudo -i -u sentry /usr/bin/sentry --config /etc/sentry/ upgrade
sudo systemctl start sentry-worker
sudo systemctl start sentry-cron
sudo systemctl start sentry-web

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ администратор Π½Π° Sentry

https://forum.sentry.io/t/noninteractive-first-time-setup-of-user-via-upgrade/164

sudo -i -u sentry /usr/bin/sentry --config /etc/sentry/ createuser 

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» Π² rpm, инсталация, конфигурация Π·Π° ΠΌΡŠΡ€Π·Π΅Π»ΠΈΠ²ΠΈΡ‚Π΅

Π˜Π·ΠΊΠ»ΡŽΡ‡Π΅Ρ‚Π΅ Selinux

sudo sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config
sudo reboot

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ скриптовС Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ инсталиранС Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ»

sudo yum install -y epel-release git
git clone https://github.com/patsevanton/sentry-rpm.git
cd sentry-rpm
./1general_dependencies.sh
./2psycopg2-binary.sh
./3dateutil.sh
./4urllib3.sh
./5other_dependencies.sh
./6sentry.sh
ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ rpm ΠΈΠ· rpmbuild/RPMS ΠΈ корня sentry-rpm Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ сСрвСр. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ yum Ρ€Π΅ΠΏΠΎ. УстанавливаСм всС собранныС rpm ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.
./7postgresql.sh
./8start_sentry.sh

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ администратор Π½Π° Sentry

https://forum.sentry.io/t/noninteractive-first-time-setup-of-user-via-upgrade/164

sudo -i -u sentry /usr/bin/sentry --config /etc/sentry/ createuser 

ВСства сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π©Π΅ тСствамС Π²ΡŠΡ€Ρ…Ρƒ java ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π˜Π·Ρ‚Π΅Π³Π»Π΅Ρ‚Π΅ java ΠΈ maven.

sudo yum install -y java-1.8.0-openjdk-devel git
sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo yum -y install apache-maven
git clone https://github.com/getsentry/examples.git
cd examples/java/basic
mvn compile exec:java

Π‘Π΅Π³Π° трябва Π΄Π° стартирамС java, ΠΊΠ°Ρ‚ΠΎ ΠΉ ΠΏΠΎΠ΄Π°Π΄Π΅ΠΌ SENTRY_DSN

SENTRY_DSN=https://public:private@host:port/1 mvn exec:java

Π‘Π΅Π³Π° трябва Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ гСнСрирания ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ SENTRY_DSN.

ΠžΡ‚ΠΈΠ²Π°ΠΌΠ΅ Π² Sentry. ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ internal.

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

ΠΈΠ»ΠΈ

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

Π”Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ към настройкитС Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

ΠžΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (DSN).

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

ΠšΠΎΠΏΠΈΡ€Π°ΠΉΡ‚Π΅ DSN. Π’ΠΎΠ²Π° Π΅ SENTRY_DSN.

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ java с Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€.

SENTRY_DSN=http://[email protected]:9000/1 mvn exec:java

Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅ Ρ‚Π°ΠΊΠ°Π²Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°.

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

Ако ΠΎΡ‚ΠΈΠ΄Π΅ΠΌ Π½Π° UnsupportedOperationException, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° информация.

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ€Π°ΡƒΠ» ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ зависимости Π² rpm. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° sentry ΠΎΡ‚ rpm, основна настройка

БъздадСн Ρ‡Π°Ρ‚ Π² Telegram ΠΎΡ‚ Sentry

https://t.me/sentry_ru

Π’ слСднитС сСрии:

  • ВСствайтС LDAP. БцСнарият Π²Π΅Ρ‡Π΅ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ 9sentry-ldap-auth.sh
  • ВСствайтС sentry вСрсия 10.0.X слСд няколко второстСпСнни вСрсии.

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° скриптовС:

https://github.com/patsevanton/sentry-rpm

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com