تحلیل خودکار حوادث Alertmanager با هوش مصنوعی و ارسال به Ma…

تحلیل خودکار حوادث Alertmanager با هوش مصنوعی و ارسال به Ma…

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

دانلود workflow

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

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

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

تحلیل حوادث Alertmanager و ارسال گزارش‌های تشخیصی به Mattermost

این گردش کار، تحلیل حوادث Alertmanager را با استفاده از هوش مصنوعی برای تولید گزارش‌های تشخیصی و ارسال آن‌ها به Mattermost خودکار می‌کند. این گردش کار برای تیم‌های DevOps طراحی شده است تا فرآیند تریاژ و پاسخ به حوادث را ساده‌سازی کند.

کاتالوگ Axeto: مشاهده گردش کار

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

این گردش کار رویدادهای وب‌هوک را از Alertmanager دریافت می‌کند، هر هشدار را به یک درخواست بررسی مختصر تبدیل می‌کند و سپس از یک عامل هوش مصنوعی برای تجزیه و تحلیل حادثه استفاده می‌کند. این عامل از ابزارهای خارجی مختلفی برای بازیابی و تجزیه و تحلیل داده‌ها بهره می‌برد. در نهایت، گزارش تشخیصی تولید شده در رشته (thread) مربوطه در Mattermost ارسال می‌شود.

مورد استفاده اصلی: تریاژ حوادث برای هشدارهای زیرساخت یا برنامه در محیط‌هایی که از Alertmanager، Mattermost و منابع مشاهده‌پذیری/ابزارسازی مانند Grafana، Kubernetes، GitHub، DigitalOcean و پایگاه دانش Qdrant استفاده می‌کنند.

تشریح گردش کار

این گردش کار به چندین مرحله کلیدی تقسیم می‌شود:

1. دریافت ورودی و تنظیم متغیرهای زمان اجرا: رویدادهای وب‌هوک Alertmanager را به صورت امن دریافت کرده و متغیرهای ضروری زمان اجرا را پیکربندی می‌کند.

2. پیش‌پردازش هشدارها: بارهای داده (payloads) دریافتی از Alertmanager را به فرمتی ساختاریافته که برای تحلیل هوش مصنوعی مناسب است، تبدیل می‌کند.

3. تحلیل حادثه با هوش مصنوعی: از یک عامل LangChain با چندین ارائه‌دهنده ابزار برای بررسی حادثه و تولید گزارش تشخیصی استفاده می‌کند.

4. جستجوی رشته (Thread) در Mattermost: رشته (thread) مربوطه در Mattermost را برای حادثه شناسایی می‌کند.

5. ارسال گزارش: گزارش تشخیصی تولید شده توسط هوش مصنوعی را در رشته (thread) شناسایی شده در Mattermost ارسال می‌کند.

6. مستندسازی: شامل یادداشت‌های چسبان (sticky notes) برای جزئیات پیکربندی ضروری و مراجع است.

---

تحلیل گره‌های جزئی

۱. دریافت ورودی و راه‌اندازی متغیرهای زمان اجرا

این بخش مسئول دریافت اولیه هشدارها و راه‌اندازی متغیرهای محیطی لازم است.

#### گره: دریافت هشدارها (Receive alerts)

  • نوع: n8n-nodes-base.webhook
  • هدف: به عنوان نقطه ورود گردش کار عمل می‌کند و محموله‌های Alertmanager را از طریق درخواست POST دریافت می‌کند.
  • پیکربندی:

* متد HTTP: POST

* مسیر: alertmanager

* احراز هویت: Basic Auth

  • ورودی/خروجی:

* ورودی: ندارد (محرک گردش کار)

* خروجی: محموله دریافتی را به گره SetVars ارسال می‌کند.

  • نکات: نیاز به پیکربندی صحیح Basic Auth در Alertmanager دارد. اطمینان حاصل کنید که مسیر وب‌هوک قابل دسترسی است.

