گزارش‌های دسترسی Red Hat Quay به شما امکان می‌دهند تا فعالیت‌هایی مانند کشیدن (pull) یا فشار دادن (push) تصاویر، و زمان ایجاد یا حذف سازمان‌ها و مخازن را مشاهده کنید. این گزارش‌ها به‌صورت پیش‌فرض در Red Hat Quay UI در سطح سازمان و مخزن و همچنین به‌صورت جهانی در پنل مدیریت کاربر در دسترس هستند، اما نگه‌داشتن آن‌ها به‌طور پیش‌فرض محدود به 30 روز است؛ بنابراین برای دید بلندمدت می‌توان این گزارش‌ها را به Splunk ارسال کرد 📊.

هدف این راهنما نشان دادن چگونگی ارسال گزارش‌های دسترسی Red Hat Quay به Splunk با استفاده از توکن Splunk HEC و نیز ایجاد داشبوردهایی در Splunk برای ردیابی تمام فعالیت‌های رخ‌داده در Red Hat Quay است. در این نمونه، ارسال را با پیکربندی عملگر Red Hat Quay در Red Hat OpenShift انجام می‌دهیم 🚀.

پیش‌نیازها:

• خوشه OpenShift با اپراتور Red Hat Quay نصب‌شده باشد.
• یک نمونه Splunk در دسترس با توکن HTTP Event Collector (HEC) و یک index برای ارسال گزارش‌ها داشته باشید.
• قبل از پیکربندی باید بدانید کدام index و sourcetype را در Splunk می‌خواهید استفاده کنید. در مثال ما مقدارهای splunk_host برابر quay-sno و splunk_sourcetype برابر quay_logs در نظر گرفته شده‌اند، اما در صورتی که چند محیط Quay دارید، توصیه می‌شود برای هر محیط از مقادیر خاص استفاده کنید تا بتوانید اقدامات هر محیط را از هم تفکیک کنید 🔐.

برای ارسال گزارش‌ها باید فایل config.yaml مربوط به Red Hat Quay را تغییر دهید. معمولاً این پیکربندی در راز config-bundle-secret ذخیره می‌شود و می‌توانید با مشاهده مقدار spec.configBundleSecret منبع سفارشی QuayRegistry راز دقیق را بررسی کنید. نمونه‌ای از گام‌ها و محتوای پیکربندی به‌صورت زیر است:

[pyaml]
base64 –decode > config.yaml
[/yaml]

به‌عنوان مثال، برای فعال‌سازی ارسال گزارش‌ها به Splunk، config.yaml را با مقادیر ضروری زیر ویرایش کنید:

LOGS_MODEL: splunk
LOGS_MODEL_CONFIG:
  builder: splunk_hec
  splunk_hec_config:
    host: prd-p-aaaaaq.splunkcloud.com
    port: 8088
    hec_token: 12345678-1234-1234-1234-1234567890ab
    url_scheme: https
    verify_ssl: false
    index: quay
  splunk_host: quay-sno
  splunk_sourcetype: quay_logs

پس از ویرایش، فایل به‌روزرسانی‌شده را در راز config-bundle-secret قرار دهید، برای مثال:

oc create secret generic config-bundle-secret -n quay-enterprise --from-file=config.yaml --dry-run=client -o yaml | oc apply -f -

همچنین می‌توانید اسناد رسمی را در Red Hat Quay docs برای تنظیم forwarding و verify-config مطالعه کنید. بعد از به‌روزرسانی، Red Hat Quay پادهای برنامه را مجدداً منتشر خواهد کرد؛ ابتدا مطمئن شوید که پادهای جدید درست راه‌اندازی شده‌اند. توجه داشته باشید که پس از فعال‌سازی ارسال گزارش‌ها به Splunk، گزارش‌های استفاده دیگر در رابط کاربری Quay قابل مشاهده نیستند و در صفحات ثبت دسترسی پیام «روش اجرا نشد، Splunk از جستجوی گزارش پشتیبانی نمی‌کند» نمایش داده می‌شود ⚠️.

برای آزمایش ساده می‌توانید یک مخزن یا سازمان آزمایشی ایجاد کنید و سپس در Splunk بر اساس مقدارهای splunk_host و splunk_sourcetype جستجو کنید تا تأیید کنید گزارش‌ها دریافت می‌شوند ✅.

استفاده از Splunk برای کسب بینش

در پرس‌وجوهای زیر باید index و sourcetype را مطابق پیکربندی config.yaml خود تنظیم کنید. این پرس‌وجوها نمونه‌هایی هستند برای استخراج اطلاعات مختلف:

ایجاد و حذف سازمان:

