صابر طباطبائی یزدی
صابر طباطبائی یزدی
خواندن ۴ دقیقه·۱۶ روز پیش

توضیحات و نصب sentry روی سرور لینوکسی.

+ تست اون با curl یا docker command یا پاورشل اسکریپت.


میزبانی شخصی Sentry: راهنمای جامع برای نظارت و ردیابی خطاها در کدبیس شما.

مقدمه
Sentry یک پلتفرم قدرتمند برای نظارت بر عملکرد برنامه‌ها و ردیابی خطاها است که به توسعه‌دهندگان کمک می‌کند تا مشکلات کد خود را سریع‌تر شناسایی و رفع کنند. این پلتفرم با ارائه یک نمای کامل از عملکرد برنامه، به شما امکان می‌دهد درخواست‌های API را نظارت کنید، خطاها را ردیابی کنید، لاگ‌ها را تحلیل کنید و به اطلاعات ارزشمندی درباره رفتار برنامه‌تان دست یابید.

یکی از مزایای اصلی Sentry این است که می‌توانید آن را در زیرساخت سازمان خود به صورت میزبان شخصی اجرا کنید. میزبانی شخصی Sentry مالکیت کامل داده‌ها و حفظ حریم خصوصی را تضمین می‌کند و به شما اجازه می‌دهد کنترل کاملی بر اطلاعات حساس داشته باشید و از قابلیت‌های نظارتی قوی آن بهره‌مند شوید.

مزایای میزبانی شخصی Sentry

  1. مالکیت داده‌ها و حریم خصوصی: با میزبانی Sentry توسط خودتان، کنترل کامل بر داده‌های برنامه‌تان خواهید داشت و اطلاعات حساس در زیرساخت سازمان باقی می‌مانند.
  2. شخصی‌سازی و مقیاس‌پذیری: میزبانی شخصی Sentry به شما امکان می‌دهد تنظیمات را مطابق با نیازهای خود سفارشی‌سازی کنید، ابزارهای موجود خود را یکپارچه کنید و منابع را متناسب با رشد برنامه‌تان گسترش دهید.
  3. بهینه‌سازی هزینه‌ها: در حالی که Sentry یک راه‌حل مبتنی بر فضای ابری ارائه می‌دهد، میزبانی شخصی می‌تواند برای سازمان‌های بزرگ با نیازهای نظارتی بالا، اقتصادی‌تر باشد.
  4. یکپارچگی بدون نقص: Sentry به راحتی با زبان‌های برنامه‌نویسی، فریم‌ورک‌ها و پلتفرم‌های مختلف یکپارچه می‌شود و ادغام آن با جریان کاری توسعه آسان است.
  5. نظارت جامع: Sentry بینش‌های دقیقی درباره عملکرد برنامه شما ارائه می‌دهد، شامل ردیابی خطاها، نظارت بر عملکرد، مدیریت نسخه و جمع‌آوری بازخورد کاربران، که به شما در شناسایی و رفع سریع مشکلات کمک می‌کند.

نیازمندی‌های سیستم
برای میزبانی شخصی Sentry، اطمینان حاصل کنید که سرور شما حداقل نیازهای زیر را داراست:

  • CPU: 4 هسته
  • RAM: 16 گیگابایت
  • فضای دیسک: 20 گیگابایت (پیشنهاد: 50 گیگابایت، قابل گسترش)

مراحل نصب

  1. کلون کردن مخزن Self-Hosted
    git clone https://github.com/getsentry/self-hosted.git sentry-self-hosted
    cd sentry-self-hosted
  2. نصب Docker و Docker Compose
    توضیحsudo apt-get update
    sudo apt-get install docker.io -y
    sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
  3. رفتن به دایرکتوری کلون شده و اجرای اسکریپت نصب
    cd self-hosted
    bash ./install.sh
    درخواست‌ها را دنبال کنید، اطلاعات لازم را وارد کنید و ایمیل و رمز عبور ادمین را تنظیم کنید.
    اگر ایمیج دانلود نشد خودتان docker pull image_name را بزنید و مجددا install.sh را اجرا کنید
  4. اجرای Sentry
    sudo docker-compose up -dاطمینان حاصل کنید که پورت 9000 روی سرور باز است.
  5. پیکربندی تنظیمات CSRF
    فایل sentry.conf.py را باز کنید و آدرس IP سرور خود را اضافه کنید:
    cd sentry/
    sudo vi sentry.conf.py
    آدرس‌های مجاز CSRF را به‌روزرسانی کنید:
    توضیحCSRF_TRUSTED_ORIGINS = ["https://example.com", "http://<server_ip_address>:9000"]
    برای مثال؛ http://192.168.100.37:9000

    مجدد install.sh را اجرا کنید
    docker compose down
    docker compose up -d
    بعد از هر تغییری در فایل config باید این سه کار مجدد انجام شود.