#### گره: تنظیم متغیرها (SetVars)

  • نوع: n8n-nodes-base.set
  • هدف: متغیرهای ایستا و مختص محیطی مورد نیاز برای عملیات‌های بعدی، مانند هاست Mattermost و شناسه کانال را تزریق می‌کند.
  • پیکربندی:

* MATTERMOST_HOST را تنظیم می‌کند (مثلاً mattermost.example.com).

* MATTERMOST_CHANNEL_ID را تنظیم می‌کند (مثلاً dr87mpsdmbfrbxeag7i11acuyw).

* includeOtherFields: true داده‌های وب‌هوک اصلی را حفظ می‌کند.

  • ورودی/خروجی:

* ورودی: داده‌ها را از گره Receive alerts دریافت می‌کند.

* خروجی: داده‌های پردازش شده و متغیرها را به گره PreProcessAlerts ارسال می‌کند.

  • نکات: اطمینان حاصل کنید که MATTERMOST_HOST و MATTERMOST_CHANNEL_ID به درستی پیکربندی شده‌اند. اعلان سیستمی برای عامل هوش مصنوعی نیز به prometheus_uid و loki_uid اشاره می‌کند که در صورت استفاده، ایده‌آل است که در اینجا تنظیم شوند.

---

۲. پیش‌پردازش هشدارها

این مرحله داده‌های هشدار را برای عامل هوش مصنوعی آماده می‌کند.

#### گره: پیش‌پردازش هشدارها (PreProcessAlerts)

  • نوع: n8n-nodes-base.code
  • هدف: محموله خام Alertmanager را به یک رشته ساختاریافته chatInput برای عامل هوش مصنوعی تبدیل می‌کند و یک sessionId منحصر به فرد تولید می‌کند.
  • پیکربندی:

* داده‌های هشدار را از محموله ورودی می‌خواند.

* برچسب‌های رایج و پر سر و صدا (مانند alertname, instance, job) را فیلتر می‌کند.

* برچسب‌های خاص را برای وضوح نام‌گذاری مجدد می‌کند (مانند grafana_board به Grafana Dashboard).

* برچسب‌ها و توضیحات را به یک بلوک متنی قابل خواندن قالب‌بندی می‌کند.

* action: "sendMessage" و رشته chatInput را ایجاد می‌کند.

* یک sessionId بر اساس اثر انگشت هشدار تولید می‌کند.

  • ورودی/خروجی:

* ورودی: داده‌ها را از گره SetVars دریافت می‌کند.

* خروجی: داده‌های هشدار پیش‌پردازش شده را به گره AI Agent ارسال می‌کند.

  • نکات: هشدارهای متعدد را در یک وب‌هوک واحد با ایجاد موارد خروجی جداگانه برای هر کدام مدیریت می‌کند. اگر محموله فاقد هشدار باشد، گره‌های بعدی ممکن است اجرا نشوند.

---

۳. تحلیل حادثه با هوش مصنوعی

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

#### گره: عامل هوش مصنوعی (AI Agent)

  • نوع: @n8n/n8n-nodes-langchain.agent
  • هدف: فرآیند استدلال هوش مصنوعی را هماهنگ می‌کند و ابزارهای خارجی را برای جمع‌آوری اطلاعات و تولید گزارش تشخیصی فراخوانی می‌کند.
  • پیکربندی:

* پیام سیستمی (System Message): نقش هوش مصنوعی (مانند دستیار SRE با تجربه)، قوانین استفاده از ابزار، جریان تحقیق و فرمت خروجی مورد نیاز (چه اتفاقی افتاد، جدول زمانی، علت ریشه‌ای، نکات عیب‌یابی) را تعریف می‌کند. به عامل دستور می‌دهد که سوالات پیگیری نپرسد و تلاش‌های ناموفق برای فراخوانی ابزار را محدود کند.

* ارائه‌دهندگان ابزار (Tool Providers): برای استفاده از خروجی‌های گره‌های OpenAI Chat Model, Github MCP, Digitalocean MCP, K8S mcp, Grafana mcp و Qdrant Vector Store پیکربندی شده است.

  • ورودی/خروجی:

* ورودی اصلی: داده‌های هشدار پیش‌پردازش شده را از PreProcessAlerts دریافت می‌کند.

