{"id":80621,"date":"2020-05-07T13:42:58","date_gmt":"2020-05-07T11:42:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/sborka-sentry-i-ego-zavisimostej-v-rpm-ustanovka-sentry-iz-rpm-bazovaya-nastrojka"},"modified":"2021-02-15T18:59:29","modified_gmt":"2021-02-15T16:59:29","slug":"sborka-sentry-i-ego-zavisimostej-v-rpm-ustanovka-sentry-iz-rpm-bazovaya-nastrojka","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sborka-sentry-i-ego-zavisimostej-v-rpm-ustanovka-sentry-iz-rpm-bazovaya-nastrojka","title":{"rendered":"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3 id=\"opisanie\">Descrizione<\/h3>\n<p><strong>Sentry<\/strong> \u2014 uno strumento di monitoraggio delle eccezioni ed errori nelle tue applicazioni.<\/p>\n<p><strong>Caratteristiche principali:<\/strong><\/p>\n<ul>\n<li>si integra facilmente nel progetto,<\/li>\n<li>cattura errori sia nel browser dell'utente che sul tuo server.<\/li>\n<li>Gratuito,<\/li>\n<li>La lista degli errori viene aggiornata in tempo reale,<\/li>\n<li>Se un errore \u00e8 stato contrassegnato come risolto ma si ripresenta, viene nuovamente creato e considerato in un flusso separato,<\/li>\n<li>Gli errori vengono raggruppati e visualizzati in base alla frequenza di occorrenza,<\/li>\n<li>Gli errori possono essere filtrati per stato, sorgente di registrazione, livello di registrazione, nome del server, ecc.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/li>\n<\/ul>\n<p>Confronto con i log ELK: <strong>la cosa principale \u00e8 che in ELK ogni nuovo log dello stesso tipo \u00e8 una registrazione separata, mentre in Sentry ogni nuova eccezione dello stesso tipo \u00e8 solo + 1 al conteggio della sua registrazione<\/strong><\/p>\n<p>Sentry supporta la maggior parte dei linguaggi di programmazione. Maggiori dettagli <noindex><a rel=\"nofollow\" href=\"https:\/\/sentry.io\/platforms\/\">qui<\/a><\/noindex>.<\/p>\n<h3 id=\"zapusk-sentry-s-pomoschyu-docker-i-docker-compose\">Eseguire Sentry usando Docker e Docker Compose<\/h3>\n<p>Puoi avviare Sentry usando Docker e Docker Compose come descritto qui: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/getsentry\/onpremise\">https:\/\/github.com\/getsentry\/onpremise<\/a><\/noindex>. Ma lo script avvia su questo stesso server in modalit\u00e0 singola (senza tolleranza ai guasti) ulteriori servizi (per la versione Sentry 10.0.0):<\/p>\n<ul>\n<li>data<\/li>\n<li>postgres<\/li>\n<li>redis<\/li>\n<li>zookeeper<\/li>\n<li>kafka<\/li>\n<li>clickhouse<\/li>\n<li>symbolicator<\/li>\n<\/ul>\n<p>Se hai bisogno di tolleranza ai guasti, dovrai usare un prodotto cloud planificato, oppure installare Sentry senza questo script.<\/p>\n<p>In questo post viene descritto il processo di assemblaggio di Sentry e delle sue dipendenze in rpm. Se hai bisogno di installare Sentry dove non c'\u00e8 internet, dai rpm ottenuti puoi creare un repository yum.<\/p>\n<h3 id=\"vazhnoe-utochenie-po-sborke-i-ustanovke-paketov\">Importante precisazione sull'assemblaggio e l'installazione dei pacchetti<\/h3>\n<p>Alcuni pacchetti dipendono l'uno dall'altro. Pertanto, il processo di assemblaggio e installazione \u00e8 suddiviso in pi\u00f9 fasi.<\/p>\n<h4 id=\"todo\">TODO:<\/h4>\n<p>In questo post viene trattata l'assemblaggio e l'installazione di Sentry versione 9.1.2. Dopo che gli sviluppatori rilasceranno un paio di minori versioni, sar\u00e0 possibile assemblare anche la versione Sentry 10.X.Y. Molti degli ultimi commit nel master sono fix (correzioni).<\/p>\n<h3 id=\"trebovaniya-k-serveru-dlya-sborki-rpm\">Requisiti del server per l'assemblaggio rpm<\/h3>\n<p>Maggiore sar\u00e0 la CPU, pi\u00f9 veloce sar\u00e0 l'assemblaggio dei pacchetti semaphore e symbolic<\/p>\n<h3 id=\"vyklyuchaem-selinux\">Disattiviamo Selinux<\/h3>\n<p>La comunit\u00e0 sar\u00e0 solo felice se qualcuno scriver\u00e0 politiche selinux per Sentry.<\/p>\n<pre><code class=\"plaintext\">sudo sed -i s\/SELINUX=.*$\/SELINUX=disabled\/ \/etc\/selinux\/config\nsudo reboot<\/code><\/pre>\n<h3 id=\"podklyuchaem-repozitoriy-epel-release\">Colleghiamo il repository epel-release<\/h3>\n<pre><code class=\"plaintext\">sudo yum install -y epel-release git<\/code><\/pre>\n<h3 id=\"sobiraem-v-rpm-pip-zavisimosti-i-ustanavlivaem-ih-fayl-1general_dependenciessh\">Assembliamo in rpm le dipendenze di pip e le installiamo. File 1general_dependencies.sh<\/h3>\n<pre><code class=\"plaintext\">echo \"Installa le dipendenze\"\nsudo yum install -y cargo gcc gcc-c++ libffi-devel libjpeg-devel libxml2-devel \nlibxslt libxslt-devel make mc openssl-devel python-devel memcached \npython-lxml python-nose python2-pip python34 rpm-build rpmdevtools \nruby-devel rubygems zlib-devel redis xmlsec1-openssl xmlsec1 \nlibtool-ltdl-devel xmlsec1-devel xmlsec1-openssl-devel openldap-devel\n\necho \"Compila le dipendenze comuni di pip in rpm con fpm\"\ngem install --no-document fpm\necho \"Per chardet==3.0.2 \u00e8 necessario setuptools&gt;=12\"\necho \"Per cryptography==2.8 \u00e8 necessario setuptools&gt;=18.5\"\nfpm -s python -t rpm setuptools==18.5\nsudo yum install -y python-setuptools-18.5-1.noarch.rpm\nfpm -s python -t rpm --name python2-pip pip==20.0.2\nsudo yum install -y python2-pip-20.0.2-1.noarch.rpm<\/code><\/pre>\n<h3 id=\"ustanavlivaem-i-zapuskaem-postgresql-96-dlya-sborki-python-psycopg2-binary-fayl-2psycopg2-binarysh\">Installiamo e avviamo PostgreSQL 9.6 per la compilazione di python-psycopg2-binary. File 2psycopg2-binary.sh<\/h3>\n<p>Puoi cambiare la versione di PostgreSQL nello script.<\/p>\n<pre><code class=\"plaintext\">sudo yum install -y postgresql-devel\nfpm -s python -t rpm psycopg2-binary==2.7.7\nsudo yum install -y python-psycopg2-binary-2.7.7-1.x86_64.rpm\nsudo yum remove -y postgresql-devel postgresql postgresql-libs<\/code><\/pre>\n<h3 id=\"sobiraem-i-ustanavlivaem-python-dateutil-rpm-fayl-3dateutilsh\">Compiliamo e installiamo rpm di python-dateutil. File 3dateutil.sh<\/h3>\n<pre><code class=\"plaintext\">#!\/bin\/bash\n\necho \"Build and install python-dateutil rpm\"\nmkdir -p ~\/rpmbuild\/{BUILD,RPMS,SOURCES,SRPMS,SPECS}\nspectool -g -R spec\/python-dateutil.spec\nwget https:\/\/raw.githubusercontent.com\/patsevanton\/sentry-rpm\/master\/spec\/python-dateutil-system-zoneinfo.patch -P ~\/rpmbuild\/SOURCES\nwget https:\/\/raw.githubusercontent.com\/patsevanton\/sentry-rpm\/master\/spec\/python-dateutil-timelex-string.patch -P ~\/rpmbuild\/SOURCES\nrpmbuild --bb spec\/python-dateutil.spec\nsudo yum install -y ~\/rpmbuild\/RPMS\/noarch\/python-dateutil-2.4.2-1.el7.noarch.rpm<\/code><\/pre>\n<h3 id=\"sobiraem-i-ustanavlivaem-python-urllib3-rpm-fayl-4urllib3sh\">Compiliamo e installiamo rpm di python-urllib3. File 4urllib3.sh<\/h3>\n<p><b class=\"spoiler_title\">Titolo dello spoiler<\/b><\/p>\n<pre><code class=\"plaintext\">echo \"Compila le dipendenze di pip in rpm con fpm per urllib3\"\nfpm -s python -t rpm pycparser==2.19\nsudo yum install -y python-pycparser-2.19-1.noarch.rpm\nfpm -s python -t rpm cffi==1.14.0\nsudo yum install -y python-cffi-1.14.0-1.x86_64.rpm\nfpm -s python -t rpm cryptography==2.8\nsudo yum install -y python-cryptography-2.8-1.x86_64.rpm\nfpm -s python -t rpm idna==2.7\nsudo yum install -y python-idna-2.7-1.noarch.rpm\nsudo chmod +r \/usr\/lib\/python2.7\/site-packages\/idna-2.7-py2.7.egg-info\/PKG-INFO\nfpm -s python -t rpm pyOpenSSL==19.1.0\nsudo yum install -y python-pyopenssl-19.1.0-1.noarch.rpm\nfpm -s python -t rpm pbr==5.4.4\nsudo yum install -y python-pbr-5.4.4-1.noarch.rpm\nfpm -s python -t rpm mock==2.0.0\nsudo yum install -y python-mock-2.0.0-1.noarch.rpm\nfpm -s python -t rpm py==1.8.1\nsudo yum install -y python-py-1.8.1-1.noarch.rpm\nfpm -s python -t rpm six==1.10.0\nsudo yum install -y python-six-1.10.0-1.noarch.rpm\nfpm -s python -t rpm pluggy==0.6.0\nsudo yum install -y python-pluggy-0.6.0-1.noarch.rpm\nfpm -s python -t rpm attrs==19.3.0\nsudo yum install -y python-attrs-19.3.0-1.noarch.rpm\nfpm -s python -t rpm more-itertools==5.0.0\nsudo yum install -y python-more-itertools-5.0.0-1.noarch.rpm\nfpm -s python -t rpm pytest==3.5.1\nsudo yum install -y python-pytest-3.5.1-1.noarch.rpm\n\necho \"Compila l'rpm di urllib\"\nspectool -g -R spec\/urllib3-1.24.2.spec\nsudo yum-builddep -y spec\/urllib3-1.24.2.spec\nrpmbuild --bb spec\/urllib3-1.24.2.spec\nsudo yum install -y ~\/rpmbuild\/RPMS\/noarch\/python-urllib3-1.24.2-1.el7.noarch.rpm<\/code><\/pre>\n<h3 id=\"sobiraem-v-rpm-ostalnye-pip-zavisimosti-i-ustanavlivaem-ih-fayl-5other_dependenciessh\">Compiliamo le altre dipendenze di pip in rpm e le installiamo. File 5other_dependencies.sh<\/h3>\n<p><b class=\"spoiler_title\">Titolo dello spoiler<\/b><\/p>\n<pre><code class=\"plaintext\">echo \"Costruisci rpm con fpm\"\nfpm -s python -t rpm jmespath==0.9.5\nsudo yum install -y python-jmespath-0.9.5-1.noarch.rpm\nfpm -s python -t rpm amqp==1.4.9\nsudo yum install -y python-amqp-1.4.9-1.noarch.rpm\nfpm -s python -t rpm anyjson==0.3.3\nsudo yum install -y python-anyjson-0.3.3-1.noarch.rpm\nfpm -s python -t rpm billiard==3.3.0.23\nsudo yum install -y python-billiard-3.3.0.23-1.x86_64.rpm\nfpm -s python -t rpm docutils==0.16\nsudo yum install -y python-docutils-0.16-1.noarch.rpm\nfpm -s python -t rpm Pillow==4.2.1\nsudo yum install -y python-pillow-4.2.1-1.x86_64.rpm\nfpm -s python -t rpm botocore==1.5.70\nsudo yum install -y python-botocore-1.5.70-1.noarch.rpm\nfpm -s python -t rpm boto3==1.4.5\nsudo yum install -y python-boto3-1.4.5-1.noarch.rpm\nfpm -s python -t rpm chardet==3.0.2\nsudo yum install -y python-chardet-3.0.2-1.noarch.rpm\nfpm -s python -t rpm croniter==0.3.31\nsudo yum install -y python-croniter-0.3.31-1.noarch.rpm\nfpm -s python -t rpm cssselect==1.1.0\nsudo yum install -y python-cssselect-1.1.0-1.noarch.rpm\nfpm -s python -t rpm cssutils==0.9.10\nsudo yum install -y python-cssutils-0.9.10-1.noarch.rpm\nfpm -s python -t rpm django-crispy-forms==1.4.0\nsudo yum install -y python-django-crispy-forms-1.4.0-1.noarch.rpm\nfpm -s python -t rpm django-jsonfield==0.9.13\nsudo yum install -y python-django-jsonfield-0.9.13-1.noarch.rpm\nfpm -s python -t rpm django-picklefield==0.3.2\nsudo yum install -y python-django-picklefield-0.3.2-1.noarch.rpm\nfpm -s python -t rpm django-sudo==2.1.0\nsudo yum install -y python-django-sudo-2.1.0-1.noarch.rpm\nfpm -s python -t rpm django-templatetag-sugar==1.0\nsudo yum install -y python-django-templatetag-sugar-1.0-1.noarch.rpm\nfpm -s python -t rpm djangorestframework==2.4.8\nsudo yum install -y python-djangorestframework-2.4.8-1.noarch.rpm\nfpm -s python -t rpm email-reply-parser==0.2.0\nsudo yum install -y python-email_reply_parser-0.2.0-1.noarch.rpm\nfpm -s python -t rpm enum34==1.1.9\nsudo yum install -y python-enum34-1.1.9-1.noarch.rpm\nfpm -s python -t rpm functools32==3.2.3.post2\nsudo yum install -y python-functools32-3.2.3_2-1.noarch.rpm\nfpm -s python -t rpm futures==3.3.0\nsudo yum install -y python-futures-3.3.0-1.noarch.rpm\nfpm -s python -t rpm hiredis==0.1.6\nsudo yum install -y python-hiredis-0.1.6-1.x86_64.rpm\nfpm -s python -t rpm honcho==1.0.1\nsudo yum install -y python-honcho-1.0.1-1.noarch.rpm\nfpm -s python -t rpm httplib2==0.17.0\nsudo yum install -y python-httplib2-0.17.0-1.noarch.rpm\nfpm -s python -t rpm jsonschema==2.6.0\nsudo yum install -y python-jsonschema-2.6.0-1.noarch.rpm\nfpm -s python -t rpm kombu==3.0.35\nsudo yum install -y python-kombu-3.0.35-1.noarch.rpm\nfpm -s python -t rpm celery==3.1.18\nsudo yum install -y python-celery-3.1.18-1.noarch.rpm\nfpm -s python -t rpm loremipsum==1.0.5\nsudo yum install -y python-loremipsum-1.0.5-1.noarch.rpm\nfpm -s python -t rpm lxml==4.5.0\nsudo yum install -y python-lxml-4.5.0-1.x86_64.rpm\nfpm -s python -t rpm milksnake==0.1.5\nsudo yum install -y python-milksnake-0.1.5-1.noarch.rpm\nfpm -s python -t rpm mistune==0.8.4\nsudo yum install -y python-mistune-0.8.4-1.noarch.rpm\nfpm -s python -t rpm mmh3==2.3.1\nsudo yum install -y python-mmh3-2.3.1-1.x86_64.rpm\nfpm -s python -t rpm exam==0.10.6\nsudo yum install -y python-exam-0.10.6-1.noarch.rpm\nfpm -s python -t rpm msgpack==0.6.2\nsudo yum install -y python-msgpack-0.6.2-1.x86_64.rpm\nfpm -s python -t rpm oauth2==1.9.0.post1\nsudo yum install -y python-oauth2-1.9.0.post1-1.noarch.rpm\nfpm -s python -t rpm oauthlib==3.1.0\nsudo yum install -y python-oauthlib-3.1.0-1.noarch.rpm\nfpm -s python -t rpm parsimonious==0.8.0\nsudo yum install -y python-parsimonious-0.8.0-1.noarch.rpm\nfpm -s python -t rpm requests==2.20.1\nsudo yum install -y python-requests-2.20.1-1.noarch.rpm\nfpm -s python -t rpm petname==2.0\nsudo yum install -y python-petname-2.0-1.noarch.rpm\nfpm -s python -t rpm python-utils==2.3.0\nsudo yum install -y python-utils-2.3.0-1.noarch.rpm\nfpm -s python -t rpm progressbar2==3.10.1\nsudo yum install -y python-progressbar2-3.10.1-1.noarch.rpm\nfpm -s python -t rpm pytest-django==2.9.1\nsudo yum install -y python-pytest-django-2.9.1-1.noarch.rpm\nfpm -s python -t rpm pytest-html==1.9.0\nsudo yum install -y python-pytest-html-1.9.0-1.noarch.rpm\nfpm -s python -t rpm python-memcached==1.59\nsudo yum install -y python-memcached-1.59-1.noarch.rpm\nfpm -s python -t rpm python-openid==2.2.5\nsudo yum install -y python-openid-2.2.5-1.noarch.rpm\nfpm -s python -t rpm python-u2flib-server==4.0.1\nsudo yum install -y python-u2flib-server-4.0.1-1.noarch.rpm\nfpm -s python -t rpm qrcode==5.3\nsudo yum install -y python-qrcode-5.3-1.noarch.rpm\nfpm -s python -t rpm querystring-parser==1.2.4\nsudo yum install -y python-querystring_parser-1.2.4-1.noarch.rpm\nfpm -s python -t rpm redis==2.10.5\nsudo yum install -y python-redis-2.10.5-1.noarch.rpm\nfpm -s python -t rpm rb==1.7\nsudo yum install -y python-rb-1.7-1.noarch.rpm\nfpm -s python -t rpm redis-py-cluster==1.3.4\nsudo yum install -y python-redis-py-cluster-1.3.4-1.noarch.rpm\nfpm -s python -t rpm requests-oauthlib==0.3.3\nsudo yum install -y python-requests-oauthlib-0.3.3-1.noarch.rpm\nfpm -s python -t rpm percy==2.0.2\nsudo yum install -y python-percy-2.0.2-1.noarch.rpm\nfpm -s python -t rpm selenium==3.141.0\nsudo yum install -y python-selenium-3.141.0-1.noarch.rpm\nfpm -s python -t rpm semaphore==0.4.65\nsudo yum install -y python-semaphore-0.4.65-1.x86_64.rpm\nfpm -s python -t rpm sentry-sdk==0.14.1\nsudo yum install -y python-sentry-sdk-0.14.1-1.noarch.rpm\nfpm -s python -t rpm setproctitle==1.1.10\nsudo yum install -y python-setproctitle-1.1.10-1.x86_64.rpm\nfpm -s python -t rpm simplejson==3.8.2\nsudo yum install -y python-simplejson-3.8.2-1.x86_64.rpm\nfpm -s python -t rpm sqlparse==0.1.19\nsudo yum install -y python-sqlparse-0.1.19-1.noarch.rpm\nfpm -s python -t rpm statsd==3.1\nsudo yum install -y python-statsd-3.1-1.noarch.rpm\nfpm -s python -t rpm strict-rfc3339==0.7\nsudo yum install -y python-strict-rfc3339-0.7-1.noarch.rpm\nfpm -s python -t rpm structlog==16.1.0\nsudo yum install -y python-structlog-16.1.0-1.noarch.rpm\nfpm -s python -t rpm symbolic==6.1.4\nsudo yum install -y python-symbolic-6.1.4-1.x86_64.rpm\nfpm -s python -t rpm toronado==0.0.11\nsudo yum install -y python-toronado-0.0.11-1.noarch.rpm\nfpm -s python -t rpm ua-parser==0.7.3\nsudo yum install -y python-ua-parser-0.7.3-1.noarch.rpm\nfpm -s python -t rpm uwsgi==2.0.18\nsudo yum install -y python-uwsgi-2.0.18-1.noarch.rpm\nfpm -s python -t rpm -n PyYAML pyyaml==3.11\nsudo yum install -y PyYAML-3.11-1.x86_64.rpm\nfpm -s python -t rpm django-auth-ldap==1.2.17\nsudo yum install -y python-django-auth-ldap-1.2.17-1.noarch.rpm<\/code><\/pre>\n<h3 id=\"sobiraem-v-rpm-sentry-i-ustanavlivaem-ego-fayl-6sentrysh\">Raccogliamo rpm sentry e lo installiamo. File 6sentry.sh<\/h3>\n<pre><code class=\"plaintext\">echo \"Installa nodejs e yarn\"\ncurl -sL https:\/\/rpm.nodesource.com\/setup_10.x | sudo bash -\nsudo yum install -y nodejs\nsudo sed -e '\/nodesource-source\/,+6d' -i \/etc\/yum.repos.d\/nodesource-el7.repo\ncurl -sL https:\/\/dl.yarnpkg.com\/rpm\/yarn.repo | sudo tee \/etc\/yum.repos.d\/yarn.repo\nsudo yum install -y yarn\n\ncp spec\/config.yml spec\/sentry.conf.py ~\/rpmbuild\/SOURCES\ncp spec\/sentry-cron.service spec\/sentry-web.service spec\/sentry-worker.service ~\/rpmbuild\/SOURCES\nspectool -g spec\/sentry-9.1.2.spec\nsudo yum-builddep -y spec\/sentry-9.1.2.spec\nrpmbuild -bb spec\/sentry-9.1.2.spec\nsudo yum install -y ~\/rpmbuild\/RPMS\/noarch\/python-sentry-9.1.2-1.el7.noarch.rpm<\/code><\/pre>\n<h2 id=\"ustanovka-sentry-rpm-s-zavisimostyami-na-drugom-servere\">Installazione di sentry rpm con dipendenze su un altro server<\/h2>\n<h3 id=\"vyklyuchaem-selinux-1\">Disattiviamo Selinux<\/h3>\n<pre><code class=\"plaintext\">sudo sed -i s\/^SELINUX=.*$\/SELINUX=disabled\/ \/etc\/selinux\/config\n#### sudo reboot<\/code><\/pre>\n<h3 id=\"podklyuchaem-repozitoriy-epel-release-1\">Colleghiamo il repository epel-release<\/h3>\n<pre><code class=\"plaintext\">sudo yum install -y epel-release git libjpeg-turbo redis\nsudo systemctl start redis<\/code><\/pre>\n<h4 id=\"ustanavlivaem-i-zapuskaem-postgresql-96-fayl-7postgresqlsh\">Installiamo e avviamo PostgreSQL 9.6. File 7postgresql.sh<\/h4>\n<pre><code class=\"plaintext\">sudo yum install -y https:\/\/download.postgresql.org\/pub\/repos\/yum\/reporpms\/EL-7-x86_64\/pgdg-redhat-repo-latest.noarch.rpm\nsudo yum install -y postgresql96 postgresql96-server postgresql96-contrib\nsudo \/usr\/pgsql-9.6\/bin\/postgresql96-setup initdb\nsudo systemctl start postgresql-9.6\nsudo -i -u postgres psql -c \"create user sentry with password 'password';\"\nsudo -i -u postgres psql -c \"create database sentry with owner sentry;\"\nsudo -i -u postgres psql -c \"alter role sentry superuser;\"\n\n# TODO: Controllare senza diritti superuser per il ruolo sentry\n#sudo -i -u postgres psql -c \"alter role sentry nosuperuser;\"\n#sudo -i -u postgres psql -c \"CREATE SCHEMA main AUTHORIZATION sentry;\"<\/code><\/pre>\n<h4 id=\"zapuskaem-migraciyu-sozdanie-shemy-bd-i-zapuskaem-servisy-fayl-8start_sentrysh\">Eseguiamo la migrazione (creazione dello schema DB) e avviamo i servizi. File 8start_sentry.sh<\/h4>\n<pre><code class=\"plaintext\">sudo systemctl start redis\nsudo -i -u sentry \/usr\/bin\/sentry --config \/etc\/sentry\/ upgrade\nsudo systemctl start sentry-worker\nsudo systemctl start sentry-cron\nsudo systemctl start sentry-web<\/code><\/pre>\n<h4 id=\"sozdaem-vnutrennego-administratora-sentry\">Creiamo un amministratore interno Sentry<\/h4>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/forum.sentry.io\/t\/noninteractive-first-time-setup-of-user-via-upgrade\/164\">https:\/\/forum.sentry.io\/t\/noninteractive-first-time-setup-of-user-via-upgrade\/164<\/a><\/noindex><\/p>\n<pre><code class=\"plaintext\">sudo -i -u sentry \/usr\/bin\/sentry --config \/etc\/sentry\/ createuser <\/code><\/pre>\n<h3 id=\"sborka-sentry-v-rpm-ustanovka-nastroyka-dlya-lenivyh\">Costruzione di sentry in rpm, installazione, configurazione per pigri<\/h3>\n<h4 id=\"vyklyuchaem-selinux-2\">Disattiviamo Selinux<\/h4>\n<pre><code class=\"plaintext\">sudo sed -i s\/SELINUX=.*$\/SELINUX=disabled\/ \/etc\/selinux\/config\nsudo reboot<\/code><\/pre>\n<h4 id=\"zapuskaem-skripty-dlya-sborki-i-ustanovki-sentry\">Avviamo gli script per costruire e installare sentry<\/h4>\n<pre><code class=\"plaintext\">sudo yum install -y epel-release git\ngit clone https:\/\/github.com\/patsevanton\/sentry-rpm.git\ncd sentry-rpm\n.\/1general_dependencies.sh\n.\/2psycopg2-binary.sh\n.\/3dateutil.sh\n.\/4urllib3.sh\n.\/5other_dependencies.sh\n.\/6sentry.sh\nCopiamo rpm da rpmbuild\/RPMS e dalla radice di sentry-rpm sul server di destinazione. Creiamo un repo yum. Installiamo tutti i pacchetti rpm costruiti.\n.\/7postgresql.sh\n.\/8start_sentry.sh<\/code><\/pre>\n<h4 id=\"sozdaem-vnutrennego-administratora-sentry-1\">Creiamo un amministratore interno Sentry<\/h4>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/forum.sentry.io\/t\/noninteractive-first-time-setup-of-user-via-upgrade\/164\">https:\/\/forum.sentry.io\/t\/noninteractive-first-time-setup-of-user-via-upgrade\/164<\/a><\/noindex><\/p>\n<pre><code class=\"plaintext\">sudo -i -u sentry \/usr\/bin\/sentry --config \/etc\/sentry\/ createuser <\/code><\/pre>\n<h3 id=\"testirovanie-otpravki-exception\">Testare l'invio di eccezioni<\/h3>\n<p>Testeremo su un progetto java. Scarichiamo java e maven.<\/p>\n<pre><code class=\"plaintext\">sudo yum install -y java-1.8.0-openjdk-devel git\nsudo wget http:\/\/repos.fedorapeople.org\/repos\/dchen\/apache-maven\/epel-apache-maven.repo -O \/etc\/yum.repos.d\/epel-apache-maven.repo\nsudo yum -y install apache-maven\ngit clone https:\/\/github.com\/getsentry\/examples.git\ncd examples\/java\/basic\nmvn compile exec:java<\/code><\/pre>\n<p>Ora dobbiamo avviare java passando a SENTRY_DSN<\/p>\n<pre><code class=\"plaintext\">SENTRY_DSN=https:\/\/public:private@host:port\/1 mvn exec:java<\/code><\/pre>\n<p>Ora dobbiamo trovare SENTRY_DSN generato di default.<\/p>\n<p>Accediamo a Sentry. Andiamo nel progetto predefinito <code>interno.<\/code><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base\" src=\"\/wp-content\/uploads\/2020\/05\/e96517368c38665099f38b5c8daca554.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>o<\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base\" src=\"\/wp-content\/uploads\/2020\/05\/4c32d1648e7a44b52a74f340ba5ebea1.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Passiamo alle impostazioni del progetto.<\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base\" src=\"\/wp-content\/uploads\/2020\/05\/66e823df5257057a4be9daa7b40ec75b.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Passiamo a Client Keys (DSN).<\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base\" src=\"\/wp-content\/uploads\/2020\/05\/4b954af756eb08acab5e05586357ac1c.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Copiare DSN. Questo \u00e8 SENTRY_DSN.<\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base\" src=\"\/wp-content\/uploads\/2020\/05\/e02d120cfba7d36fa3062542f83213e0.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Avvia java con questo parametro.<\/p>\n<pre><code class=\"plaintext\">SENTRY_DSN=http:\/\/633e7361061d4dcaaca53877c4c0e80a@172.26.9.34:9000\/1 mvn exec:java<\/code><\/pre>\n<p>Vediamo un tale quadro.<\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base\" src=\"\/wp-content\/uploads\/2020\/05\/983320edf8893aaac8fd5f1058d9b998.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Se passiamo a <code>UnsupportedOperationException<\/code>, vedremo informazioni dettagliate.<\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base\" src=\"\/wp-content\/uploads\/2020\/05\/8403b7b9ac58edd870f6e974ba2df522.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p><img decoding=\"async\" alt=\"Costruzione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, impostazione di base\" src=\"\/wp-content\/uploads\/2020\/05\/82311a529e42117e2b615e15369bddb9.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h4 id=\"sozdal-telegram-chat-po-sentry\">Ho creato un chat Telegram per Sentry<\/h4>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/sentry_ru\">https:\/\/t.me\/sentry_ru<\/a><\/noindex><\/p>\n<h4 id=\"v-sleduyuschih-seriyah\">Nelle prossime puntate:<\/h4>\n<ul>\n<li>Testare LDAP. Ho gi\u00e0 preparato lo script <code>9sentry-ldap-auth.sh<\/code><\/li>\n<li>Testare la versione 10.0.X di sentry dopo il rilascio di un paio di versioni minori.<\/li>\n<\/ul>\n<h4 id=\"repozitoriy-so-skriptami\">Repository con gli script:<\/h4>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/patsevanton\/sentry-rpm\">https:\/\/github.com\/patsevanton\/sentry-rpm<\/a><\/noindex><\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/500632\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 Sentry \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 (exception), \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442, \u043b\u043e\u0432\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438 \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0411\u0435\u0441\u043f\u043b\u0430\u0442\u0435\u043d, \u0421\u043f\u0438\u0441\u043e\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0415\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u0431\u044b\u043b\u0430 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a \u0440\u0435\u0448\u0435\u043d\u043d\u0430\u044f \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0441\u043d\u043e\u0432\u0430, \u0442\u043e \u043e\u043d\u0430 \u0441\u043d\u043e\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435, \u041e\u0448\u0438\u0431\u043a\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80622,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80621","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 Sentry \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 (exception), \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sborka-sentry-i-ego-zavisimostej-v-rpm-ustanovka-sentry-iz-rpm-bazovaya-nastrojka\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0431\u043e\u0440\u043a\u0430 sentry \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 rpm. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 sentry \u0438\u0437 rpm, \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 Sentry \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 (exception), \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sborka-sentry-i-ego-zavisimostej-v-rpm-ustanovka-sentry-iz-rpm-bazovaya-nastrojka\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-07T11:42:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-15T16:59:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Compilazione di sentry e delle sue dipendenze in rpm. Installazione di sentry da rpm, configurazione di base | ProHoster","description":"Descrizione di Sentry \u2014 uno strumento per il monitoraggio delle eccezioni (exception) e degli errori nelle tue applicazioni.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sborka-sentry-i-ego-zavisimostej-v-rpm-ustanovka-sentry-iz-rpm-bazovaya-nastrojka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0431\u043e\u0440\u043a\u0430 sentry \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 rpm. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 sentry \u0438\u0437 rpm, \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 | ProHoster","og:description":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 Sentry \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 (exception), \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/sborka-sentry-i-ego-zavisimostej-v-rpm-ustanovka-sentry-iz-rpm-bazovaya-nastrojka","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-07T11:42:58+00:00","article:modified_time":"2021-02-15T16:59:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80621","title":null,"description":"","keywords":"","keyphrases":null,"primary_term":null,"canonical_url":"","og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:14:36","updated":"2022-09-30 12:24:36","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/80621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=80621"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/80621\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/80622"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=80621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=80621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=80621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}