index="quay" sourcetype="quay_logs" (kind="org_create" OR kind="org_delete")
| eval Action = if(kind=="org_create", "Created", "Deleted")
| rename metadata_json.namespace AS "Organization Name", performer AS "Performer"
| table _time, Action, "Organization Name", "Performer"
| sort -_time

ایجاد و حذف مخزن:

index="quay" sourcetype="quay_logs" (kind="create_repo" OR kind="delete_repo")
| eval Action = if(kind=="create_repo", "Created", "Deleted")
| rename account AS "Organization", metadata_json.repo AS "Repository Name", performer AS "Performer"
| table _time, Action, "Organization", "Repository Name", "Performer"
| sort -_time

Image pulls — آخرین بار که هر تگ تصویر کشیده شده و توسط چه کسی:

index="quay" sourcetype="quay_logs" kind="pull_repo"
| stats max(_time) as last_event_epoch, last(performer) as performer by metadata_json.namespace, metadata_json.repo, metadata_json.tag
| eval "Last Activity" = strftime(last_event_epoch, "%Y-%m-%d %H:%M:%S")
| fields - last_event_epoch
| rename metadata_json.namespace AS namespace, metadata_json.repo AS repository, metadata_json.tag AS tag
| sort - "Last Activity"

تعداد کشش‌ها در روز:

index="quay" sourcetype="quay_logs" kind="pull_repo"
| timechart span=1d count as "Pull Count"

Image pushes — آخرین بار که هر تگ تصویر فشار داده شده و توسط چه کسی:

index="quay" sourcetype="quay_logs" kind="push_repo"
| stats max(_time) as last_event_epoch, last(performer) as performer by metadata_json.namespace, metadata_json.repo, metadata_json.tag
| eval "Last Activity" = strftime(last_event_epoch, "%Y-%m-%d %H:%M:%S")
| fields - last_event_epoch
| rename metadata_json.namespace AS namespace, metadata_json.repo AS repository, metadata_json.tag AS tag
| sort - "Last Activity"

تعداد فشارها در روز:

index="quay" sourcetype="quay_logs" kind="push_repo"
| timechart span=1d count as "Push Count"

ترکیب فشارها و کشش‌ها — خلاصه‌ای از آخرین فعالیت‌ها، تعداد کل فشارها و کشش‌ها و بازیگران هر عمل:

index="quay" sourcetype="quay_logs"
| stats count(eval(kind="push_repo")) as "Total Pushes",
        max(eval(if(kind="push_repo", _time, null()))) as last_push_epoch,
        values(eval(if(kind="push_repo", performer, null()))) as "Push Performers",
        count(eval(kind="pull_repo")) as "Total Pulls",
        max(eval(if(kind="pull_repo", _time, null()))) as last_pull_epoch,
        values(eval(if(kind="pull_repo", performer, null()))) as "Pull Performers"
  by metadata_json.namespace, metadata_json.repo
| eval "Last Push" = strftime(last_push_epoch, "%Y-%m-%d %H:%M:%S")
| eval "Last Pull" = strftime(last_pull_epoch, "%Y-%m-%d %H:%M:%S")
| rename metadata_json.namespace AS namespace, metadata_json.repo AS repository
| table namespace, repository, "Total Pushes", "Push Performers", "Last Push", "Total Pulls", "Pull Performers", "Last Pull"
| sort -namespace, -"Total Pushes"

این پرس‌وجوهای جداگانه بلوک‌های ساختاری ضروری برای رسیدن به دید مناسب روی رجیستری Red Hat Quay هستند. برای نظارت مؤثر، پیشنهاد می‌شود این نتایج را در یک داشبورد واحد در Splunk ترکیب کنید تا بتوانید تمام فعالیت‌های حیاتی را در یک نما مشاهده و بررسی کنید. می‌توانید نمونه‌ای از داشبورد کلاسیک Splunk را در GitHub پیدا کنید، ولی باید آن را براساس index و sourcetype خودتان تغییر دهید 🔧.

خلاصه

این راهنما گام‌های لازم برای ارسال گزارش‌های دسترسی Red Hat Quay به Splunk و به‌دست آوردن دید بلندمدت را شرح داد. با پیکربندی عملگر Red Hat Quay در OpenShift و استفاده از توکن Splunk HEC و اصلاح config.yaml، می‌توانید جریان مداوم داده‌ها را برای ممیزی و امنیت فراهم کنید. همچنین نمونه‌هایی از پرس‌وجوهای Splunk برای ردیابی فعالیت‌هایی مانند ایجاد/حذف سازمان و مخزن، کشش و فشار تصاویر ارائه شد و توصیه شد این پرس‌وجوها در یک داشبورد واحد ترکیب شوند تا نظارت تاریخی و جامع ممکن شود 📈.

به گزارش از وبسایت redhat