* ورودی مدل زبان (Language Model Input): به OpenAI Chat Model متصل می‌شود.

* ورودی‌های ابزار (Tool Inputs): به گره‌های مختلف MCP و Qdrant Vector Store متصل می‌شود.

* خروجی اصلی: گزارش تولید شده را به گره GetAlertMessages ارسال می‌کند.

  • نکات: نیاز به اعتبارنامه‌های معتبر برای مدل زبان و نقاط پایانی MCP قابل دسترسی دارد. اطمینان حاصل کنید که متغیرهای ارجاع شده مانند prometheus_uid و loki_uid در گره SetVars به درستی تنظیم شده‌اند، اگر برای زمینه عامل حیاتی هستند.

#### گره: مدل چت OpenAI (OpenAI Chat Model)

  • نوع: @n8n/n8n-nodes-langchain.lmChatOpenAi
  • هدف: مدل زبان بزرگ (LLM) را برای استدلال عامل هوش مصنوعی فراهم می‌کند.
  • پیکربندی:

* مدل: gpt-4-turbo-preview (یا جایگزین مناسب).

* اعتبارنامه‌ها: از اعتبارنامه‌های پیکربندی شده OpenAI استفاده می‌کند (مثلاً OpenAi account).

  • ورودی/خروجی:

* خروجی: رابط LLM را به گره AI Agent ارائه می‌دهد.

  • نکات: اطمینان حاصل کنید که حساب OpenAI شما به مدل انتخاب شده و سهمیه کافی دسترسی دارد. هزینه‌های API را نظارت کنید.

#### گره: Github MCP

  • نوع: @n8n/n8n-nodes-langchain.mcpClientTool
  • هدف: ابزارهای بازرسی مخزن GitHub و issue/PR را در اختیار عامل هوش مصنوعی قرار می‌دهد.
  • پیکربندی:

* URL نقطه پایانی (Endpoint URL): http://mcp-github:8091/mcp

* ابزارهای شامل (Included Tools): جستجوی مخزن، بازیابی فایل، لیست کردن commitها، بازرسی issue/PR.

  • ورودی/خروجی:

* خروجی: دسترسی به ابزار GitHub را به گره AI Agent ارائه می‌دهد.

  • نکات: نیاز به یک سرور MCP در حال اجرا برای GitHub و احراز هویت مناسب پیکربندی شده در سرور MCP دارد.

#### گره: Digitalocean MCP

  • نوع: @n8n/n8n-nodes-langchain.mcpClientTool
  • هدف: ابزارهایی را برای بازرسی منابع DigitalOcean (برنامه‌ها، قطره‌ها، خوشه‌های Kubernetes، شبکه‌بندی) فراهم می‌کند.
  • پیکربندی:

* URL نقطه پایانی (Endpoint URL): http://mcp-digitalocean:8090/mcp

* زمان انتظار (Timeout): 60000 ms

* شامل مجموعه‌ای جامع از ابزارهای کشف و وضعیت DigitalOcean است.

  • ورودی/خروجی:

* خروجی: دسترسی به ابزار DigitalOcean را به گره AI Agent ارائه می‌دهد.

  • نکات: نیاز به یک سرور MCP در حال اجرا برای DigitalOcean و اعتبارنامه‌های API معتبر پیکربندی شده در سرور MCP دارد.

#### گره: K8S mcp

  • نوع: @n8n/n8n-nodes-langchain.mcpClientTool
  • هدف: ابزارهایی را برای بازرسی منابع خوشه Kubernetes (فضاهای نام، پادها، گره‌ها، رویدادها، پیکربندی‌ها) در اختیار عامل هوش مصنوعی قرار می‌دهد.
  • پیکربندی:

* URL نقطه پایانی (Endpoint URL): http://mcp-kubernetes:8089/mcp

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

  • ورودی/خروجی:

* خروجی: دسترسی به ابزار Kubernetes را به گره AI Agent ارائه می‌دهد.

  • نکات: نیاز به یک سرور MCP در حال اجرا برای Kubernetes و مجوزهای RBAC مناسب پیکربندی شده برای حساب سرویس مورد استفاده توسط MCP دارد.

