PSSStudio
n8n · AI · Automatyzacja

n8n + AI: automatyczne wzbogacanie i opisywanie alarmów

Aktualizacja: lipiec 2026 · czas czytania ~9 min

Systemy monitoringu (Zabbix, Prometheus, itp.) wysyłają alarmy, które dla człowieka o 3 w nocy są mało czytelne: „Interface port18-TX down". n8n to narzędzie do automatyzacji (open-source, self-hosted), którym można te alarmy przechwycić, dociągnąć kontekst na żywo z API urządzeń, a następnie kazać modelowi AI napisać zrozumiały opis: co się stało, kogo dotyczy i jak pilne to jest. Pokażę szkielet takiego workflow.

Po co w ogóle AI w tym miejscu? Nie do „halucynowania", tylko do streszczenia twardych danych, które sami dostarczamy: surowego alarmu + odpowiedzi z API. Model dostaje fakty i tłumaczy je na ludzki język oraz priorytet. Jakość zależy od tego, jak dobrze wzbogacisz dane przed modelem.

Architektura workflow

Przepływ, który się sprawdza w praktyce:

  1. Trigger IMAP — n8n czyta skrzynkę, na którą monitoring wysyła alarmy.
  2. Filtr — reagujemy tylko na maile alarmowe (po temacie/nadawcy).
  3. Debounce (opcjonalnie) — węzeł Wait np. 15 min; jeśli w tym czasie przyjdzie „Resolved", nie zawracamy nikomu głowy (odsiewa krótkie mignięcia łącza).
  4. Wzbogacanie (HTTP Request + Code) — logujemy się do API urządzenia i dociągamy stan na żywo.
  5. Model AI — węzeł Anthropic/OpenAI dostaje alarm + dane i pisze opis.
  6. Wyjście — mail/Slack/ticket z gotowym, czytelnym opisem.

Krok 1: wzbogacanie danymi z API

Sam alarm to za mało. Zanim oddamy sprawę modelowi, dociągamy fakty. Przykład węzła Code, który po zalogowaniu do API pobiera stan urządzenia i skleja czytelny blok tekstu:

// węzeł Code (typeVersion 2) — po węźle logowania do API
const token = $('API login').first().json.access_token;
const alarm = $('Filtr').first().json;

const info = await this.helpers.httpRequest({
  method: 'GET',
  url: `https://api.example.net/device/${alarm.deviceId}`,
  headers: { Authorization: 'Bearer ' + token },
  json: true,
  // dla self-signed certów:
  skipSslCertificateValidation: true,
});

const live =
  `Urządzenie: ${info.name} (${info.model})\n` +
  `Uptime: ${info.uptime}\n` +
  `Temperatura: ${info.temp}°C\n` +
  `Aktywni klienci: ${info.activeClients}`;

return [{ json: { ...alarm, live } }];

To najważniejszy krok — jakość opisu = jakość danych, które tu zbierzesz. Warto dołożyć np. liczbę dotkniętych klientów, czy interfejs to uplink (wpływ na całe urządzenie), historię innych alarmów na tym hoście, ping ICMP.

Krok 2: węzeł modelu AI

Do wzbogaconych danych podpinamy model. W n8n jest gotowy węzeł Anthropic (LangChain). Kluczowe: instrukcję systemową daj w polu system, a same fakty w wiadomości użytkownika. Przykład promptu systemowego:

Jesteś inżynierem NOC. Na podstawie surowego alarmu i danych na żywo napisz zwięzły opis po polsku: (1) co się stało, (2) prawdopodobny zasięg/kogo dotyczy, (3) priorytet (P1–P4) z uzasadnieniem. Nie zmyślaj — jeśli danych brak, napisz „brak danych". Maks. 6 zdań.

W treści wiadomości przekazujesz np. {{ $json.live }} oraz surowy tekst alarmu. Model zwróci gotowy akapit, który wstawiasz do maila/ticketu.

Wskazówka o modelach. Do streszczania faktów świetnie sprawdzają się nowsze modele Claude (np. rodzina Opus) — pilnują trzymania się dostarczonych danych. Jeśli chcesz porównać jakość, uruchom w workflow dwa węzły równolegle (Claude i drugi model) i wysyłaj oba opisy — po tygodniu widać, który pisze trafniej.

Krok 3: praktyczne pułapki

Gdzie postawić n8n

VPS albo mini-PC pod n8n i automatyzacje

n8n w Dockerze pociągnie tani VPS (2 vCPU / 2–4 GB) albo domowy mini-PC. Jeśli automatyzacje mają działać 24/7 i być dostępne z zewnątrz, VPS jest wygodniejszy.

Zobacz hosting/VPS pod n8n ›
Link afiliacyjny — prowizja dla nas, cena dla Ciebie bez zmian.

Podsumowanie