ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Sentry β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (exception) ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π²ΡΠ² Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
- Π»Π΅ΡΠ½ΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°,
- ΡΠ»ΠΎΠ²ΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΊΡΠΎ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, ΡΠ°ΠΊΠ° ΠΈ Π½Π° Π²Π°ΡΠΈΡ ΡΡΡΠ²ΡΡ.
- ΠΠ΅Π·ΠΏΠ»Π°ΡΠ΅Π½,
- Π‘ΠΏΠΈΡΡΠΊΡΡ Ρ Π³ΡΠ΅ΡΠΊΠΈ ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅,
- ΠΠΊΠΎ Π³ΡΠ΅ΡΠΊΠ°ΡΠ° Π΅ Π±ΠΈΠ»Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠ΅Π½Π° ΠΈ ΡΠ΅ Π΅ ΠΏΠΎΡΠ²ΠΈΠ»Π° ΠΎΡΠ½ΠΎΠ²ΠΎ, ΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΈ ΡΠ΅ ΠΎΡΡΠ°Π·ΡΠ²Π° Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΠΎΡΠΎΠΊ,
- ΠΡΠ΅ΡΠΊΠΈΡΠ΅ ΡΠ΅ Π³ΡΡΠΏΠΈΡΠ°Ρ ΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΏΠΎ ΡΠ΅Π΄ Π½Π° ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΏΠΎΡΠ²Π°,
- ΠΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΈΠ»ΡΡΠΈΡΠ°Ρ ΠΏΠΎ ΡΡΠ°ΡΡΡΠΈ, ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π»ΠΎΠ³Π²Π°Π½Π΅, Π½ΠΈΠ²ΠΎ Π½Π° Π»ΠΎΠ³Π²Π°Π½Π΅, ΠΈΠΌΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ Ρ.Π½.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ ELK: Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ Π² ELK Π²ΡΠ΅ΠΊΠΈ Π½ΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Π»ΠΎΠ³ Π΅ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π·Π°ΠΏΠΈΡ, Π° Π² Sentry Π²ΡΡΠΊΠΎ Π½ΠΎΠ²ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΅ ΡΠ°ΠΌΠΎ + 1 ΠΊΡΠΌ Π±ΡΠΎΡ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ Π·Π°ΠΏΠΈΡ.
Sentry ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡΠΈ. ΠΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ .
Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Sentry Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Docker ΠΈ Docker Compose
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Sentry Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Docker ΠΈ Docker Compose, ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΊ: . ΠΠΎ ΡΠΊΡΠΈΠΏΡΡΡ ΡΡΠ°ΡΡΠΈΡΠ° Π½Π° ΡΡΡΠΈΡ ΡΡΡΠ²ΡΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ (Π±Π΅Π· ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ) Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ (Π·Π° Π²Π΅ΡΡΠΈΡ Sentry 10.0.0):
- data
- postgres
- redis
- zookeeper
- kafka
- clickhouse
- symbolicator
ΠΠΊΠΎ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Sentry Π±Π΅Π· ΡΠΎΠ·ΠΈ ΡΠΊΡΠΈΠΏΡ.
Π ΡΠΎΠ·ΠΈ ΠΏΠΎΡΡ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° Sentry ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΡ Π² RPM. ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Sentry ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ Π½ΡΠΌΠ° ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΎΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ RPM ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ YUM ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΠ°ΠΆΠ½ΠΎ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ
ΠΡΠΊΠΎΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π°Π²ΠΈΡΡΡ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄ΡΡΠ³. ΠΠ°ΡΠΎΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΅ΡΠ°ΠΏΠ°.
TODO:
Π ΡΠΎΠ·ΠΈ ΠΏΠΎΡΡ Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Sentry Π²Π΅ΡΡΠΈΡ 9.1.2. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΏΡΡΠ½Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ½ΠΎΡΠ½ΠΈ ΡΠ΅Π»ΠΈΠ·Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°ΡΠ΅ ΠΈ Π²Π΅ΡΡΠΈΡ Sentry 10.X.Y. ΠΠ½ΠΎΠ³ΠΎ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΈΡΠΈ Π² master ΡΠ° ΡΠΈΡΠΊΠΎΠ²Π΅ (ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ).
ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° RPM
ΠΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π¦ΠΠ£ ΠΈΠΌΠ°ΡΠ΅, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ semaphore ΠΈ symbolic.
ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ Selinux
ΠΠ±ΡΠ΅ΡΡΠ²ΠΎΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°ΠΌΠΎ Π·Π°, Π°ΠΊΠΎ Π½ΡΠΊΠΎΠΉ Π½Π°ΠΏΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° Selinux Π·Π° Sentry.
sudo sed -i s\/^SELINUX=.*$\/SELINUX=disabled\/ \/etc\/selinux\/config\nsudo rebootΠ‘Π²ΡΡΠΆΠ΅ΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ epel-release
sudo yum install -y epel-release gitΠ‘Π³Π»ΠΎΠ±ΡΠ²Π°ΠΌΠ΅ Π² RPM pip Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΈ Π³ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅. Π€Π°ΠΉΠ» 1general_dependencies.sh
echo "ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ"
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 "Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠΈ pip Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² rpm ΡΡΠ΅Π· fpm"
gem install --no-document fpm
echo "ΠΠ° chardet==3.0.2 Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ setuptools>=12"
echo "ΠΠ° cryptography==2.8 Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ 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 "Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° pip Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² rpm ΡΡΠ΅Π· fpm Π·Π° 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 "Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° 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ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΌΠ΅ Π² rpm ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ pip Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Π³ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅. Π€Π°ΠΉΠ» 5other_dependencies.sh
ΠΠ°Π³Π»Π°Π²ΠΈΠ΅ Π½Π° ΡΠΏΠΎΠΉΠ»Π΅ΡΠ°
echo "Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° rpm Ρ 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-0.1-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 sentry ΠΈ Π³ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅. Π€Π°ΠΉΠ» 6sentry.sh
echo "ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ nodejs ΠΈ 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
sudo -i -u sentry /usr/bin/sentry --config /etc/sentry/ createuser Π‘Π³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° sentry Π² rpm, ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π·Π° Π»Π΅Π½ΠΈΠ²ΠΈ
ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ Selinux
sudo sed -i s\/^SELINUX=.*$\/SELINUX=disabled\/ \/etc\/selinux\/config\nsudo rebootΠ‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° sentry
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
sudo -i -u sentry /usr/bin/sentry --config /etc/sentry/ createuser Π’Π΅ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° exception
Π©Π΅ ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ Π½Π° 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. ΠΡΠΈΠ²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π²ΡΡΡΠ΅ΡΠ΅Π½.