#### گره: Grafana mcp

  • نوع: @n8n/n8n-nodes-langchain.mcpClientTool
  • هدف: ابزارهایی را برای پرس و جو از منابع داده Grafana، از جمله متریک‌ها، لاگ‌ها، داشبوردها و هشدارها فراهم می‌کند.
  • پیکربندی:

* URL نقطه پایانی (Endpoint URL): http://mcp-grafana:8000/mcp

* زمان انتظار (Timeout): 60000 ms

* شامل ابزارهایی برای پرس و جوهای Prometheus، پرس و جوهای Loki، جستجوی داشبورد و غیره است.

  • ورودی/خروجی:

* خروجی: دسترسی به ابزار Grafana را به گره AI Agent ارائه می‌دهد.

  • نکات: نیاز به یک سرور MCP در حال اجرا برای Grafana و دسترسی به منابع داده پیکربندی شده (مانند Prometheus، Loki) دارد.

#### گره: فروشگاه برداری Qdrant (Qdrant Vector Store)

  • نوع: @n8n/n8n-nodes-langchain.vectorStoreQdrant
  • هدف: به عامل هوش مصنوعی امکان می‌دهد تا پایگاه دانش مرتبط را در یک پایگاه داده برداری Qdrant جستجو کند.
  • پیکربندی:

* جزئیات اتصال به نمونه Qdrant.

* نام مجموعه (Collection name).

  • ورودی/خروجی:

* خروجی: قابلیت‌های جستجوی برداری را به گره AI Agent ارائه می‌دهد.

  • نکات: نیاز به یک نمونه Qdrant در حال اجرا و جزئیات اتصال مناسب دارد. فروشگاه برداری باید با مستندات یا runbookهای مرتبط پر شده باشد.

#### گره: جاسازی‌های Google Gemini (Embeddings Google Gemini)

  • نوع: @n8n/n8n-nodes-langchain.embeddingsGoogleGemini
  • هدف: جاسازی‌هایی را برای داده‌های متنی تولید می‌کند که توسط فروشگاه برداری Qdrant برای جستجوهای شباهت استفاده می‌شود.
  • پیکربندی:

* اعتبارنامه‌های Google Cloud.

* نام مدل (مانند embedding-001).

  • ورودی/خروجی:

* خروجی: قابلیت‌های تولید جاسازی را به گره Qdrant Vector Store ارائه می‌دهد (به طور ضمنی، به عنوان بخشی از پیکربندی آن).

  • نکات: نیاز به اعتبارنامه‌های Google Cloud با دسترسی به API Vertex AI یا API Gemini برای جاسازی‌ها دارد.

---

۴. جستجوی رشته Mattermost

این بخش رشته صحیح Mattermost را برای ارسال گزارش پیدا می‌کند.

#### گره: دریافت پیام‌های هشدار (GetAlertMessages)

  • نوع: n8n-nodes-base.httpRequest
  • هدف: پیام‌های اخیر را از کانال Mattermost هدف واکشی می‌کند تا پست اصلی هشدار را شناسایی کند.
  • پیکربندی:

* از نقطه پایانی API Mattermost برای لیست کردن پست‌ها استفاده می‌کند.

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

  • ورودی/خروجی:

* ورودی: داده‌ها را از گره AI Agent دریافت می‌کند.

* خروجی: اطلاعات رشته شناسایی شده (یا عدم وجود آن) را به گره PostReport ارسال می‌کند.

  • نکات: به متغیرهای MATTERMOST_HOST و MATTERMOST_CHANNEL_ID که قبلاً تنظیم شده‌اند، متکی است. نیاز به دسترسی به API Mattermost دارد.

---

۵. ارسال گزارش

این مرحله گزارش تشخیصی نهایی را ارسال می‌کند.

#### گره: ارسال گزارش (PostReport)

  • نوع: n8n-nodes-base.mattermost
  • هدف: گزارش تشخیصی تولید شده توسط هوش مصنوعی را به رشته Mattermost شناسایی شده ارسال می‌کند.
  • پیکربندی:

