Jak n8n może pomóc w codziennych zadaniach devopsa

n8n to potężne narzędzie dla każdego DevOpsa, który chce mieć większą kontrolę nad automatyzacją bez konieczności pisania dziesiątek skryptów od zera. Jego elastyczność, prosty interfejs i ogromna liczba integracji czynią go doskonałym wsparciem w codziennych zadaniach. Automatyzując kluczowe procesy — od monitoringu po deploye i backupy — zyskujemy czas, redukujemy błędy i zwiększamy niezawodność całej infrastruktury. n8n staje się cennym sprzymierzeńcem w eliminacji żmudnych, powtarzalnych zadań. Poniżej przedstawiam 5 najlepszych zastosowań n8n, które realnie wspomagają codzienną pracę specjalistów DevOps.

Twórz najlepsze wizualizacje i monitoring z użyciem Grafany!

Dołącz do szkolenia! Promocja do 16 czerwca o 23:59!

Dołącz na: https://asdevops.pl/kurs-grafany/

 

 

 

 

1. Monitoring usług i natychmiastowe powiadomienia

Jednym z podstawowych zadań DevOpsa jest dbanie o dostępność i wydajność systemów. Z pomocą n8n można zbudować automatyczny workflow, który:

  • sprawdza stan aplikacji lub API (np. przez HTTP Request, Ping, integrację z Zabbix/Prometheus),
  • analizuje metryki,
  • wysyła powiadomienia na Slacka, Telegrama, Discorda lub e-mail w przypadku awarii.

Dzięki temu reagujesz szybciej – często zanim użytkownicy zdążą zauważyć problem. Wdrożenie takiej automatyzacji pozwala ograniczyć czas wykrywania awarii (MTTD) i rozpocząć działania naprawcze zanim sytuacja się pogorszy. To przekłada się bezpośrednio na wyższą dostępność usług, większe zadowolenie użytkowników i mniej stresu dla zespołu.

2. Automatyzacja backupów i rotacji danych

Z n8n można ustawić harmonogram tworzenia kopii zapasowych:

  • baz danych (np. MySQL, PostgreSQL),
  • plików lokalnych lub zewnętrznych (np. FTP/SFTP),
  • lub synchronizacji z chmurą (S3, Google Drive, Dropbox).

Dodatkowo możliwe jest automatyczne czyszczenie starych backupów, dzięki czemu zachowana zostaje higiena systemów i miejsce na dysku. Automatyzacja backupów minimalizuje ryzyko utraty danych w przypadku awarii, a jednocześnie pozwala zaoszczędzić czas i wyeliminować błędy ludzkie związane z ręcznym wykonywaniem kopii. To także większa zgodność z politykami bezpieczeństwa i wymogami audytowymi.

3. Automatyzacja deployów i CI/CD

n8n może działać jako lekki layer do automatyzacji procesu CI/CD:

  • nasłuchując webhooków z GitHuba lub GitLaba,
  • wykonując testy integracyjne,
  • wdrażac aplikacje na serwery lub klastry (np. przez Docker, SSH, API Kubernetesa).

To proste rozwiązanie dla małych zespołów lub jako uzupełnienie rozbudowanego pipeline’u. Dzięki temu można szybko testować i wdrażać zmiany bez potrzeby każdorazowego uruchamiania złożonych procesów ręcznie. Pozwala to nie tylko przyspieszyć dostarczanie nowych funkcji, ale także zminimalizować błędy wynikające z pomyłek przy ręcznym deployu.

4. Zarządzanie incydentami i zgłoszeniami

W razie awarii, n8n może automatycznie:

  • utworzyć zgłoszenie w systemie typu Jira, ServiceNow lub Zendesk,
  • przypisać je do odpowiedniego zespołu,
  • wysłać powiadomienie do osoby on-call,
  • generować raport po zamknięciu incydentu.

Cały proces obsługi incydentu może być zautomatyzowany od A do Z. Dzięki temu skracamy czas reakcji, zmniejszamy ryzyko przegapienia istotnych informacji i zapewniamy lepszy przepływ informacji między zespołami. To również dowód na dojrzałość operacyjną organizacji i uporządkowanie procesów zgodnie z najlepszymi praktykami ITSM.

5. Integracja danych i automatyczne raportowanie