دسترسی به Sentry
مرورگر خود را باز کنید و به آدرس <server_ip_address>:9000 بروید. با اطلاعات ادمینی که قبلاً تنظیم کرده‌اید، وارد شوید.

برای ارسال یک درخواستcurl  و تست یک اپ بسازید

سپس مقادیر اپ خودتان را بجای آیپی و پورت و عدد ۲ بعد از api و کلید sentry_key قرار دهید

curl --request POST \
  --url http://192.168.100.37:9000/api/2/envelope/ \
  --header 'Content-Type: application/json' \
  --header 'X-Sentry-Auth: Sentry sentry_version=7, sentry_client=curl/1.0, sentry_key=a849cf1fb88d76d9088dbff69372d298' \
  --data '{
    "event_id": "1234567890abcdef1234567890abcdef",
    "message": "Test error from curl",
    "timestamp": "2024-01-01T12:00:00Z",
    "level": "error",
    "logger": "my.logger",
    "platform": "php",
    "environment": "test",
    "server_name": "test-server",
    "tags": {
        "test_tag": "value"
    },
    "extra": {
        "extra_data": "value"
    }
}'

تست با استفاده از PowerShell

برای ارسال یک خطای تستی از طریق PowerShell، می‌توانید از دستور زیر استفاده کنید. این دستور یک خطای تستی به Sentry ارسال می‌کند تا مطمئن شوید تنظیمات به درستی انجام شده‌اند:

docker run --rm -v D:\karimi:/work -e SENTRY_DSN=http://a849cf1fb88d7688dbff69372d298@192.168.100.37:9000/2 getsentry/sentry-cli send-event --message &quotTest error from CLI&quot

راهنمای استفاده:

  1. اطمینان از مسیر درست در ویندوز: مسیر D:\karimi باید به پوشه‌ای روی سیستم شما اشاره کند. این مسیر به عنوان فضای کاری (work directory) استفاده می‌شود.
  2. تغییر SENTRY_DSN: جایگزین کنید:192.168.100.37:9000 با آدرس IP و پورت سرور Sentry شما.
    a849cf1fb88d76d9088dbff69372d298 با کلید API که در تنظیمات Sentry شما قرار دارد.
  3. اجرای دستور: این دستور را در PowerShell اجرا کنید. اگر تنظیمات صحیح باشند، خطای تستی با موفقیت به Sentry ارسال می‌شود و می‌توانید آن را در داشبورد خود مشاهده کنید.

این بخش، راهنمایی عملی برای آزمایش تنظیمات Sentry با استفاده از CLI در PowerShell ارائه می‌دهد و به شما امکان می‌دهد تنظیمات را بررسی کنید.

تست با پاورشل در جایی که داکر نصب نیست.

$headers = @{
    "Content-Type" = "application/json"
    "X-Sentry-Auth" = "Sentry sentry_version=7, sentry_client=PowerShell/1.0, sentry_key=a849cf1fb88d76d9088dbff69372d298"
}

$body = @{
    event_id = "1234567890abcdef1234567890abcdef"
    message = "Test error from PowerShell"
    timestamp = "2024-01-01T12:00:00Z"
    level = "error"
    logger = "my.logger"
    platform = "powershell"
    environment = "test"
    server_name = "test-server"
    tags = @{
        test_tag = "value"
    }
    extra = @{
        extra_data = "value"
    }
} | ConvertTo-Json -Depth 10

Invoke-RestMethod -Uri "http://192.168.100.37:9000/api/2/envelope/" -Method Post -Headers $headers -Body $body

تست با استفاده از کپی این متن در پاورشل در جایی که داکر نصب نیست.

حریم خصوصیsentryjaegerبرنامه نویسی
برنامه نویس.42ساله. از مدرک MCSD دات نت سال 2002 شروع کردم البته بعد از لیسانس و تمام عمرم رو در مدیریت با ابزار های شیرپوینت و MSPS و CRM و غیره گذراندم. https://zil.ink/sabert
شاید از این پست‌ها خوشتان بیاید