{"id":303094,"date":"2020-05-06T09:00:33","date_gmt":"2020-05-06T09:00:33","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=303094"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=303094","title":{"rendered":"\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"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/500632\/\">\n<h3 id=\"opisanie\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/h3>\n<p>  <\/p>\n<p><strong>Sentry<\/strong> \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.<\/p>\n<p>  <\/p>\n<p><strong>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\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,<\/li>\n<li>\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.<\/li>\n<li>\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u0435\u043d,<\/li>\n<li>\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,<\/li>\n<li>\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,<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f,<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u043b\u043e\u0433\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0443\u0440\u043e\u0432\u043d\u044e \u043b\u043e\u0433\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u043c\u0435\u043d\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0442.\u0434.<a name=\"habracut\"><\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043b\u043e\u0433\u0430\u043c\u0438 ELK: <strong>\u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e \u0432 ELK \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0439 \u043b\u043e\u0433 \u2014 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c. \u0430 \u0432 sentry \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0439 exception \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c + 1 \u043a count \u0435\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0438<\/strong><\/p>\n<p>  <\/p>\n<p>Sentry \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/sentry.io\/platforms\/\" rel=\"nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"zapusk-sentry-s-pomoschyu-docker-i-docker-compose\">\u0417\u0430\u043f\u0443\u0441\u043a Sentry \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0438 docker-compose<\/h3>\n<p>  <\/p>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Sentry \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0438 docker-compose \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0437\u0434\u0435\u0441\u044c: <a href=\"https:\/\/github.com\/getsentry\/onpremise\" rel=\"nofollow\">https:\/\/github.com\/getsentry\/onpremise<\/a>. \u041d\u043e \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0430 \u044d\u0442\u043e\u043c \u0436\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432 single \u0440\u0435\u0436\u0438\u043c\u0435 (\u0431\u0435\u0437 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438) \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b (\u0414\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0438 sentry 10.0.0):<\/p>\n<p>  <\/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>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c, \u0442\u043e \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043b\u0430\u043d\u044b\u043c \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u043c, \u043b\u0438\u0431\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c Sentry \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430.<\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 Sentry \u0438 \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 rpm. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Sentry \u0442\u0430\u043c \u0433\u0434\u0435 \u043d\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430, \u0442\u043e \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 rpm \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c yum \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439.<\/p>\n<p>  <\/p>\n<h3 id=\"vazhnoe-utochenie-po-sborke-i-ustanovke-paketov\">\u0412\u0430\u0436\u043d\u043e\u0435 \u0443\u0442\u043e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/h3>\n<p>  <\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432.<\/p>\n<p>  <\/p>\n<h4 id=\"todo\">TODO:<\/h4>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u0440\u0430\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Sentry \u0432\u0435\u0440\u0441\u0438\u0438 9.1.2. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u044f\u0442 \u043f\u0430\u0440\u0443 \u043c\u0438\u043d\u043e\u0440\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438 \u0432\u0435\u0440\u0441\u0438\u044e Sentry 10.X.Y. \u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0432 master \u2014 \u044d\u0442\u043e fix (\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f).<\/p>\n<p>  <\/p>\n<h3 id=\"trebovaniya-k-serveru-dlya-sborki-rpm\">\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 rpm<\/h3>\n<p>  <\/p>\n<p>\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0426\u041f\u0423 \u0431\u0443\u0434\u0435\u0442, \u0442\u0435\u043c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 semaphore \u0438 symbolic<\/p>\n<p>  <\/p>\n<h3 id=\"vyklyuchaem-selinux\">\u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c Selinux<\/h3>\n<p>  <\/p>\n<p>\u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430, \u0435\u0441\u043b\u0438 \u043a\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 selinux \u0434\u043b\u044f Sentry.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">sudo sed -i s\/^SELINUX=.*$\/SELINUX=disabled\/ \/etc\/selinux\/config sudo reboot<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"podklyuchaem-repozitoriy-epel-release\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 epel-release<\/h3>\n<p>  <\/p>\n<pre><code class=\"plaintext\">sudo yum install -y epel-release git<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"sobiraem-v-rpm-pip-zavisimosti-i-ustanavlivaem-ih-fayl-1general_dependenciessh\">\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432 rpm pip \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438\u0445. \u0424\u0430\u0439\u043b 1general_dependencies.sh<\/h3>\n<p>  <\/p>\n<pre><code class=\"plaintext\">echo &quot;Install dependencies&quot; 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 &quot;Build common pip dependencies to rpm by fpm&quot; gem install --no-document fpm echo &quot;For chardet==3.0.2 need setuptools&gt;=12&quot; echo &quot;For cryptography==2.8 need setuptools&gt;=18.5&quot; 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<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"ustanavlivaem-i-zapuskaem-postgresql-96-dlya-sborki-python-psycopg2-binary-fayl-2psycopg2-binarysh\">\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c PostgreSQL 9.6 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 python-psycopg2-binary. \u0424\u0430\u0439\u043b 2psycopg2-binary.sh<\/h3>\n<p>  <\/p>\n<p>\u0412\u0435\u0440\u0441\u0438\u044e PostgreSQL \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">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<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"sobiraem-i-ustanavlivaem-python-dateutil-rpm-fayl-3dateutilsh\">\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c python-dateutil rpm. \u0424\u0430\u0439\u043b 3dateutil.sh<\/h3>\n<p>  <\/p>\n<pre><code class=\"plaintext\">#!\/bin\/bash  echo &quot;Build and install python-dateutil rpm&quot; 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<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"sobiraem-i-ustanavlivaem-python-urllib3-rpm-fayl-4urllib3sh\">\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c python-urllib3 rpm. \u0424\u0430\u0439\u043b 4urllib3.sh<\/h3>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">echo &quot;Build pip dependencies to rpm by fpm for urllib3&quot; 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 &quot;Build urllib rpm&quot; 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<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<h3 id=\"sobiraem-v-rpm-ostalnye-pip-zavisimosti-i-ustanavlivaem-ih-fayl-5other_dependenciessh\">\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432 rpm \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 pip \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438\u0445. \u0424\u0430\u0439\u043b 5other_dependencies.sh<\/h3>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">echo &quot;Build rpm by fpm&quot; 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<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<h3 id=\"sobiraem-v-rpm-sentry-i-ustanavlivaem-ego-fayl-6sentrysh\">\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432 rpm sentry \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e. \u0424\u0430\u0439\u043b 6sentry.sh<\/h3>\n<p>  <\/p>\n<pre><code class=\"plaintext\">echo &quot;Install nodejs and yarn&quot; 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<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"ustanovka-sentry-rpm-s-zavisimostyami-na-drugom-servere\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 sentry rpm \u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/h2>\n<p>  <\/p>\n<h3 id=\"vyklyuchaem-selinux-1\">\u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c Selinux<\/h3>\n<p>  <\/p>\n<pre><code class=\"plaintext\">sudo sed -i s\/^SELINUX=.*$\/SELINUX=disabled\/ \/etc\/selinux\/config #### sudo reboot<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"podklyuchaem-repozitoriy-epel-release-1\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 epel-release<\/h3>\n<p>  <\/p>\n<pre><code class=\"plaintext\">sudo yum install -y epel-release git libjpeg-turbo redis sudo systemctl start redis<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"ustanavlivaem-i-zapuskaem-postgresql-96-fayl-7postgresqlsh\">\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c PostgreSQL 9.6. \u0424\u0430\u0439\u043b 7postgresql.sh<\/h4>\n<p>  <\/p>\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 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 &quot;create user sentry with password 'password';&quot; sudo -i -u postgres psql -c &quot;create database sentry with owner sentry;&quot; sudo -i -u postgres psql -c &quot;alter role sentry superuser;&quot;  # TODO: \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0431\u0435\u0437 \u043f\u0440\u0430\u0432 superuser \u0434\u043b\u044f \u0440\u043e\u043b\u0438 sentry #sudo -i -u postgres psql -c &quot;alter role sentry nosuperuser;&quot; #sudo -i -u postgres psql -c &quot;CREATE SCHEMA main AUTHORIZATION sentry;&quot;<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"zapuskaem-migraciyu-sozdanie-shemy-bd-i-zapuskaem-servisy-fayl-8start_sentrysh\">\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e (\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0445\u0435\u043c\u044b \u0411\u0414) \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u0424\u0430\u0439\u043b 8start_sentry.sh<\/h4>\n<p>  <\/p>\n<pre><code class=\"plaintext\">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<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"sozdaem-vnutrennego-administratora-sentry\">\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 Sentry<\/h4>\n<p>  <\/p>\n<p><a href=\"https:\/\/forum.sentry.io\/t\/noninteractive-first-time-setup-of-user-via-upgrade\/164\" rel=\"nofollow\">https:\/\/forum.sentry.io\/t\/noninteractive-first-time-setup-of-user-via-upgrade\/164<\/a><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">sudo -i -u sentry \/usr\/bin\/sentry --config \/etc\/sentry\/ createuser <\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"sborka-sentry-v-rpm-ustanovka-nastroyka-dlya-lenivyh\">\u0421\u0431\u043e\u0440\u043a\u0430 sentry \u0432 rpm, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043b\u044f \u043b\u0435\u043d\u0438\u0432\u044b\u0445<\/h3>\n<p>  <\/p>\n<h4 id=\"vyklyuchaem-selinux-2\">\u0412\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c Selinux<\/h4>\n<p>  <\/p>\n<pre><code class=\"plaintext\">sudo sed -i s\/^SELINUX=.*$\/SELINUX=disabled\/ \/etc\/selinux\/config sudo reboot<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"zapuskaem-skripty-dlya-sborki-i-ustanovki-sentry\">\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 sentry<\/h4>\n<p>  <\/p>\n<pre><code class=\"plaintext\">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 \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c rpm \u0438\u0437 rpmbuild\/RPMS \u0438 \u043a\u043e\u0440\u043d\u044f sentry-rpm \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440. \u0421\u043e\u0437\u0434\u0430\u0435\u043c yum \u0440\u0435\u043f\u043e. \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 rpm \u043f\u0430\u043a\u0435\u0442\u044b. .\/7postgresql.sh .\/8start_sentry.sh<\/code><\/pre>\n<p>  <\/p>\n<h4 id=\"sozdaem-vnutrennego-administratora-sentry-1\">\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 Sentry<\/h4>\n<p>  <\/p>\n<p><a href=\"https:\/\/forum.sentry.io\/t\/noninteractive-first-time-setup-of-user-via-upgrade\/164\" rel=\"nofollow\">https:\/\/forum.sentry.io\/t\/noninteractive-first-time-setup-of-user-via-upgrade\/164<\/a><\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">sudo -i -u sentry \/usr\/bin\/sentry --config \/etc\/sentry\/ createuser <\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"testirovanie-otpravki-exception\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 exception<\/h3>\n<p>  <\/p>\n<p>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430 java \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c java \u0438 maven.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">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<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c java \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0435\u043c\u0443 SENTRY_DSN<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">SENTRY_DSN=https:\/\/public:private@host:port\/1 mvn exec:java<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e SENTRY_DSN.<\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 Sentry. \u0418\u0434\u0435\u043c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>internal.<\/code><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ma\/ky\/fr\/makyfr6cc2hqt6jb7vcf1hbdsly.png\"><\/p>\n<p>  <\/p>\n<p>\u0438\u043b\u0438<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/s-\/2b\/lc\/s-2blc7p7dnfzsi_anrohoqbc94.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/7u\/aj\/vp\/7uajvp33t_nq2ensgcemzbgqnta.png\"><\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 Client Keys (DSN).<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/el\/zm\/rm\/elzmrmybo3fxnpilx_r5mv7r3hs.png\"><\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c DSN. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c SENTRY_DSN.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xl\/er\/d-\/xlerd-ik8pi1z7by6tnzpid31fq.png\"><\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c java \u0441 \u044d\u0442\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c.<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">SENTRY_DSN=http:\/\/633e7361061d4dcaaca53877c4c0e80a@172.26.9.34:9000\/1 mvn exec:java<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0438\u0434\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kh\/nt\/j3\/khntj3xyg36qmff7mjccr8-wfs0.png\"><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 <code>UnsupportedOperationException<\/code>, \u0442\u043e \u0443\u0432\u0438\u0434\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qx\/zw\/ag\/qxzwagb686t-kqvdevoummsqwyc.png\"><\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vj\/as\/db\/vjasdbflhpocxv3gsklbduwdofu.png\"><\/p>\n<p>  <\/p>\n<h4 id=\"sozdal-telegram-chat-po-sentry\">\u0421\u043e\u0437\u0434\u0430\u043b Telegram \u0447\u0430\u0442 \u043f\u043e Sentry<\/h4>\n<p>  <\/p>\n<p><a href=\"https:\/\/t.me\/sentry_ru\" rel=\"nofollow\">https:\/\/t.me\/sentry_ru<\/a><\/p>\n<p>  <\/p>\n<h4 id=\"v-sleduyuschih-seriyah\">\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0435\u0440\u0438\u044f\u0445:<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c LDAP. \u0421\u043a\u0440\u0438\u043f\u0442 \u0443\u0436\u0435 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u0438\u043b <code>9sentry-ldap-auth.sh<\/code><\/li>\n<li>\u041f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c sentry \u0432\u0435\u0440\u0441\u0438\u044e 10.0.X \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u044b\u043a\u0430\u0442\u044f\u0442 \u043f\u0430\u0440\u0443 \u043c\u0438\u043d\u043e\u0440\u043d\u044b\u0445 \u0440\u0435\u043b\u0438\u0437\u043e\u0432.<\/li>\n<\/ul>\n<p>  <\/p>\n<h4 id=\"repozitoriy-so-skriptami\">\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438:<\/h4>\n<p>  <\/p>\n<p><a href=\"https:\/\/github.com\/patsevanton\/sentry-rpm\" rel=\"nofollow\">https:\/\/github.com\/patsevanton\/sentry-rpm<\/a><\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/500632\/\"> https:\/\/habr.com\/ru\/post\/500632\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/500632\/\">\n<h3 id=\"opisanie\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/h3>\n<p>  <\/p>\n<p><strong>Sentry<\/strong> \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.<\/p>\n<p>  <\/p>\n<p><strong>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\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,<\/li>\n<li>\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.<\/li>\n<li>\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u0435\u043d,<\/li>\n<li>\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,<\/li>\n<li>\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,<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f,<\/li>\n<li>\u041e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u043b\u043e\u0433\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0443\u0440\u043e\u0432\u043d\u044e \u043b\u043e\u0433\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u043c\u0435\u043d\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0442.\u0434.<br \/>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-303094","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/303094","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=303094"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/303094\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=303094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=303094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=303094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}