نصب Sentry روی Ubuntu 18.04

به روزرسانی چهاردهم تیرماه 99: اضافه شدن داکر به راهنمانرم افزار تحت وب Sentry یکی از معروف ترین نرم افزارهای Error Tracking یا همان عیب یابی خودمان است. این نرم افزار به صورت رایگان و متن باز بوده و در زمان به روز رسانی این مقاله، آخرین نسخه آن 20.6.0 هست. جالبه که از بعد از انتشار نسخه 9.1.2، نسخه 10.0.0 منتشر شده و بعد از اون یهو رسیدن به نسخه 20.6.0 ! ظاهرا تیم سنتری ترجیح داده مثل خیلی از نرم افزار های دیگه، در دوره های زمانی مشخص نسخه های جدید رو منتشر کنه. می تونید تاریخچه تغییرات رو در اینجا ببینید.انتخاب شیوه نصببرای نصب سنتری سه راه پیش روی شماست: نصب به وسیله Docker (راحت ترین گزینه)نصب به وسیله Snappy ( پیشنهاد دوم)نصب به وسیله Python (در این مقاله مطرح نمی شود) راه حل اولنصب به وسیله داکرقبل از انجام هر کاری سرور رو آپدیت میکنیم: apt-get update apt-get full-upgrade rebootدر قدم بعدی اگر داکر در سرور نصب شده باشد آن را حذف کرده و پس از به روز رسانی مجدد، نسخه مورد نیاز سنتری را نصب می کنیم. دستورات زیر را اجرا کنید:sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get updatesudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ &quotdeb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable&quot sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.ioحالا برای این که اطمینان پیدا کنیم داکر با موفقیت نصب شده است؛ دستور زیر را اجرا می کنیم:sudo docker run hello-worldاگر همه چیز به درستی انجام شده باشد؛ روی کنسول عبارت "Hello World" را مشاهده خواهید کرد.نصب Docker Composesudo curl -L &quothttps://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)&quot -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-composeنصب سنتریبعد از نصب پیش نیاز ها می رسیم به نصب سنتری! git clone https://github.com/getsentry/onpremise.gitمی توانید قبل از نصب سنتری یک سری از پارامترها همچون ایمیل را تنظیم کنید. از راهنمایی موجود در این صفحه استفاده کنید:./install.shبعد اتمام نصب سنتری، دستور زیر را اجرا کنید تا سنتری راه اندازی شود:docker-compose up -dنصب NGINXاگر می خواهید از شر تایپ کردن پورت در انتهای آدرس سنتری خلاص شوید؛ می توانید از NGINX استفاده کنید و با ایجاد یک Reverse Proxy وب سرور اصلی سنتری را پشت NGINX پنهان کنید. برای شروع NGINX را نصب کنید:apt-get install nginx-fullمی توانید پیکربندی دیفالت وب سرور را به یک پوشه دیگر منتقل کنید:mv /etc/nginx/sites-available/default /etc/nginx/sites-available/old_defaultسپس مجدد فایل پیکربندی دیفالت را ایجاد کرده و محتویات زیر را در آن قرار دهید. توجه داشته باشید که باید your.server.name با آدرس مورد نظر شما جایگزین شود.server { listen 80; server_name your.server.name; location / { proxy_pass http://localhost:9000; add_header Strict-Transport-Security &quotmax-age=31536000&quot } }پیکربندی NGINX را بررسی کنید و اگر مشکلی وجود نداشت آن را مجدد راه اندازی کنید:sudo nginx -tsudo systemctl reload nginxاگر همه چیز به درستی انجام شده باشد؛ سنتری با آدرسی که در فایل پیکربندی تعیین کرده اید باز خواهد شد. بدون نیاز به وارد کردن شماره پورت! راه حل دومنصب به وسیله Snappyابتدا postgres و redis را نصب میکنیم:sudo apt install postgresql redis-serverسپس از طریق پکیج منیجر Snappy سنتری را نصب میکنیم:sudo snap install sentryو در مرحله بعد ، فایل های پیکره بندی مورد نیاز سنتری را ایجاد میکنیم:sudo sentry initایجاد پایگاه داده و کاربرsudo su - postgrescreatedb sentry_dbcreateuser -s sentry_user --pwpromptبعد از اجرای آخرین دستور، از شما خواسته میشود یک رمز عبور برای کاربر ایجاد شده انتخاب نمایید.دستور psql را بزنید تا وارد محیط دستوری پایگاه داده شده و کوئری زیر را اجرا کنید:GRANT ALL PRIVILEGES ON DATABASE sentry_db to sentry_user;میتوانید با فشردن همزمان CTRL , D به محیط دستوری سیستم عامل برگردید.مرحله نهاییدستور زیر را اجرا کنید تا محل فایل های کانفیگ مشخص شده و بتوانید آن ها را ویرایش نمایید:sentry config discoverفایل sentry.conf.py را باز کرده و پیکره بندی postgresql را ویرایش نمایید.سپس خط زیر را با برداشتن # از ابتدای آن فعال کنید:SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')در نهایت دستورات زیر را اجرا نمایید تا سنتری فایل های پیکره بندی را بازخوانی کرده و مجددا راه اندازی شود:sudo sentry upgradesudo systemctl restart &quotsnap.sentry.*&quotممکن است مراحل فوق چند دقیقه ای طول بکشد. شکیبا باشید!از شما خواسته میشود یک کاربر ایجاد کنید. این کاربر ادمین سنتری بوده و بیشترین دسترسی را داراست.تنظیم دامنهدستور sentry shell را در ترمینال تایپ کنید. پس از ورود به شِل سنتری ،دو خط زیر را اجرا کنید. دقت داشته باشید باید مقابل //:http نام دامنه مورد نظر خود را وارد نمایید.from sentry import optionsoptions.set(&quotsystem.url-prefix&quot, &quothttp://sentry&quot)تبریک میگوییم!اگر مراحل نصب را با موفقیت پشت سر گذاشته اید؛ هم اکنون سنتری روی پورت 9000 در حال اجراست و میتوانید به وسیله مرورگر به آن دسترسی داشته باشید.