DevOps często pracuje z różnymi źródłami danych: logami, metrykami, API usług chmurowych. Z pomocą n8n można:

  • zbierać dane z wielu źródeł (np. API AWS, pliki CSV, Prometheus),
  • przetwarzać je w locie (filtrowanie, mapowanie, agregacja),
  • automatycznie generować raporty – np. dzienny przegląd stanu usług wysyłany rano na Slacka.

To pozwala na lepszy wgląd w stan infrastruktury – bez potrzeby ręcznego zbierania informacji. Taka automatyzacja nie tylko oszczędza czas, ale umożliwia podejmowanie decyzji opartych na danych w czasie rzeczywistym. Regularne raporty poprawiają komunikację wewnątrz zespołu i ułatwiają szybkie wychwytywanie anomalii.

Przykłady użycia n8n w codziennych zadaniach DevOpsa

1. Integracja z Uptime Kuma + powiadomienie przez webhook (np. Discord/Slack)

Cel: Automatyczne powiadomienie zespołu, gdy Uptime Kuma wykryje awarię.

Jak działa:

  1. W Uptime Kuma dodajesz webhook URL z n8n jako akcję przy awarii (Down).
  2. n8n odbiera dane (np. nazwa hosta, czas, status).
  3. Przetwarza payload i wysyła wiadomość na Slacka lub Discorda.

Narzędzia w n8n:

  • Webhook (Trigger)
  • IF (status == „DOWN”)
  • Slack / Discord node

Korzyści:

  • Szybsze powiadamianie zespołu o niedostępności usług.
  • Automatyzacja eskalacji bez potrzeby ręcznego sprawdzania.

2. Dump bazy PostgreSQL przez webhook i wysyłka na FTP

Cel: Na żądanie tworzyć backup bazy i przesyłać go na serwer FTP.

Jak działa:

  1. Webhook n8n jako trigger do ręcznego backupu.
  2. n8n przez Execute Command odpala pg_dump.
  3. Plik zapisany lokalnie.
  4. Node FTP Upload przenosi plik na serwer zewnętrzny.

Narzędzia w n8n:

  • Webhook (Trigger)
  • Execute Command: pg_dump -U user dbname > dump.sql
  • Move Binary Data / Read File
  • FTP Upload

Korzyści:

  • Backupy na żądanie bez potrzeby logowania się na serwer.
  • Możliwość łatwej integracji z harmonogramem lub systemem ticketowym.

3. Pobieranie logów CPU/RAM/dysk i analiza przez GPT (np. OpenAI API)

Cel: Analiza zasobów serwera i interpretacja wyników przez GPT.

Jak działa:

  1. n8n łączy się przez SSH do serwera i zbiera dane:
    • top -bn1, df -h, free -m, itp.
  2. Dane są czyszczone i łączone w jeden tekst.
  3. Tekst wysyłany do OpenAI API (GPT-4) z prośbą o analizę.
  4. Wynik wysyłany np. mailem, na Slacka, lub jako plik.

Narzędzia w n8n:

  • SSH (Execute Command)
  • Function (formatowanie wyników)
  • HTTP Request (OpenAI API)
  • Email / Slack / Telegram

Korzyści:

  • Wstępna analiza problemów z wydajnością w naturalnym języku.
  • Automatyczne diagnozy bez potrzeby głębokiej analizy logów przez człowieka.

Praktyczne ćwiczenie – pobieranie logów CPU/RAM/dysk z serwera i analiza przez GPT (OpenAI).

Cel:

Automatycznie pobierać informacje o stanie systemu (CPU, RAM, dysk) z serwera i przesyłać je do modelu GPT, aby uzyskać zrozumiałą analizę w języku naturalnym.

Wymagane komponenty:

  • Serwer z dostępem SSH (np. Linux VPS)
  • Konto w OpenAI (API Key)
  • n8n (lokalnie lub w chmurze)
  • Ewentualnie: Slack / Email do wysyłki wyniku

Kroki w n8n (workflow)

1. Trigger – Webhook lub Cron

  • Node: Webhook lub Cron
  • Opis: Wybierz sposób uruchamiania:
    • Webhook: uruchamiany ręcznie (np. przez cURL lub URL)
    • Cron: np. codziennie o 9:00

2. Pobranie logów – SSH (CPU, RAM, dysk)

  • Node: SSH
  • Ustawienia:
    • Komendy:
echo "CPU:" && top -bn1 | grep "Cpu(s)"
echo "RAM:" && free -m
echo "Disk:" && df -h

