Czym jest Uptime Kuma?

Uptime Kuma to narzędzie do monitorowania hostowane samodzielnie. W regularnych odstępach sprawdza witryny internetowe, porty TCP, rekordy DNS, kontenery Docker i nie tylko, wysyła powiadomienie, gdy coś przestaje działać, oraz może publikować strony statusu. Projekt udostępnia oficjalny obraz louislam/uptime-kuma, który nasłuchuje na porcie 3001 i przechowuje wszystkie dane w folderze /app/data.

Opis narzędzia

To narzędzie tworzy plik compose.yaml dla Uptime Kuma. Rozpoczyna od pliku z repozytorium Uptime Kuma i dodaje ustawienia, których zwykle potrzebują użytkownicy: wersję i wariant obrazu, port hosta i adres bind, miejsce przechowywania danych, dostęp do gniazda Docker na potrzeby monitorowania hosta Docker oraz bazę danych. W przypadku bazy danych MariaDB działającej we własnym kontenerze narzędzie dodaje drugą usługę z kontrolą stanu, dzięki czemu Uptime Kuma uruchamia się dopiero po przygotowaniu bazy danych. Ustawienia, dla których formularz nie ma osobnego pola, można dodać jako zmienne środowiskowe. Wszystko jest tworzone w przeglądarce.

Funkcje

  • Tagi obrazów 2, 1 i beta, a także standardowy, odchudzony, rootless oraz odchudzony rootless wariant wersji 2
  • Port hosta oraz adres bind, taki jak 127.0.0.1, do użycia za reverse proxy
  • Folder danych na hoście lub nazwany wolumin Docker, który jest deklarowany automatycznie
  • Opcjonalny dostęp do /var/run/docker.sock na potrzeby monitorowania hosta Docker, wraz z ostrzeżeniem dotyczącym zakresu uprawnień
  • SQLite, wbudowana MariaDB, kontener MariaDB dodany do pliku lub zewnętrzny serwer MariaDB
  • Wygenerowane hasło do bazy danych, ze znakami $ poprzedzonymi znakiem ucieczki, aby Compose zachował je bez zmian
  • Opcje osadzania w iframe, sprawdzania origin WebSocket oraz token Cloudflare Tunnel
  • Dowolna inna zmienna środowiskowa, komentarze wyjaśniające zawartość pliku oraz pobieranie pliku jako compose.yaml

Przykłady

Ustawienia domyślne tworzą taki sam plik jak ten znajdujący się w repozytorium Uptime Kuma:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    restart: unless-stopped

Wybranie kontenera MariaDB jako bazy danych dodaje usługę mariadb i łączy z nią Uptime Kuma za pomocą zmiennych UPTIME_KUMA_DB_TYPE, UPTIME_KUMA_DB_HOSTNAME oraz pozostałych zmiennych UPTIME_KUMA_DB_*.

Wskazówki

  • Zapisz wynik jako compose.yaml w pustym folderze i uruchom go poleceniem docker compose up -d. Następnie otwórz http://localhost:3001
  • Systemy plików, takie jak NFS, nie są obsługiwane w przypadku folderu danych. Użyj lokalnego folderu lub woluminu Docker
  • Odchudzone obrazy nie zawierają Chromium, którego wymaga monitor rzeczywistej przeglądarki, ani wbudowanej MariaDB
  • Obrazy rootless działają jako użytkownik node z identyfikatorem UID 1000, dlatego folder danych na hoście musi być zapisywalny przez tego użytkownika
  • Uptime Kuma korzysta z WebSockets. Gdy umieścisz je za reverse proxy, proxy musi przekazywać nagłówki Upgrade i Connection
  • Gniazdo Docker zapewnia Uptime Kuma pełną kontrolę nad Dockerem na hoście. Montuj je tylko wtedy, gdy potrzebujesz monitorowania hosta Docker, i nie udostępniaj Uptime Kuma w internecie
  • Wersja 1 obsługuje tylko SQLite, dlatego opcje bazy danych są dla niej ukryte
  • Pola haseł są zapisywane w pliku w postaci zwykłego tekstu. Przechowuj plik prywatnie albo przenieś hasło do pliku .env i odwołuj się do niego jako ${DB_PASSWORD}