پروژه‌ها، کلیدها و محیط‌ها

در این آموزش
  1. سازمان و نقش‌ها
  2. پروژه: یکی برای هر سیستم
  3. ساخت پروژه
  4. کلیدهای ingest
  5. عوض کردن کلید بدون قطع شدن لاگ
  6. محیط‌ها: یک فیلد، نه پروژهٔ جدا

این برگه توضیح می‌دهد داده‌ها در LogMug چطور سازمان‌دهی می‌شوند: سازمان، پروژه، کلید ingest و محیط. اگر از ابتدا این ساختار را درست بچینید، بعداً هم جستجو ساده‌تر است و هم مدیریت دسترسی.

سازمان و نقش‌ها

با هر ثبت‌نام یک سازمان ساخته می‌شود. پلن، سهمیهٔ ماهانه و مصرف در سطح سازمان حساب می‌شوند و هر سازمان فقط دادهٔ خودش را می‌بیند. اعضای سازمان یکی از سه نقش را دارند:

  • مدیر: همهٔ کارها در سازمان.
  • عضو: کار روزمره با پروژه‌ها و لاگ‌ها، از جمله ساخت پروژه و کلید، ابطال کلید و تغییر تنظیمات حریم خصوصی پروژه.
  • فقط‌خواندنی: دیدن و جستجوی لاگ‌ها، بدون ساخت یا ابطال کلید و تغییر تنظیمات.

دعوت و مدیریت اعضای تیم از خود داشبورد در حال ساخت است.

پروژه: یکی برای هر سیستم

هر پروژه یک سیستم یا محصول است، مثلاً «سامانهٔ کلینیک» یا «فروشگاه». همهٔ سرویس‌های یک سیستم می‌توانند به یک پروژه بفرستند؛ API، worker، سرویس پرداخت و پنل مدیریت هر کدام نام سرویس خودشان را دارند و در داشبورد با فیلتر سرویس جدا می‌شوند. مزیت مهم این کار این است که «همهٔ لاگ‌های این درخواست» فقط داخل یک پروژه جستجو می‌کند؛ اگر سرویس‌های یک سیستم را در پروژه‌های جدا بگذارید، مسیر یک درخواست بین آن‌ها دیده نمی‌شود.

پروژهٔ جدا وقتی منطقی است که سیستم‌ها واقعاً مستقل‌اند، تیم‌های جدا دارند و درخواست‌هایشان به هم ربطی ندارد. تعداد پروژه‌ها به پلن بستگی دارد (پلن رایگان ۱ پروژه)؛ سهمیه‌ها و پلن‌ها را ببینید.

ساخت پروژه

  1. در داشبورد یک پروژهٔ جدید بسازید و نامش را بدهید.
  2. همان لحظه اولین کلید ingest نمایش داده می‌شود؛ آن را ذخیره کنید.
  3. زیر کلید، راهنمای اتصال برای ⁦ASP.NET Core⁩، Serilog، Java، سایر زبان‌ها و HTTP، با نشانی و کلید واقعی پر شده، آمادهٔ کپی است.

کلیدهای ingest

کلید ingest فقط برای فرستادن لاگ است و با آن نمی‌توان لاگ‌ها را خواند. چند نکته:

  • کلید فقط یک بار نمایش داده می‌شود. LogMug فقط هش آن را ذخیره می‌کند، پس حتی خودمان هم نمی‌توانیم آن را دوباره به شما نشان دهیم. اگر گم شد، کلید تازه بسازید.
  • برای هر پروژه می‌توانید چند کلید بسازید. پیشنهاد من یک کلید برای هر سرور یا هر محیط است، با نامی مثل «سرور تولید ۱» یا «staging». اگر یکی لو رفت، فقط همان را باطل می‌کنید.
  • جدول کلیدها برای هر کلید پیشوند، زمان ساخت و آخرین استفاده را نشان می‌دهد. کلیدی که مدت‌هاست استفاده نشده احتمالاً به سروری تعلق داشته که دیگر نیست و می‌شود باطلش کرد.
  • ابطال حداکثر ظرف یک دقیقه اثر می‌کند. پس از آن هر درخواست با آن کلید پاسخ 401 می‌گیرد.

عوض کردن کلید بدون قطع شدن لاگ

  1. یک کلید جدید با نام روشن بسازید.
  2. کلید جدید را در پیکربندی برنامه (متغیر محیطی یا secret) بگذارید و برنامه را دوباره مستقر کنید.
  3. در جدول کلیدها صبر کنید تا «آخرین استفاده» کلید جدید به‌روز شود و کلید قدیمی دیگر استفاده نشود.
  4. کلید قدیمی را باطل کنید.

کلید را در مخزن کد، در فایل‌های پیکربندی commit‌شده یا در لاگ‌ها نگذارید. متغیر محیطی، User Secrets در توسعه، و Secret در Kubernetes یا ابزار مدیریت راز جای درست آن است.

محیط‌ها: یک فیلد، نه پروژهٔ جدا

در LogMug «محیط» (production، staging، development و مانند آن) ویژگی هر لاگ است، نه یک بخش جدا. مقدارش را برنامه می‌فرستد و در داشبورد با فیلتر محیط و شمارش هر مقدار جدا می‌شود:

روش اتصال محیط از کجا می‌آید
OpenTelemetry resource attribute با نام deployment.environment.name (یا deployment.environment)
Serilog ویژگی Environment
JSON ساده فیلد environment یا env

بنابراین معمولاً یک پروژه برای همهٔ محیط‌های یک سیستم کافی است، با کلیدهای جدا برای هر محیط. اگر نمی‌خواهید لاگ‌های محیط آزمایشی سهمیهٔ ماهانه را مصرف کنند، فقط لاگ‌های سطح بالاتر را از آن محیط بفرستید. دربارهٔ اینکه کدام سطح را کجا بفرستید، مقالهٔ مدیریت متمرکز لاگ را ببینید.

کلید پروژه‌تان را هنوز ندارید؟

در پلن رایگان یک پروژه بسازید؛ راهنمای اتصال با نشانی و کلید واقعی خودتان همان‌جا آماده است.

شروع رایگان