Cel: Zbiera podstawowe informacje systemowe z hosta.
Wynik: Dane w formacie tekstowym (stdout).

3. Formatowanie danych – Function

  • Node: Function
  • Kod przykładowy (JavaScript):
return [{
  json: {
    logs: $json["stdout"] || $json["data"]
  }
}];

Cel: Przekazujemy czysty tekst do GPT.

4. Wysyłka do OpenAI API (GPT) – HTTP Request

  • Node: HTTP Request
  • Ustawienia:
    • Method: POST
    • URL: https://api.openai.com/v1/chat/completions
    • Headers:
      • Authorization: Bearer YOUR_API_KEY
      • Content-Type: application/json
    • Body (JSON):
{
  "model": "gpt-4",
  "messages": [
    {
      "role": "system",
      "content": "Jesteś pomocnym asystentem DevOps. Na podstawie danych systemowych wygeneruj krótką analizę i potencjalne problemy."
    },
    {
      "role": "user",
      "content": "{{ $json.logs }}"
    }
  ]
}

5. Wynik – Email / Slack / Discord / Telegram

  • Node: Slack lub Email
  • Treść: Wklej wynik z poprzedniego node (response.choices[0].message.content)
  • Opcjonalnie: zapis do pliku lub wysyłka do log systemu (np. Elasticsearch, Notion itp.)

Co zyskujesz:

  • Automatyczną diagnozę problemów systemowych (np. “duże użycie swapu”).
  • Wygodny, zrozumiały język, nawet dla osób nietechnicznych.
  • Możliwość integracji z systemem on-call lub raportowym.

Plik json do importu w n8n poniżej
Pamiętaj o wprowadzeniu swojej konfiguracji/ustawień

{
  "name": "System Log Analysis with GPT",
  "nodes": [
    {
      "parameters": {
        "path": "analyze-system",
        "responseMode": "onReceived"
      },
      "id": "Webhook",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        200,
        300
      ]
    },
    {
      "parameters": {
        "command": "echo \"CPU:\" && top -bn1 | grep \"Cpu(s)\"\necho \"RAM:\" && free -m\necho \"Disk:\" && df -h",
        "sshAuthentication": {
          "host": "your.server.ip",
          "username": "youruser",
          "privateKey": "-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----"
        }
      },
      "id": "SSH",
      "name": "SSH",
      "type": "n8n-nodes-base.ssh",
      "typeVersion": 1,
      "position": [
        400,
        300
      ]
    },
    {
      "parameters": {
        "functionCode": "return [{ json: { logs: $json[\"stdout\"] } }];"
      },
      "id": "FormatLogs",
      "name": "Format Logs",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [
        600,
        300
      ]
    },
    {
      "parameters": {
        "url": "https://api.openai.com/v1/chat/completions",
        "method": "POST",
        "authentication": "none",
        "headers": {
          "Authorization": "Bearer YOUR_OPENAI_KEY",
          "Content-Type": "application/json"
        },
        "options": {},
        "bodyParametersJson": {
          "model": "gpt-4",
          "messages": [
            {
              "role": "system",
              "content": "Jeste\u015b pomocnym asystentem DevOps. Na podstawie danych systemowych wygeneruj kr\u00f3tk\u0105 analiz\u0119 i potencjalne problemy."
            },
            {
              "role": "user",
              "content": "={{$json[\"logs\"]}}"
            }
          ]
        }
      },
      "id": "GPT",
      "name": "Analyze with GPT",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 1,
      "position": [
        800,
        300
      ]
    },
    {
      "parameters": {
        "responseMode": "lastNode"
      },
      "id": "ReturnWebhook",
      "name": "Return",
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1,
      "position": [
        1000,
        300
      ]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "SSH",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SSH": {
      "main": [
        [
          {
            "node": "Format Logs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Logs": {
      "main": [
        [
          {
            "node": "Analyze with GPT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze with GPT": {
      "main": [
        [
          {
            "node": "Return",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {},
  "versionId": "1"
}

 

Twórz najlepsze wizualizacje z użyciem Grafany!

Dołącz do szkolenia! Promocja do 16 czerwca o 23:59!

Dołącz na: https://asdevops.pl/kurs-grafany/

 

 


 

 

 

 

 

 

Zapisz się na Kurs z Grafany!

X