Wracasz do domu po ciężkim dniu pracy i chcesz skorzystać ze swojej ulubionej platformy Smart Home. Niestety, wita Cię niemiła niespodzianka – otóż aplikacja przestała działać i nic o tym nie wiedziałeś. Całe szczęście istnieją metody monitorowania pracy Home Assistanta i serwera, na którym pracuje!
Monitoring usług informatycznych to bardzo ciekawa dziedzina, w której specjaliści budują narzędzia pozwalające być na bieżąco z różnymi nieprawidłowościami w działaniu, śledzić przeróżne przebiegi i użycia podzespołów, a także reagować na brak dostępności. Czemu o tym wspominam?
W tym poradniku wytniemy sobie malutki kawałek tego tortu, aby być na bieżąco z pracą naszego domowego serwera, na którym pracuje Home Assistant. Do tego wykorzystamy samego Home Assistanta, a także nową aplikację o nazwie Uptime Kuma.
Pierwszą rzeczą, jaką sobie uruchomimy, to zbieranie statystyk dotyczących wykorzystania podzespołów serwera, na którym zainstalowaliśmy Home Assistanta. Tak się składa, że jedna z ostatnich aktualizacji wprowadziła spore uproszczenia w monitoringu hosta (to jest: serwera).
Przechodzimy do ustawień, a następnie do listy wszystkich integracji i dodajemy nową o nazwie „System Monitor”. Po tej czynności przechodzimy do ustawień tejże integracji.
Zobaczymy, że nie mamy żadnych dostępnych statystyk, ale istnieje mnóstwo encji, które wymagają uruchomienia.
Po rozwinięciu zostaniemy wręcz zaatakowani ogromną liczbą statystyk, które możemy sobie podejrzeć. Uważam jednak, że nie wszystko musimy monitorować. Encjami wartymi uwagi są:
A jak włączyć te statystyki? Klikamy w wybraną encję, a następnie w logo zębatki w górnym, prawym rogu wyświetlonego okna. To sprawi, że przejdziemy do ustawień danej encji. Tutaj pojawi się przycisk Włącz
. Klikamy go, a następnie wybieramy Aktualizuj
w dolnym prawym rogu okna. Statystyki zaczną spływać do Home Assistanta po upływie kilkunastu sekund.
Warto dodać, że wraz z podłączaniem dodatkowych peryferiów do komputera, dostaniemy większą liczbę statystyk. Przykładem może być pendrive, o którym pisaliśmy w poradniku o kopiach zapasowych. Dzięki Home Assistant możemy monitorować zajętość dyskową również i na tym nośniku.
Osobiście polecam utworzyć nowy dashboard, w którym to umieścimy wszelkie wykresy. To pozwoli w sposób szybki i wygodny zaglądać do statystyk. Przykład takiego widoku z wykresami możecie podejrzeć niżej.
Warto dodać, że możliwym jest utworzenie automatyzacji wysyłających powiadomienia o wysokich odczytach. Chociażby jeśli użycie CPU/RAM wynosi powyżej 80% to powinniśmy otrzymać stosowne powiadomienie na smartfon. To pozwoli nam być jeszcze bardziej na bieżąco z pracą serwera.
Uptime Kuma nie jest integracją do Home Assistanta, a osobną aplikacją. Jest to darmowa i otwartoźródłowa alternatywa dla popularnego w środowisku biznesowym oprogramowania Uptime Robot. Uptime Kuma, jak nazwa wskazuje, sprawdza czy dana usługa działa, jest dostępna. Jest to podstawa monitoringu, ponieważ jakiekolwiek problemy najczęściej objawiają się właśnie przerwaniem w dostępie do danej usługi, a to zostanie wykryte przez Uptime Kuma.
Dzisiaj zainstalujemy sobie Uptime Kuma i skonfigurujemy monitorowanie działania Home Assistanta, a także utworzymy bota, który będzie nas informował o problemach/alarmach.
Zacznijmy od instalacji. Tutaj jednak nie ma zbyt wielu dróg, ponieważ aplikacja Uptime Kuma jest oficjalnie dystrybuowana za pomocą Dockera (aczkolwiek istnieje również obraz na YunoHost). Instalacja jest możliwa za pomocą właśnie Docker Compose, czyli formatu, który wykorzystywaliśmy zarówno przy instalacji brokera MQTT, jak i samego Home Assistanta. Jeśli nie wiecie jak zainstalować Dockera, to >>tutaj<< znajduje się poradnik przygotowany na potrzeby poprzedniego tekstu.
W konsoli naszego serwera tworzymy nowy, dedykowany folder dla Uptime Kuma, a także otwieramy nowy, pusty plik tekstowy.
mkdir ~/docker/uptime-kuma
nano ~/uptime-kuma/compose.yaml
W oknie edytora tekstu nano
wklejamy poniższą zawartość.
version: "3.3"
services:
uptime-kuma:
restart: unless-stopped
ports:
- 3001:3001
volumes:
- ./config:/app/data
container_name: uptime-kuma
image: louislam/uptime-kuma:1
network_mode: host
volumes:
uptime-kuma: {}
Następnie zapisujemy Ctrl
+o
i wychodzimy z edytora Ctrl
+x
. W tym momencie możemy uruchomić nasz kontener wpisując komendę:
docker compose up -d
Po kilku minutach uruchomi się kontener wraz z aplikacją. Teraz możemy przejść do przeglądarki internetowej (również w smartfonie będącym podłączonym do tej samej sieci domowej) i wpisać adres http://<lokalny-adres-ip-serwera>:3001
, np. http://192.168.1.101:3001
. Naszym oczom ukaże się ekran rejestracji do Uptime Kuma.
Po utworzeniu konta administratora wyświetli się dashboard, w którym możemy dodawać monitory, konfigurować działanie, a także tworzyć strony statusów. Od razu przejdźmy do ustawień – po prostu klikając w awatar w górnym prawym rogu i wybierając Ustawienia
. Tutaj klikamy w Powiadomienia
, a następnie Skonfiguruj powiadomienie
.
Otworzy się okno konfiguracji powiadomienia. Do działania tej funkcji musimy wybrać jakiegoś dostawcę – ja proponuję zdecydować się na komunikator internetowy Telegram, ponieważ cechuje się on darmowym dostępem do niemalże wszystkich funkcji, w tym do tworzenia botów, które są tutaj kluczowe. Co więcej, Telegram ma całkiem dopracowaną aplikację na wielu platformach, w tym na Androidzie, iOS czy PC.
Jak nie mamy konta w Telegramie, to należy takowe utworzyć i od razu przejść do BotFather, czyli twórcy botów, gdzie możemy utworzyć naszego pierwszego bota. Wystarczy z menu wybrać komendę utworzenia nowego bota i podać jego nazwę. Po zakończeniu procesu tworzenia, Telegram udostępni nam token API. Kopiujemy go. Co więcej, musimy napisać do niego (to znaczy: do bota) kilka testowych wiadomości (treść nie jest ważna) – to pozwoli na wykrycie ID czatu.
Teraz wracamy do Uptime Kuma i wklejamy token API utworzonego bota. Klikając przycisk oka obok wklejonego tokenu sprawimy, że zostanie wykryty identyfikator czatu. Nie martwcie się jak czegoś nie rozumiecie – Uptime Kuma będzie informować o błędach i problemach, a także nakieruje jak je rozwiązać.
Finałem będzie skonfigurowany system powiadomień. Dla pewności i sprawdzenia działania możemy wysłać wiadomość testową klikając Test
w dolnej części okna.
Teraz wróćmy do dashboardu Uptime Kuma. Klikamy Dodaj monitor
i uzupełniamy dane. W celu monitorowania Home Assistanta dodamy sobie dwa monitory. W pierwszym wpisujemy:
http://<lokalny_adres_ip_serwera>:8123
, a jeśli jest to ta sama maszyna, na której mamy Home Assistanta, to http://localhost:8123
Resztę ustawień pozostawiamy domyślnie.
Następnie tworzymy nowy monitor dla testu dostępu z poziomu internetu (o ile takowy skonfigurowaliśmy, na przykład za pomocą Nabu Casa Cloud lub Cloudflare, o czym mówiliśmy sobie w >>tym poradniku<<).
https://<adres_naszego_home_assistanta
Resztę ustawień pozostawiamy domyślnie.
I to już! Mamy uruchomiony prosty monitoring dostępności zainstalowanego Home Assistanta i to w dwóch strefach – lokalnej, wewnątrz sieci domowej oraz globalnej – w dostępie z poziomu internetu.
Warto sobie też zaznaczyć, że przychodzące powiadomienia informujące o braku działania w sieci globalnej mogą informować nas o problemach po stronie dostawcy, chociażby Nabu Casa Cloud. Problemy w sieci lokalnej mogą wskazywać na błędy podczas aktualizacji platformy lub wyłączenie usługi Home Assistanta.
W tym poradniku musieliśmy zastosować sporo uproszczeń, głównie przez fakt ograniczenia się do jednego urządzenia, na którym mamy uruchomioną infrastrukturę. W zasadzie, mając na uwadze scenariusz niemalże idealny, monitoring w postaci Uptime Kuma powinien być zainstalowany na innym urządzeniu, a najlepiej poza siecią domową, na przykład na VPS (wirtualnym serwerze prywatnym). Niestety, takie podejście zwiększa koszty, ponieważ za VPS płacimy w formie subskrypcji, a ceny typowych zaczynają się od około 25 złotych miesięcznie. Są również usługodawcy, którzy oferują nieco innego rodzaju serwery za kilkadziesiąt złotych rocznie lub nawet za jednorazową wpłatę kilku złotych, ale są to maszyny słabsze i ograniczone, np. pod kątem adresacji IPv4. Jeśli jednak nie będzie Wam to przeszkadzać (co w przypadku samego Uptime Kuma nie powinno), to takie rozwiązanie może się u Was sprawdzić.
Warto też dodać, że do zbierania metryk takich jak użycie RAM, procesora, istnieją dedykowane narzędzia, na przykład Zabbix. Jednakże konfiguracja tego oprogramowania jest o wiele trudniejsza, a do tego dobrą praktyką jest instalacja głównego programu na oddzielnej maszynie. Home Assistant jest tutaj znacznie prostszy, dostępniejszy, a nadal pozwoli nam wykonać potrzebne zadanie.
W tym poradniku przygotowaliśmy sobie podstawowy monitoring serwera, na którym pracuje Home Assistant. Dzięki samemu HA będziemy mogli łatwo poznać użycie RAM, CPU czy dysków (również mowa o danych historycznych), a Uptime Kuma, w połączeniu z Telegramem, poinformuje nas o problemach w dostępie do usług. Wspomnieliśmy również o możliwej rozbudowie i ulepszeniu domowej infrastruktury, aby usprawnić monitoring Home Assistanta.
Kategoria: Poradniki