Glances - zaawansowany monitoring

Problemy z jakimi borykają się użytkownicy forum przy próbie uruchomienia monitoringu HA a zarazem monitoringu platformy na jakiej jest on uruchomiony, skłoniły mnie do głębszej analizy tematu i poszukania “czegoś” jeszcze prostszego.

Instalowanie kolejnych pakietów, ich konfiguracja, integracja a potem pisanie skryptów, napewno zniechęcają do startu a pojawiające się po drodze problemy bywają strasznie frustrujące. Zdecydowanie musi to być prostsze i łatwiejsze.

Po przejrzeniu możliwych natywnych integracji z HA postanowiłem bliżej przyjrzeć się systemowi Glances.

Glances is a cross-platform system monitoring tool written in Python.

Oprogramowanie daje naprawdę dużą liczbę informacji o systemie operacyjnym, o wykorzystanych zasobach, o zasobach uruchomionych procesów i dockerach, raportuje przekroczone parametry, pomaga zdiagnozować problemy. Jest to jego największa zaleta ale zarazem wada - złożoność informacji może przerażać początkującego użytkownika. Niestety przy okazji oprogramowanie jest zasobożerne, szczególnie pod kątem użycia CPU. Do zalet napewno zaliczyć można prostą instalację z oficjalnego add-on a później równie prostą integrację z HA - wszystko z GUI, bez edycji plików. Dodatkowo Glances moze być zainstalowany na każdym systemie linux, np. Proxmox.

Jak widać, Glances nie okazał się idealnym rozwiązaniem ale napewno jest warty rozważenia i przetestowania.

Instalacja tego dodatku w HA jest dość prosta i nie różni się od instalacji dowolnego innego dodatku Home Assistant.
Wyszukaj dodatek „Glances” w Add-ons w Supervisor i zainstaluj go.
image
Wyłącz tryb ochrony “Protection mode” w panelu dodatku:
image
Daje to dodatkowi pełny dostęp do całego systemu, co zwiększa ryzyko bezpieczeństwa i może uszkodzić system, gdy jest używany nieprawidłowo, stosowne ostrzeżenie na czerwono pokaże się w dodatku.
Domyślna konfiguracja w Configuration nie wymaga edycji.
Uruchom dodatek Glances poprzez przycisk Start.
Sprawdź Log aby zobaczyć, czy wszystko poszło dobrze.
Kliknij przycisk OPEN WEB UI i powinieneś zobaczyć ekran podobny do tego poniżej, jeżeli coś jest nieczytelne zmniejsz rozmiar okna przeglądarki aby dopasować tekst:

Jak widać mamy tutaj bardzo dużo informacji o wykorzystywanych zasobach, w moim przypadku to HassOS na RPi3. Widać tu bardzo dobrze jakie zasoby są wykorzystywane przez poszczególne add-ons zainstalowane jako kontenery w Dockerze, dzięki temu w łatwy sposób można sprawdzić jaki dodatek “zamula” HA. Najwięcej pożera Glances - 14,2% CPU ale to jest wartość procentowa wszystkich zasobów pobieranych przez Dockera, proszę nie mylić z zasobami CPU całego systemu (w tym przypadku użycie CPU jest na poziomie 15,3%, mamy spory zapas mocy).
Inne cenne informacje to:

  • zdarzenia typu warning i critical:
    image
  • zajętość katalogów HA:
    image
  • parametry czujników sprzetowych, np. temperatury:
    image
  • po naciśnieciu ‘z’ na klawiaturze dokładne użycie poszczególnych procesów w systemie:
    image

    sortowanie użycia po CPU po naciśnieciu ‘c’, po RAMie po naciśnieciu ‘m’, itd.

Integracja Home Assistant z Glances również jest prosta, Home Assistant wykorzystuje informacje systemowe dostarczone przez interfejs API systemu Glances. Umożliwia to śledzenie i wyświetlanie ich statystyk a nawet budowanie automatyzacji na podstawie tych danych.
Przejdź do Konfiguracja -> Integracje -> + i wyszukaj Glances.
Uwaga: podczas konfiguracji dodaj integrację ze wszystkimi ustawieniami domyślnymi z wyjątkiem portu, który powinien być 61209
image
Po zakończeniu integracji w Narzędzia deweloperskie sprawdź nowe dostepne encje:
image

