
نظارت و هشدارهای هزینه چند ابری با n8n
8 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- 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 Trigger | Cron Trigger | زمانبندی کننده گردش کار | None | AWS Billing Fetch, Azure Billing Fetch, GCP Billing Fetch |
| AWS Billing Fetch | HTTP Request | دریافت دادههای صورتحساب AWS | Cron Trigger | Data Parser |
| Azure Billing Fetch | HTTP Request | دریافت دادههای صورتحساب Azure | Cron Trigger | Data Parser |
| GCP Billing Fetch | HTTP Request | دریافت دادههای صورتحساب GCP | Cron Trigger | Data Parser |
| Data Parser | Code (JavaScript) | نرمالسازی و ادغام دادههای صورتحساب | AWS Billing Fetch, Azure Billing Fetch, GCP Billing Fetch | Cost Spike Detector |
| Cost Spike Detector | Code (JavaScript) | تشخیص ناهنجاریهای هزینه | Data Parser | Owner Identifier |
| Owner Identifier | If Node | بررسی مالک بدون برچسب | Cost Spike Detector | Auto-Tag Resource |
| Auto-Tag Resource | Code (JavaScript) | تولید دستورات برچسبگذاری منبع | Owner Identifier | Alert Sender On Email, WhatsApp, Slack |
| Alert Sender On Email | Email Send | ارسال هشدارهای ایمیلی | Auto-Tag Resource | None |
| Alert Sender On WhatsApp | WhatsApp Node | ارسال هشدارهای واتساپ | Auto-Tag Resource | None |
| Alert Sender On Slack | Slack Node | ارسال هشدارهای اسلک | Auto-Tag Resource | None |
Nodeهای استفادهشده
سوالات متداول
این گردش کار n8n چه کاری انجام میدهد؟▾
این گردش کار نظارت بر هزینههای ابری را برای AWS، Azure و GCP خودکار میکند، ناهنجاریهای هزینه را تشخیص میدهد، صاحبان منابع را شناسایی میکند و هشدارهایی را از طریق ایمیل، واتساپ و اسلک ارسال میکند تا به کنترل بودجه کمک کند.
کدام ارائهدهندگان ابری پشتیبانی میشوند؟▾
این گردش کار از AWS، Azure و Google Cloud Platform (GCP) پشتیبانی میکند.
چگونه این گردش کار هشدارهای هزینه را ارسال میکند؟▾
این گردش کار میتواند هشدارها را از طریق کانالهای مختلف ارتباطی از جمله ایمیل، واتساپ و اسلک ارسال کند.
آیا این گردش کار میتواند به طور خودکار منابع را برچسبگذاری کند؟▾
بله، این گردش کار قابلیت راهاندازی برچسبگذاری خودکار برای منابعی که با ناهنجاریهای هزینه شناسایی شدهاند را دارد.
workflowهای مرتبط
- دستهبندی خودکار ایمیل جیمیل با GPT-4o و هشدار SlackAI Summarization
- اتوماسیون زیرنویسگذاری ویدیو با n8n، Google Drive و SubmagicContent Creation
- تحلیل خودکار Google Analytics با هوش مصنوعی Gemini و اعلانه…Market Research
- اتوماسیون ثبت رزروهای Calendly در Google Sheets با n8nCRM
- خودکارسازی بهروزرسانی n8n با Coolify و API گیتهابDevOps
- اتوماسیون پیامهای تشکر و کوپن واتساپ برای مشتریان ShopifyContent Creation
