Aby skutecznie monitorować własne usługi IT udostępnianie w Internecie, oprócz lokalnych mechanizmów weryfikacji wszystkich komponentów usługi, niezbędne jest także monitorowanie usług z zewnątrz, ze strony Internetu. Weryfikację taką można wykonywać manualnie z wykorzystaniem specjalnych stron internetowych. Przykładem takiego serwisu jest strona jest https://pl.hostadvice.com/tools/site-down-or-not/
Znacznie lepiej dla takich zastosowań skorzystać jednak ze specjalizowanej aplikacji, którą jest Uptime-Kuma. Uptime Kuma to open-source’owa aplikacja do monitorowania dostępności (uptime) serwerów i usług. Jest to lekka, łatwa w użyciu i elastyczna aplikacja, która pozwala użytkownikom monitorować różne rodzaje zasobów i natychmiastowo otrzymywać powiadomienia o problemach. Aplikacja Uptime-Kuma zostanie uruchomiona w chmurze Azure.
Wdrożenie infrastruktury
Do wdrożenia aplikacji Uptime-Kuma wykorzystam kod BICEP udostępniany na licencji MIT przez Yannick Zwijsen w repozytorium github: https://github.com/yzwijsen/deploy-uptime-kuma-azure/blob/main/README.md
Deploy kodu BICEP do chmury Azure wykonane zostało ze środowiska Visual Studio Code.
Aplikacja Uptime-Kuma uruchamiana jest jako kontener dockerowy (louislam/uptime-kuma:latest) w ramach zasobów udostępnianych przez Azure App Service – App Service Plan.
Początkowo wykorzystywany był plan B1 (1vcpu, 1,75GB), dodając jednak kolejne aplikacje przełączyłem plan na B2 (2vcpu i 3,5GB). Kod BICEP tworzy i łączy wymagane zasoby, między innymi FileShare na Storage Account, na którym przechowywane są trwałe dane kontenera.
Aplikacja wystawia WebUI na adresie: https://wapp-yistpr7jvzgr6.azurewebsites.net
Konfiguracja aplikacji
- Konfiguracja powiadomień – poprzez email
- Zdefiniowanie monitorowanych usług
a. Określenie rodzaju usługi
b. Podanie parametrów badanej usługi – adresy, porty, inne
c. Określenie częstotliwości monitorowania usług - Po skonfigurowaniu kilku monitorowanych usług, ekran aplikacji Uptime-Kuma wygląda tak jak na poniższym obrazku. Jedną z monitorowych usług jest Proxmox Backup Server (badana jest dostępność strony web). Dla tej usługi ustawiony jest tryb konserwacji w godzinach wyłączenia serwera. W tym okresie nie są wysyłane powiadomienia dot. niedostępności usługi
Schemat komponentów Azure
Poniżej przedstawiony jest schemat komponentów architektury Azure wykorzystanych do monitorowania usług IT z Internetu.