* اقدام (Action): Send Message

* شناسه کانال (Channel ID): از MATTERMOST_CHANNEL_ID استفاده می‌کند.

* پیام (Message): حاوی گزارش تولید شده توسط هوش مصنوعی است.

* شناسه پست ریشه (Root Post ID): از شناسه‌ای که توسط GetAlertMessages پیدا شده است برای پاسخ در رشته صحیح استفاده می‌کند.

  • ورودی/خروجی:

* ورودی: داده‌ها را از GetAlertMessages و گزارش هوش مصنوعی را از AI Agent دریافت می‌کند.

* خروجی: پیام را به Mattermost ارسال می‌کند.

  • نکات: اگر رشته موجودی پیدا نشود، بسته به پیکربندی و رفتار API Mattermost، ممکن است به عنوان یک پیام جدید ارسال شود.

---

۶. مستندات

#### گره: یادداشت‌های چسبان (Sticky Notes)

  • نوع: n8n-nodes-base.stickyNote
  • هدف: مستندات غیرقابل اجرا را در بوم گردش کار ارائه می‌دهد و الزامات، انتظارات پیکربندی و ارجاعات MCP خارجی را توضیح می‌دهد.
  • پیکربندی: حاوی راهنمایی متنی است.
  • ورودی/خروجی: ندارد (فقط اطلاعاتی).
  • نکات: برای درک و نگهداری گردش کار ضروری است.

---

پیش‌نیازها

  • Alertmanager: پیکربندی شده برای ارسال وب‌هوک به نمونه n8n.
  • Mattermost: قابل دسترسی از طریق API، با یک کانال مشخص و توکن ربات (در صورت نیاز توسط پیکربندی نود Mattermost در n8n).
  • نمونه n8n: قابل دسترسی از طریق HTTP/S، با نودهای لازم نصب شده (شامل نودهای LangChain و AI).
  • سرویس‌های MCP: نمونه‌های در حال اجرای MCP برای GitHub، DigitalOcean، Kubernetes و Grafana، قابل دسترسی از نمونه n8n.
  • پایگاه داده برداری Qdrant: نمونه در حال اجرا، پر شده با داده‌های مرتبط.
  • حساب OpenAI: با کلید API و اعتبار کافی برای مدل انتخاب شده.
  • حساب Google Cloud: با اعتبارنامه‌ها برای تولید امبدینگ‌ها (embeddings).
  • اعتبارنامه‌ها: به صورت امن در n8n برای OpenAI، Google Cloud و احتمالاً Mattermost پیکربندی شده‌اند.

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

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

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

این گردش کار فرآیند تحلیل حوادث Alertmanager را با استفاده از هوش مصنوعی خودکار می‌کند و گزارش‌های تشخیصی را مستقیماً در Mattermost برای تیم‌های DevOps ارسال می‌نماید، که باعث تسریع در پاسخ به حوادث می‌شود.

چه ابزارهایی برای این گردش کار لازم است؟

ابزارهای اصلی مورد نیاز شامل Alertmanager برای ارسال هشدار، Mattermost برای ارتباطات تیمی، و n8n به عنوان پلتفرم اتوماسیون است. همچنین از LangChain و مدل‌های هوش مصنوعی برای تحلیل استفاده می‌شود.

چگونه این گردش کار حوادث را تحلیل می‌کند؟

گردش کار هشدارهای Alertmanager را دریافت کرده، آن‌ها را پیش‌پردازش می‌کند، سپس از یک عامل هوش مصنوعی (LangChain) برای تحلیل عمیق‌تر و تولید گزارش تشخیصی استفاده می‌کند.

گزارش‌های تشخیصی کجا ارسال می‌شوند؟

گزارش‌های تشخیصی تولید شده توسط هوش مصنوعی به طور خودکار در رشته (thread) مربوطه در Mattermost ارسال می‌شوند تا تیم DevOps به سرعت به اطلاعات دسترسی پیدا کند.

workflowهای مرتبط

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