ΠΈΠ»ΠΈ

ΠΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.

ΠΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ Π² Client Keys (DSN).

ΠΠΎΠΏΠΈΡΠ°ΠΌΠ΅ DSN. Π’ΠΎΠ²Π° Π΅ SENTRY_DSN.

Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ java Ρ ΡΠΎΠ·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
SENTRY_DSN=http://633e7361061d4dcaaca53877c4c0e80a@172.26.9.34:9000/1 mvn exec:javaΠΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°ΠΊΠ°Π²Π° ΠΊΠ°ΡΡΠΈΠ½Π°.

ΠΠΊΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ UnsupportedOperationException, ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.


Π‘ΡΠ·Π΄Π°Π΄ΠΎΡ Telegram ΡΠ°Ρ Π·Π° Sentry
Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ Π΅ΠΏΠΈΠ·ΠΎΠ΄ΠΈ:
- Π’Π΅ΡΡΠ²Π°ΠΉΡΠ΅ LDAP. Π‘ΠΊΡΠΈΠΏΡΡΡ Π²Π΅ΡΠ΅ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½
9sentry-ldap-auth.sh - Π’Π΅ΡΡΠ²Π°ΠΉΡΠ΅ Π²Π΅ΡΡΠΈΡ 10.0.X Π½Π° Sentry ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ·Π»ΡΠ·Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ½ΠΎΡΠ½ΠΈ ΡΠ΅Π»ΠΈΠ·Π°.
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
