Uptime Kuma
Instalacja
Uptime Kuma służy do monitorowania dostępności usług (HTTP/TCP/Ping) i wysyłania powiadomień o awariach.
Założenia konfiguracyjne:
- Plik Compose znajduje się w
/srv/docker/compose/uptime-kuma - Dane aplikacji znajdują się w
/srv/docker/data/uptime-kuma - Sekrety (zmienne środowiskowe) znajdują się w
/srv/docker/secrets/uptime-kuma/app.env - Aplikacja łączy się z MariaDB po sieci Dockera
internal - Uptime Kuma jest wystawiany przez reverse proxy po sieci Dockera
proxy - Logi dostępne są przez
docker logs(bez osobnego katalogu logów)
Dostęp do sieci Docker
Wymagany dostęp do sieci proxy oraz internal
Aby udostępnić aplikację publicznie oraz komunikować się z innymi kontenerami, aplikacja wymaga dostępu do sieci Docker proxy i internal.
Tworzenie katalogów
Tworzymy katalog dla Compose:
sudo mkdir -p /srv/docker/compose/uptime-kuma
sudo chown -R "$USER:$USER" /srv/docker/compose/uptime-kuma
Tworzymy katalog na dane aplikacji:
sudo mkdir -p /srv/docker/data/uptime-kuma
sudo chown -R "$USER:$USER" /srv/docker/data/uptime-kuma
Tworzymy katalog na sekrety:
sudo mkdir -p /srv/docker/secrets/uptime-kuma
sudo chown -R "$USER:$USER" /srv/docker/secrets/uptime-kuma
Dostęp do bazy MariaDB
Kontener aplikacji zawiera wbudowaną bazę danych, jednak w tym wdrożeniu korzystamy z osobnego kontenera MariaDB.
Wymagany dostęp do bazy MariaDB
Aplikacja wymaga dostępu do bazy danych MariaDB.
Tworzenie pliku app.env
Tworzymy i edytujemy plik app.env:
micro /srv/docker/secrets/uptime-kuma/app.env
W pliku umieszczamy:
TZ=Europe/Warsaw
UPTIME_KUMA_DB_TYPE=mariadb
UPTIME_KUMA_DB_HOSTNAME=mariadb
UPTIME_KUMA_DB_PORT=3306
UPTIME_KUMA_DB_NAME=kuma
UPTIME_KUMA_DB_USERNAME=kuma
UPTIME_KUMA_DB_PASSWORD=TU_SILNE_HASLO
Zapisujemy plik i wychodzimy z edytora.
Konfiguracja Docker Compose
Przechodzimy do katalogu Compose:
cd /srv/docker/compose/uptime-kuma
Tworzymy i edytujemy plik compose.yaml:
micro compose.yaml
W pliku umieszczamy:
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
restart: unless-stopped
env_file:
- /srv/docker/secrets/uptime-kuma/app.env
volumes:
- /srv/docker/data/uptime-kuma:/app/data
networks:
- proxy
- internal
networks:
proxy:
external: true
internal:
external: true
Zapisujemy plik i wychodzimy z edytora.
Uruchomienie kontenera
Uruchamiamy Uptime Kuma:
docker compose up -d
Sprawdzamy, czy kontener działa:
docker ps | grep uptime-kuma
Konfiguracja Caddy
Dodajemy wpis do Caddyfile (aplikacja nie wspiera reverse proxy w podkatalogu, używamy domeny lub subdomeny):
status.fulc.ro {
reverse_proxy uptime-kuma:3001
}
Przeładowujemy Caddy:
docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile
Alternatywnie, jeśli mamy skonfigurowany alias.
caddy-reload
Test działania
Sprawdzamy, czy panel odpowiada:
https://status.fulc.ro
Podgląd logów
Podglądamy logi Uptime Kuma:
docker logs -f uptime-kuma
Monitorowanie stron WordPress
Do monitorowania stron opartych na WordPress najlepiej wykorzystywać dedykowany endpoint /health, który umożliwia weryfikację działania aplikacji z minimalnym obciążeniem serwera i z pominięciem mechanizmów cache.
Konfiguracja endpointu health
Przed dodaniem monitora w Uptime Kuma należy skonfigurować endpoint /health po stronie WordPress.