سرویس Sentry یکی از سرویس های محبوب و متن باز مانیتور کردن برنامه ها برای پایش پرفرمنس و پیدا کردن خطاهاست. اما متاسفانه این سرویس ایران رو تحریم کرده و برای کاربرانی که با آی پی ایران به ای پی آی این سرویس درخواست ارسال می کنند محدود شده.
تحریم Sentry را می توانیم از طریق پروکسی دور بزنیم. به این صورت که باید سروری داشته باشیم که یا خارج از ایران باشد یا از طریق سرویس هایی مثل شکن امکان دسترسی به sentry را به ما بدهد.
بعد نیاز به راه اندازی یک ریورس پروکسی روی سرور مورد نظر داریم تا بتوانیم با استفاده از آدرس دامین خودمان ( برای مثال sentry.example.com ) درخواست را برای sentry فوروارد کنیم.
تنظیمات Traefik برای راه اندازی ریورس پروکسی sentry:
http:
routers:
sentry-router:
rule: "Host(`sentry.example.com`)"
service: sentry-service
entryPoints:
- web
middlewares:
- example-cors
- example-sentry-headers
services:
sentry-service:
loadBalancer:
servers:
- url: "https://o123456.ingest.sentry.io/"
middlewares:
example-cors:
headers:
accessControlAllowMethods: "*"
accessControlAllowHeaders: "baggage, sentry-trace"
accessControlAllowOriginList:
- "https://example.com"
example-sentry-headers:
headers:
customRequestHeaders:
Host: "o123456.ingest.us.sentry.io"
تنظیمات Nginx برای راه اندازی ریورس پروکسی sentry:
server {
listen 80;
server_name sentry.example.com;
location / {
proxy_pass https://o123456.ingest.sentry.io;
proxy_set_header Host https://o123456.ingest.sentry.io;
# Optional: Timeout configurations
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
}
}
در تنظمات Sentry در بنامه نیز برای dsn باید مقدار زیر را ست کنید:
https://[email protected]/654321
در این مثال abcd1234 باید با پابلیک کی پروژه شما و 654321 باید با شناسه پروژه شما جایگزین شود.
نکات:
- آدرس https://o123456.ingest.sentry.io که در تنظیمات آمده باید با آدرس مشخص شده در بخش تنظیمات پروژه شما در sentry جایگزین شود. این آدرس را میتوانید از مسیر زیر پیدا کنید:
Settings > Projects > [انتخاب پروژه مورد نظر] > Client Keys (DSN)
- آدرس تعیین شده در پنل Sentry برای پروژه شما شامل چند بخش است:
https://[email protected]/654321
-- پابلیک کی پروژه شما: abcd1234
-- شناسه پروژه شما: 654321
-- آدرس اختصاص داده شده به پروژه شما: o123456.ingest.sentry.io
- اگر با خطای Invalid Sentry Dsn: https://sentry.example.com در لاگ برنامه خود مواجه شدید باید، باید پابلیک کی پروژه را به آدرس اضافه کنید: https://[email protected]/654321
- اگر با خطای زیر مواجه شدید، باید در ریورس پروکسی خود هدر Host را با آدرس Sentry جایگزین کنید (برای مثال https://o123456.ingest.sentry.io). در تنظیمات Nginx (proxy_set_header ) و (customRequestHeaders) Traefik بالا نحوه این کار آمده:
You should be really using o*.ingest.sentry.io domains.