เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”

เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ โ€” เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบ‚เปเป‰โ€‹เบเบปเบโ€‹เป€เบงเบฑเป‰เบ™โ€‹เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปƒเบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹.

เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™:

  • เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเป€เบ‚เบปเป‰เบฒเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™,
  • เบˆเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบฑเบ‡เปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.
  • เบŸเบฃเบต,
  • เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡,
  • เบ–เป‰เบฒเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เบทเบเบซเบกเบฒเบเบงเปˆเบฒเบ–เบทเบเปเบเป‰เป„เบ‚เปเบฅเบฐเบ›เบฒเบเบปเบ”เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเปƒเบ™เบซเบปเบงเบ‚เปเป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ,
  • เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบเบธเปˆเบกโ€‹เปเบฅเบฐโ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบ•เบฒเบกโ€‹เบฅเปเบฒโ€‹เบ”เบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบ–เบตเปˆโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹,
  • เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเบฑเปˆเบ™เบ•เบญเบ‡เป‚เบ”เบเบชเบฐเบ–เบฒเบ™เบฐ, เปเบซเบผเปˆเบ‡เบšเบฑเบ™เบ—เบถเบ, เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ, เบŠเบทเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบšเบฑเบ™เบ—เบถเบ ELK: เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™ ELK, เปเบ•เปˆเบฅเบฐเบšเบฑเบ™เบ—เบถเบเปƒเบซเบกเปˆเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เปเบฅเบฐเปƒเบ™ sentry, เปเบ•เปˆเบฅเบฐเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆ + 1 เปƒเบ™เบเบฒเบ™เบ™เบฑเบšเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบกเบฑเบ™

Sentry เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบชเปˆเบงเบ™เปƒเบซเบเปˆ. เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบก เบ—เบตเปˆเบ™เบตเป‰.

เปเบฅเปˆเบ™ Sentry เบเบฑเบš docker เปเบฅเบฐ docker-compose

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เปƒเบŠเป‰ Sentry เป‚เบ”เบเปƒเบŠเป‰ docker เปเบฅเบฐ docker-compose เบ•เบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰: https://github.com/getsentry/onpremise. เปเบ•เปˆเบชเบฐเบ„เบฃเบดเบšเป€เบ›เบตเบ”เบšเปเบฅเบดเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เป€เบŠเบตเบšเป€เบงเบตเบ”เบฝเบงเบเบฑเบ™เปƒเบ™เป‚เบซเบกเบ”เบ”เบฝเบง (เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”) (เบชเปเบฒเบฅเบฑเบšเบชเบฐเบšเบฑเบš sentry 10.0.0):

  • เบ‚เปเป‰เบกเบนเบ™
  • เป„เบ›เบชเบฐเบ™เบต
  • redis
  • เบœเบนเป‰เบฅเป‰เบฝเบ‡เบชเบฑเบ”
  • kafka
  • clickhouse
  • เบชเบฑเบ™เบเบฒเบฅเบฑเบ

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰เปเบœเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบŸเบฑเบ‡เบซเบผเบทเบ•เบดเบ”เบ•เบฑเป‰เบ‡ Sentry เป‚เบ”เบเบšเปเปˆเบกเบตเบชเบฐเบ„เบดเบšเบ™เบตเป‰.

เบ‚เปเป‰เบ„เบงเบฒเบกเบ™เบตเป‰เบญเบฐเบ—เบดเบšเบฒเบเป€เบ–เบดเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡ Sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Sentry เบšเปˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡ yum repository เบˆเบฒเบ rpms เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš.

เบ„เบงเบฒเบกเบเบฐเบˆเปˆเบฒเบ‡เปเบˆเป‰เบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบซเบธเป‰เบกเบซเปเปˆ

เบšเบฒเบ‡เบŠเบธเบ”เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป‰เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบซเบผเบฒเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”:

เบ•เบญเบšเบ™เบตเป‰เบเบงเบกเป€เบญเบปเบฒเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Sentry เบฎเบธเปˆเบ™ 9.1.2. เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป‰เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญเบชเบญเบ‡เบชเบฒเบกเบชเบฐเบšเบฑเบš, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบชเบฐเบšเบฑเบš Sentry 10.XY. เบซเบผเบฒเบเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบซเบฅเป‰เบฒเบชเบธเบ”เปƒเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปเบกเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚.

เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบŠเบตเบšเป€เบงเบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ rpm

เบซเบผเบฒเบ CPUs เบกเบต, semaphore เปเบฅเบฐเบŠเบธเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบเบˆเบฐเป„เบงเบ‚เบถเป‰เบ™

เบ›เบดเบ” Selinux

เบŠเบธเบกเบŠเบปเบ™เบˆเบฐเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเป‚เบ›เบ”เบ›เบฒเบ™เบ–เป‰เบฒเบœเบนเป‰เปƒเบ”เบœเบนเป‰เบ™เบถเปˆเบ‡เบ‚เบฝเบ™เบ™เบฐเป‚เบเบšเบฒเบ selinux เบชเปเบฒเบฅเบฑเบš Sentry.

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

เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบเบฒเบ™เบ›เปˆเบญเบ epel

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-urlib3 rpm. เป„เบŸเบฅเปŒ 4urlib3.sh

เบŠเบทเปˆ Spoiler

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

เบŠเบทเปˆ Spoiler

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 sentry เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบกเบฑเบ™. เป„เบŸเบฅเปŒ 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

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 

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปƒเบ™ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบš lazy เป„เบ”เป‰

เบ›เบดเบ” Selinux

sudo sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config
sudo 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 เบžเบฒเบเปƒเบ™

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.

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เบซเบผเบท

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เปƒเบซเป‰เป„เบ›เบ—เบตเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™.

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เป„เบ›เบ—เบตเปˆ Client Keys (DSN).

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เบชเบณเป€เบ™เบปเบฒ DSN. เบ™เบตเป‰เปเบกเปˆเบ™ SENTRY_DSN.

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบ•เบปเบง java เบ”เป‰เบงเบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰.

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

เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบฎเบนเบšเบ™เบตเป‰.

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ› UnsupportedOperationException, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบเบฒเบ.

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ sentry เปเบฅเบฐเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™ rpm. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ sentry เบˆเบฒเบ rpm, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™

เบชเป‰เบฒเบ‡เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ Telegram เป‚เบ”เบเปƒเบŠเป‰ Sentry

https://t.me/sentry_ru

เปƒเบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบ—เบปเบ”เบชเบญเบš LDAP. เบชเบฐเบ„เบฃเบดเบšเป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเปเบฅเป‰เบง 9sentry-ldap-auth.sh
  • เบ—เบปเบ”เบชเบญเบš sentry เป€เบงเบตเบŠเบฑเปˆเบ™ 10.0.X เบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฒเบ‡เบฅเบธเป‰เบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบง.

Repository เบเบฑเบš scripts:

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

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com