نظارت و هشدارهای هزینه چند ابری با n8n

نظارت و هشدارهای هزینه چند ابری با n8n

8 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 7374 · منبع: کاتالوگ Axeto

نظارت و هشدارهای هزینه چند ابری برای AWS، Azure و GCP

این گردش کار، نظارت بر هزینه‌های ابری در AWS، Azure و GCP را خودکار می‌کند، هشدارهای به‌موقع ارائه می‌دهد و کنترل بودجه را تسهیل می‌کند. این گردش کار داده‌های صورتحساب را به صورت ساعتی دریافت می‌کند، آن‌ها را نرمال‌سازی می‌کند، ناهنجاری‌های هزینه را تشخیص می‌دهد، صاحبان منابع را شناسایی می‌کند و می‌تواند برچسب‌گذاری خودکار را برای منابع آسیب‌دیده راه‌اندازی کند. هشدارها از طریق ایمیل، واتس‌اپ و اسلک ارسال می‌شوند.

این گردش کار و موارد دیگر را در کاتالوگ n8n Axeto.ai کاوش کنید.

نمای کلی گردش کار

این گردش کار برای مدیریت جامع هزینه چند ابری طراحی شده است. اهداف اصلی آن عبارتند از:

  • جمع‌آوری داده‌های هزینه ساعتی: به طور منظم اطلاعات صورتحساب را از AWS، Azure و GCP جمع‌آوری کنید.
  • یکپارچه‌سازی داده‌ها: داده‌های صورتحساب ابری پراکنده را تجزیه و نرمال‌سازی کنید تا در قالبی سازگار قرار گیرند.
  • تشخیص ناهنجاری: افزایش قابل توجه هزینه یا سرریز احتمالی بودجه را شناسایی کنید.
  • شناسایی مالک منبع: مالک منابع مرتبط با ناهنجاری‌های هزینه را تعیین کنید.
  • برچسب‌گذاری خودکار: برچسب‌هایی را برای منابع آسیب‌دیده اعمال کنید تا ردیابی و پاسخگویی آسان‌تر شود.
  • هشدار چند کاناله: تیم‌های مربوطه را از طریق ایمیل، واتس‌اپ و اسلک مطلع کنید.

گردش کار به بلوک‌های منطقی زیر ساختار یافته است:

1. تریگر و جمع‌آوری داده‌ها: گردش کار را راه‌اندازی می‌کند و داده‌های هزینه را از APIهای صورتحساب هر ارائه‌دهنده ابری دریافت می‌کند.

2. تجزیه و نرمال‌سازی داده‌ها: داده‌های جمع‌آوری شده را در قالبی یکپارچه ادغام و پاک‌سازی می‌کند.

3. تشخیص افزایش هزینه: داده‌های نرمال‌سازی شده را برای شناسایی افزایش غیرعادی هزینه تجزیه و تحلیل می‌کند.

4. شناسایی مالک و برچسب‌گذاری منبع: مالکیت منبع را تعیین می‌کند و دستورات برچسب‌گذاری خودکار را آماده می‌کند.

5. ارسال هشدار: هشدارهای هزینه دقیق را از طریق کانال‌های ارتباطی پیکربندی شده ارسال می‌کند.

تجزیه و تحلیل دقیق گردش کار

۱. تریگر و جمع‌آوری داده‌ها

این بلوک اولیه، برنامه گردش کار را تنظیم می‌کند و داده‌های خام صورتحساب را از هر ارائه‌دهنده ابری دریافت می‌کند.

نودها:

  • Cron Trigger: گردش کار را برای اجرا در هر ساعت زمان‌بندی می‌کند.
  • AWS Billing Fetch (HTTP Request): داده‌های هزینه و استفاده را از AWS با استفاده از API Cost Explorer دریافت می‌کند.

* پیکربندی:

* متد: POST

* URL: https://ce.us-east-1.amazonaws.com/

* هدرها: X-Amz-Target: AWSInsightsIndexService.GetCostAndUsage, Content-Type: application/x-amz-json-1.1

* احراز هویت: احراز هویت پایه HTTP (اعتبار پیکربندی شده: "test - auth")

* بدنه: خالی

  • Azure Billing Fetch (HTTP Request): داده‌های هزینه را از API Azure Cost Management برای یک اشتراک خاص دریافت می‌کند.

* پیکربندی:

* متد: POST

* URL: https://management.azure.com/subscriptions/{{ $vars.AZURE_SUBSCRIPTION_ID }}/providers/Microsoft.CostManagement/query?api-version=2021-10-01

* هدرها: Content-Type: application/json

* احراز هویت: OAuth1 (اعتبار پیکربندی شده: "test-auth")

* بدنه: خالی

  • GCP Billing Fetch (HTTP Request): API Cloud Billing GCP را برای دریافت داده‌های استفاده برای یک حساب صورتحساب پرس و جو می‌کند.