Wkrótce instalacja i konfiguracja Glances na innych systemach …

Warto wspomnieć o problemie z wyciekiem pamięci w add-on’ie (jeśli nadal występuje), sam łatałem to dość dawno ręcznie.

Fajny ten dodatek, nawet nie wiedziałem, że ma takie funkcje, ale wciąż borykam się z rozrastaniem pamięci przed nodereda, po restarcie mam grubo poniżej 4Gb, a po 1 dniu sięga jak widać ponad 6Gb. Do czego zmierzam, mam wrażenie, że wszystkie te programy to jakoś nie do końca pokazują te parametry (porównanie moich screen z proxmoxa odnośnie ramu a glances - nie widzę sumy z proxmoxa, HA też nie widzi podobnych parametrów, wszędzie niby mam mnóstwo wolnego ramu



@luki25 spróbuje to wytłumaczyć:
to poniżej jest z u Ciebie z Promoxa - pokazuje ile z przydzielonej pamięci (7GiB) w maszynie wirtualnej o nazwie HomeAssistant jest wykorzystane przez system operacyjny (“HassOS”) na tej maszynie (6,17GiB):
image

W dodatku Glances użycie RAMu widoczne jest w pozycji MEM, w moim przypadku 66%:

i to sie zgadza z danymi z integracji System Monitor:
image
Zauważ, że również SWAP sie zgadza, ewentualne różnice wynikąją z odświeżania danych w HA i w dodatku Glances zgodnie z ustawieniami:
image

Zgodnie z wytycznymi na https://www.home-assistant.io/hassio/installation/ w przypadku Promoxa (obraz w formacie QCOW2):

  • For the virtual appliance images: Load the appliance image into your virtual machine software. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs)
    • For KVM create a new virtual machine in virt-manager, select “Import existing disk image”, provide the path to the QCOW2 image above, choose “Generic Default” for the operating system, assign at least 2 GB memory and 1 vCPU, check the box for “Customize configuration before install” and select your bridge under “Network Selection”, then under customization select “Overview” -> “Firmware” -> “UEFI x86_64: …”.

Twoje zasoby przydzielone do HA są naprawdę imponujące :grin:.

BTW. Glances możesz także zainstalować na Promoxie.

Pytanko, czy wyciek miał/ma sam Glance, czy integracja z HA?

Inna sprawa, że u siebie Glance zainstalowałem na dockerze i dobieram się do danych za pomocą NR. Tak, by nie mieć za dużo encji w samym HA, których nie potrzebuje, wiec sobie tylko te, które chce, wyłuskam przez NR z tego, co podaje samo Glance. I tu mam dwa pytania o NR.

Dodaję dane do HA przez Entity node. Najlepiej jak podam jednostkę, bo wtedy robi się wykres. Tylko co podać przy wskaźniku zajętości load min1, load min5 itp? Bo to jednostki za bardzo nie ma, a fajnie by było to mieć na wykresach.

Drugie pytanie to już grubszy temat. Na razie myślę, jak do tego podejść. Kontenery. Albo własciwie ilosć danych jakie daje Glance o kontenerach. Budować to na poszczególnych nodach, to dużo samych nodów do wyłuskania poszczególnych danych, a w momencie jakiegoś zatrzymania kontenera, instalacji kolejnego, to cały flow do ręcznej przebudowy. Tak się zastanawiam, jak to funkcją przejechać, to całe drzewko obiektów. Pomysły?

Ja to zrobiłem za pomocą tego komponentu:

1 polubienie

To było 2 lata temu i wyciek był wewnątrz Glances (łatka polegała na zmianie jego konfiguracji - wyłączeniu jakiejś zbędnej funkcji, szczegółów jednak już nie pamiętam, pokop po zamkniętych issues na githubie addona, to może znajdziesz).
ALE…
Nie sądzę by ktoś używał tak antycznego Dodatku (bo w aktualnych wersjach HA się nawet nie uruchomi).