Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?
Linux

Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?

Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?

W tym poradniku dowiesz się:
✅ jak uruchomić kontenery jako usługi systemd
✅ jak je monitorować i restartować automatycznie
✅ jak dodać prosty failover – np. uruchomić zapasowy kontener po awarii głównego
✅ jak sprawdzać statusy i logi


🔧 Krok 1: Kontener jako usługa systemd (przypomnienie)

Załóżmy, że masz dwa kontenery:

  • app-main – główny
  • app-backup – zapasowy (uruchamiany tylko w razie awarii)

Tworzysz dwa pliki .service.


📁 /etc/systemd/system/app-main.service

[Unit]
Description=Aplikacja główna (Docker)
After=docker.service
Requires=docker.service

[Service]
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker start -a app-main
ExecStop=/usr/bin/docker stop app-main

[Install]
WantedBy=multi-user.target

📁 /etc/systemd/system/app-backup.service

[Unit]
Description=Aplikacja zapasowa (Docker)
After=docker.service
Requires=docker.service

[Service]
Restart=no
ExecStart=/usr/bin/docker start -a app-backup
ExecStop=/usr/bin/docker stop app-backup

[Install]
WantedBy=multi-user.target

🧠 Krok 2: Prosty mechanizm failover – z systemd OnFailure=

W pliku app-main.service dodaj:

[Unit]
OnFailure=app-backup.service

✅ Jeśli app-main się nie uruchomi lub się zawiesi, systemd automatycznie wywoła app-backup.service.

 

Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?
Monitorowanie i failover kontenerów Docker za pomocą systemd – jak to zrobić?

🛠️ Krok 3: Załaduj nowe usługi

sudo systemctl daemon-reload
sudo systemctl enable app-main.service
sudo systemctl enable app-backup.service

Możesz teraz uruchomić:

sudo systemctl start app-main

A w razie błędu app-main, backup uruchomi się automatycznie.


🧪 Krok 4: Symulacja awarii

Wymuś awarię kontenera głównego:

docker stop app-main
docker rm app-main

Potem:

sudo systemctl restart app-main

🔍 Sprawdź:

systemctl status app-backup

🧰 Krok 5: Monitorowanie statusów i logów

📋 Statusy:

systemctl status app-main
systemctl status app-backup

📜 Logi:

journalctl -u app-main
journalctl -u app-backup

🚨 Zaawansowana opcja: monitorowanie zdrowia kontenera (docker inspect)

Możesz stworzyć usługę, która:

  • co X minut sprawdza status kontenera app-main
  • jeśli kontener jest nieaktywny, uruchamia app-backup

Przykład skryptu /usr/local/bin/docker-failover.sh:

#!/bin/bash
if ! docker inspect -f '{{.State.Running}}' app-main | grep true; then
  echo "app-main down, starting backup..."
  docker start app-backup
fi

Zrób usługę i timer systemd, który uruchamia ten skrypt co 5 minut. (Możesz poprosić o osobny poradnik – opiszę to krok po kroku).

Czytaj  Jak spakować i rozpakować folder na Linuksie

✅ Podsumowanie

Dzięki integracji Docker + systemd + failover:

Co zyskujesz? Dzięki czemu?
Automatyczny restart Restart=on-failure
Reakcja na awarię OnFailure=
Pełna kontrola systemctl, journalctl, logi
Możliwość rozszerzenia Skrypty monitorujące i timery

To idealne rozwiązanie dla:

  • VPS-ów i serwerów bare-metal
  • środowisk bez orkiestratora
  • prostych wdrożeń produkcyjnych i dev/test

 

Polecane wpisy
Jak zrobić serwer WWW na Ubuntu?
Jak zrobić serwer WWW na Ubuntu?

Jak zrobić serwer WWW na Ubuntu? Kompletny przewodnik Uruchomienie własnego serwera WWW na Ubuntu to doskonały sposób na hostowanie stron Czytaj dalej

Konfiguracja Limitów i Kontroli Przepustowości w Serwerze Poczty: Przewodnik po Optymalizacji Postfix
Konfiguracja Limitów i Kontroli Przepustowości w Serwerze Poczty: Przewodnik po Optymalizacji Postfix

Konfiguracja Limitów i Kontroli Przepustowości w Serwerze Poczty: Przewodnik po Optymalizacji Postfix W zarządzaniu serwerem pocztowym jednym z kluczowych elementów Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.