* پیکربندی:

* متد: GET

* URL: https://cloudbilling.googleapis.com/v1/billingAccounts/{{ $vars.GCP_BILLING_ACCOUNT_ID }}/services

* پارامترهای کوئری: شامل فیلترهای پویا برای داده‌های ساعت گذشته است.

* احراز هویت: OAuth1 (اعتبار پیکربندی شده: "test-auth")

هدف: جمع‌آوری داده‌های صورتحساب خام و مختص ارائه‌دهنده در فواصل منظم.

۲. تجزیه و نرمال‌سازی داده‌ها

این بلوک داده‌های دریافتی از ارائه‌دهندگان مختلف ابری را به یک فرمت استاندارد تبدیل می‌کند.

نودها:

  • Data Parser (Code - JavaScript): داده‌های صورتحساب ورودی از همه منابع را پردازش می‌کند.

* عملکرد:

* از طریق هر مورد داده صورتحساب تکرار می‌شود.

* فیلدهای کلیدی را استخراج می‌کند: platform, cost, resourceId, timestamp, و owner.

* مقادیر هزینه را نرمال‌سازی می‌کند (به عنوان مثال، از فیلدهای cost یا totalCost).

* شناسه‌های منبع را شناسایی می‌کند (به عنوان مثال، از resourceId یا service).

* مالک منبع را تعیین می‌کند، در صورت عدم یافتن در تگ‌ها به طور پیش‌فرض 'untagged' است.

* یک مُهر زمانی با فرمت ISO استاندارد اضافه می‌کند.

* مقادیر پیش‌فرض را برای فیلدهای گمشده تنظیم می‌کند (به عنوان مثال، platform به طور پیش‌فرض 'unknown' است).

هدف: ایجاد یک مجموعه داده سازگار برای تجزیه و تحلیل دقیق در تمام محیط‌های ابری.

۳. تشخیص افزایش هزینه

این بلوک داده‌های نرمال‌سازی شده را تجزیه و تحلیل می‌کند تا ناهنجاری‌های هزینه بالقوه را شناسایی کند.

نودها:

  • Cost Spike Detector (Code - JavaScript): هر مورد هزینه نرمال‌سازی شده را در برابر آستانه‌های از پیش تعریف شده ارزیابی می‌کند.

* پیکربندی:

* از متغیرهای محیطی استفاده می‌کند:

* COST_THRESHOLD: آستانه هزینه پایه (پیش‌فرض: 50).

* SPIKE_MULTIPLIER: ضریبی برای تعیین یک افزایش قابل توجه (پیش‌فرض: 2.0).

* منطق:

* اگر cost از COST_THRESHOLD بیشتر باشد، یک هشدار را پرچم‌گذاری می‌کند.

شدت را تعیین می‌کند: 'HIGH' اگر هزینه بیشتر از COST_THRESHOLD SPIKE_MULTIPLIER باشد، در غیر این صورت 'MEDIUM'.

* اشیاء هشدار حاوی پلتفرم، شناسه منبع، هزینه فعلی، آستانه، مالک و شدت را تولید می‌کند.

هدف: شناسایی افزایش هزینه‌ها که نیاز به توجه دارند و دسته‌بندی فوریت آن‌ها.

۴. شناسایی مالک و برچسب‌گذاری منبع

این بلوک مالکیت منبع را بررسی می‌کند و اقدامات برچسب‌گذاری را آماده می‌کند.

نودها:

  • Owner Identifier (If Node): تعیین می‌کند که آیا مالک منبع به صراحت برچسب‌گذاری شده است یا خیر.

* شرط: $json.owner == 'untagged'

* رفتار: هر دو مسیر 'true' و 'false' به نود بعدی ادامه می‌دهند، اطمینان حاصل می‌کنند که تمام ناهنجاری‌های هزینه شناسایی شده برای برچسب‌گذاری در نظر گرفته می‌شوند.

  • Auto-Tag Resource (Code - JavaScript): دستورات مختص پلتفرم را برای برچسب‌گذاری منابع تولید می‌کند.

* عملکرد:

* بر اساس فیلد platform، دستورات CLI مناسب را می‌سازد:

* AWS: یک دستور AWS CLI برای افزودن تگ‌هایی مانند CostAlert=true و AlertTime=<current ISO time> تولید می‌کند.

* Azure: یک دستور Azure CLI برای برچسب‌گذاری مشابه ایجاد می‌کند.

* GCP: یک دستور gcloud برای افزودن برچسب‌ها برای هشدارهای هزینه و مُهر زمانی (میلی‌ثانیه اپوک) ایجاد می‌کند.

* دستور tagCommand تولید شده را به شیء هشدار اضافه می‌کند.

هدف: شناسایی منابعی که فاقد تگ مالک هستند و آماده‌سازی دستورالعمل‌های برچسب‌گذاری خودکار برای تیم‌های عملیاتی.

۵. ارسال هشدار

این بلوک نهایی اعلان‌ها را در مورد ناهنجاری‌های هزینه شناسایی شده از طریق کانال‌های مختلف ارسال می‌کند.

نودها:

  • Alert Sender On Email (Email Send): هشدارها را از طریق ایمیل ارسال می‌کند.

* پیکربندی:

* موضوع و بدنه: جزئیاتی مانند پلتفرم، منبع، هزینه، آستانه، مالک، شدت، مُهر زمانی و tagCommand را شامل می‌شود.

* گیرندگان: abcdef@gmail.com, xyzabc@gmail.com

* فرستنده: abc@gmail.com

* احراز هویت: اعتبارنامه SMTP (پیکربندی شده: "SMTP -test")

  • Alert Sender On WhatsApp (WhatsApp Node): هشدارها را از طریق پیام‌های واتس‌اپ ارسال می‌کند.

* پیکربندی:

* محتوای پیام: مشابه محتوای ایمیل.

* نیاز به شناسه شماره تلفن و شماره تلفن گیرنده دارد.

* احراز هویت: اعتبارنامه API واتس‌اپ (پیکربندی شده: "WhatsApp-test")

  • Alert Sender On Slack (Slack Node): هشدارها را در یک کانال اسلک تعیین شده پست می‌کند.

* پیکربندی:

* قالب پیام: شامل جزئیات هشدار و tagCommand است.

* کانال: به صورت پویا با استفاده از متغیر SLACK_CHANNEL_ID تنظیم می‌شود.

* احراز هویت: اعتبارنامه API اسلک (پیکربندی شده: "Slack account - test")

هدف: اطمینان از اینکه هشدارهای ناهنجاری هزینه به پرسنل مناسب از طریق روش‌های ارتباطی ترجیحی آن‌ها، همراه با اطلاعات برچسب‌گذاری عملی می‌رسد.

جدول خلاصه

نام نودنوع نودنقشنود(های) ورودینود(های) خروجی
Cron TriggerCron Triggerزمان‌بندی کننده گردش کارNoneAWS Billing Fetch, Azure Billing Fetch, GCP Billing Fetch
AWS Billing FetchHTTP Requestدریافت داده‌های صورتحساب AWSCron TriggerData Parser
Azure Billing FetchHTTP Requestدریافت داده‌های صورتحساب AzureCron TriggerData Parser
GCP Billing FetchHTTP Requestدریافت داده‌های صورتحساب GCPCron TriggerData Parser
Data ParserCode (JavaScript)نرمال‌سازی و ادغام داده‌های صورتحسابAWS Billing Fetch, Azure Billing Fetch, GCP Billing FetchCost Spike Detector
Cost Spike DetectorCode (JavaScript)تشخیص ناهنجاری‌های هزینهData ParserOwner Identifier
Owner IdentifierIf Nodeبررسی مالک بدون برچسبCost Spike DetectorAuto-Tag Resource
Auto-Tag ResourceCode (JavaScript)تولید دستورات برچسب‌گذاری منبعOwner IdentifierAlert Sender On Email, WhatsApp, Slack
Alert Sender On EmailEmail Sendارسال هشدارهای ایمیلیAuto-Tag ResourceNone
Alert Sender On WhatsAppWhatsApp Nodeارسال هشدارهای واتس‌اپAuto-Tag ResourceNone
Alert Sender On SlackSlack Nodeارسال هشدارهای اسلکAuto-Tag ResourceNone

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چه کاری انجام می‌دهد؟

این گردش کار نظارت بر هزینه‌های ابری را برای AWS، Azure و GCP خودکار می‌کند، ناهنجاری‌های هزینه را تشخیص می‌دهد، صاحبان منابع را شناسایی می‌کند و هشدارهایی را از طریق ایمیل، واتس‌اپ و اسلک ارسال می‌کند تا به کنترل بودجه کمک کند.

کدام ارائه‌دهندگان ابری پشتیبانی می‌شوند؟

این گردش کار از AWS، Azure و Google Cloud Platform (GCP) پشتیبانی می‌کند.

چگونه این گردش کار هشدارهای هزینه را ارسال می‌کند؟

این گردش کار می‌تواند هشدارها را از طریق کانال‌های مختلف ارتباطی از جمله ایمیل، واتس‌اپ و اسلک ارسال کند.

آیا این گردش کار می‌تواند به طور خودکار منابع را برچسب‌گذاری کند؟

بله، این گردش کار قابلیت راه‌اندازی برچسب‌گذاری خودکار برای منابعی که با ناهنجاری‌های هزینه شناسایی شده‌اند را دارد.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.