Narzędzia open source do monitoringu: uptime, strony statusu, metryki i błędy
W skrócie
- Monitoring open source obejmuje cztery zadania: sprawdzanie uptime (SolidPing), strony statusu (Kener), metryki serwerów (Beszel, Komari) i śledzenie błędów (GlitchTip, Rustrak).
- Wszystkie sześć narzędzi korzysta z licencji zatwierdzonych przez OSI: MIT (Kener, Beszel, Komari, GlitchTip), AGPL-3.0 (SolidPing) i GPL-3.0 (Rustrak).
- GlitchTip i Rustrak przyjmują zdarzenia z SDK Sentry po stronie klienta, więc zmiana sprowadza się do skierowania DSN na własną instancję.
- Nodion ma też wbudowane sprawdzanie uptime dla dowolnego URL lub aplikacji, nawet co 30 sekund, z alertami przez e-mail, Slacka, Discorda i inne kanały.
„Monitoring” obejmuje cztery różne zadania: sprawdzanie, czy Twoja strona odpowiada, informowanie użytkowników na stronie statusu, obserwowanie serwerów, na których działa aplikacja, i wyłapywanie błędów w kodzie. Do każdego z tych zadań są narzędzia open source. Sześć opisanych niżej możesz wdrożyć jednym kliknięciem z katalogu Nodion i uruchomić jako własne instancje.
Jedna zasada dotyczy ich wszystkich: uruchamiaj narzędzie do monitoringu w innym miejscu niż monitorowaną aplikację, na przykład w innym regionie. W przeciwnym razie jedna awaria może unieruchomić zarówno aplikację, jak i narzędzie, które powinno ją zgłosić.
W skrócie
| Narzędzie | Zadanie | Licencja | Działa z |
|---|---|---|---|
| SolidPing | Monitoring dostępności, strony statusu, dyżury (on-call) | AGPL-3.0 | PostgreSQL, magazyn obiektowy |
| Kener | Strony statusu i incydenty | MIT | PostgreSQL, Valkey |
| Beszel | Metryki serwerów i kontenerów | MIT | Wolumen |
| Komari | Lekkie metryki serwerów | MIT | Wolumen (SQLite) |
| GlitchTip | Śledzenie błędów i proste kontrole dostępności | MIT | PostgreSQL, wolumen, strefa e-mail |
| Rustrak | Śledzenie błędów w jednym małym procesie | GPL-3.0 | PostgreSQL, wolumen |
Jak wybieraliśmy
- Dobrze wykonuje jedno z czterech zadań: monitorowanie dostępności, strony statusu, zbieranie metryk serwerów lub śledzenie błędów.
- Działa jako Twoja własna instancja z obrazu kontenera.
- Licencja open source zatwierdzona przez OSI, sprawdzona w pliku LICENSE każdego projektu.
- Niewielkie wymagania: presety potrzebują najwyżej 1 GB pamięci.
1. SolidPing: monitoring dostępności
SolidPing to pełnoprawne narzędzie do monitorowania dostępności w jednym pliku binarnym Go. Obsługuje nie tylko HTTP, ale też kontrole TCP, UDP, ICMP, DNS, certyfikatów SSL i domen, serwerów pocztowych, gRPC, baz danych, kolejek wiadomości i wielu innych usług. Kontrole mogą być wykonywane przez workery w kilku regionach, a agenci działający w sieci prywatnej sprawdzają cele w Twojej własnej sieci przez wychodzące połączenie WebSocket (zobacz README). Do tego dochodzą strony statusu, incydenty, które wysyłają jeden alert na awarię zamiast jednego na każdą kontrolę, okna serwisowe, grafiki dyżurów z eskalacją oraz powiadomienia przez Slacka, Discorda, e-mail, webhooki, PagerDuty, ntfy i inne kanały.
Licencja: AGPL-3.0. Plik licencji, strona projektu.
Na Nodion: jeden proces web z PostgreSQL i bucketem w magazynie obiektowym. Zaloguj się, podając admin@solidping.io i solidpass; przy pierwszym logowaniu SolidPing wymaga ustawienia nowego hasła. Zrób to od razu po pierwszym wdrożeniu, zanim udostępnisz URL: te domyślne dane logowania są publiczne, więc kto zaloguje się pierwszy, ten przejmuje instancję.
2. Kener: strony statusu
Kener skupia się na stronie, którą widzą Twoi użytkownicy. Tworzy strony statusu w Twojej identyfikacji wizualnej, z Twoim logo, kolorami i CSS, trybem jasnym i ciemnym oraz widżetami i odznakami statusu, które możesz osadzić w innych miejscach. Incydenty mają oś czasu z aktualizacjami, a okna serwisowe są ogłaszane z wyprzedzeniem. Kener wykonuje też własne sprawdzenia (API, ping, TCP, DNS, SSL, SQL i heartbeat), wysyła powiadomienia przez e-mail, webhook, Slacka lub Discorda, a jedna instancja może obsługiwać kilka stron statusu.
Licencja: MIT. Plik licencji, strona projektu.
Na Nodion: jeden proces web z PostgreSQL i Valkey, z adresem URL aplikacji ustawionym już jako origin Kenera. Przy pierwszym otwarciu Kener pokazuje formularz konfiguracji, w którym podajesz imię, e-mail i hasło właściciela.
3. Beszel: metryki serwerów
Beszel obserwuje maszyny, a nie adresy URL. Mały agent na każdym serwerze raportuje do huba CPU, pamięć, zajętość dysku i operacje I/O, ruch sieciowy, temperatury, użycie GPU oraz statystyki kontenerów Docker lub Podman. Hub przechowuje historię i wysyła alerty. Beszel obsługuje wielu użytkowników, logowanie przez OAuth i OIDC oraz automatyczne backupy na dysk lub do magazynu zgodnego z S3.
Licencja: MIT. Plik licencji, strona projektu.
Na Nodion: preset uruchamia hub jako jeden proces web z wolumenem 10 GB. Agenci nie są częścią wdrożenia: zainstaluj agenta na każdej maszynie, którą chcesz obserwować; może on łączyć się z hubem przez wychodzące połączenie WebSocket. Przy pierwszej wizycie tworzysz konto administratora.
4. Komari: lekkie metryki serwerów
Komari to jeszcze mniejszy monitor serwerów. Agenci raportują CPU, pamięć, dysk, sieć i uptime, a dashboard pokazuje dane na żywo co sekundę oraz wykresy historyczne. Motywy i wtyczki zmieniają wygląd. Panel administracyjny zawiera też terminal webowy dla podłączonych serwerów, więc chroń logowanie administratora tak jak hasło roota.
Licencja: MIT. Plik licencji, strona projektu.
Na Nodion: jeden proces web z SQLite na wolumenie 10 GB. Zaloguj się jako admin, podając wygenerowane hasło ADMIN_PASSWORD z zakładki Environment. Agenci łączą się z aplikacją przez HTTPS pod jej adresem URL, więc dodatkowy port przychodzący nie jest potrzebny.
5. GlitchTip: śledzenie błędów
GlitchTip to narzędzie do śledzenia błędów, które współpracuje z klienckimi SDK Sentry: skieruj DSN używanego już SDK na swoją instancję, a wyjątki, komunikaty logów i naruszenia Content Security Policy trafią w jedno miejsce. Pokazuje też Twoje najwolniejsze żądania i zapytania do bazy danych oraz oferuje prosty monitoring dostępności: sprawdza Twoją stronę albo czeka na heartbeat z zaplanowanego zadania i wysyła alerty e-mailem lub przez webhook.
Licencja: MIT. Plik licencji, strona projektu.
Na Nodion: jeden proces web z PostgreSQL, wolumen 10 GB na przesłane pliki i strefa e-mail do poczty wychodzącej. Przy pierwszym otwarciu rejestrujesz pierwszego użytkownika.
6. Rustrak: śledzenie błędów
Rustrak również obsługuje protokół Sentry, więc istniejące SDK Sentry potrzebuje tylko nowego DSN. Działa jako jeden mały proces i przyjmuje zdarzenia, najpierw zapisując je na dysk, więc nagły skok ruchu nie czeka na bazę danych. Oprócz błędów przyjmuje logi, transakcje, release health i ślady (traces) z agentów AI.
Licencja: GPL-3.0. Plik licencji, strona projektu.
Na Nodion: jeden proces web z PostgreSQL i wolumenem 10 GB. Zaloguj się, podając e-mail admin i hasło zapisane po dwukropku w CREATE_SUPERUSER w zakładce Environment.
Monitoring wbudowany w Nodion
Jeśli Twoje aplikacje działają na Nodion, masz już podstawowy monitoring dostępności. Monitoring w dashboardzie wykorzystuje obserwatorów (w interfejsie: Observers) do sprawdzania dowolnego adresu URL http(s) albo jednej z Twoich aplikacji i jej domeny w odstępach od 30 sekund do 30 minut, metodą GET lub HEAD. Ustawiasz oczekiwany kod statusu, a każdy inny liczy się jako awaria. Alerty trafiają na e-mail, Slacka, Discorda, Google Chat, Telegram, Pushover, ntfy lub dowolny webhook, a każda kontrola jest zapisywana z czasem odpowiedzi i regionem. Jeśli zawiedzie sonda Nodion, a nie Twoja strona, kontrola zostaje oznaczona i nie liczy się jako niedostępność. Konfigurację opisuje dokumentacja monitoringu.
Jeśli potrzebujesz publicznej strony statusu, metryk serwerów lub śledzenia błędów, dodaj jedno z powyższych narzędzi.
Warto też sprawdzić
- Tianji (Apache 2.0) łączy analitykę stron, monitoring dostępności i strony statusu w jednej aplikacji i również można go wdrożyć jednym kliknięciem z katalogu.
- Uptime Kuma (MIT) to proste narzędzie do monitorowania dostępności z kontrolami HTTP, TCP, ping i DNS, wieloma usługami powiadomień i wieloma stronami statusu.
Jak wybrać
- Chcesz mieć wiele typów sprawdzeń, strony statusu i dyżury w jednym narzędziu: SolidPing.
- Potrzebujesz głównie dopracowanej publicznej strony statusu z incydentami: Kener.
- Chcesz zbierać metryki CPU, pamięci, dysku i kontenerów ze swoich serwerów: Beszel albo Komari, jeśli setup ma być jeszcze lżejszy.
- Chcesz wyłapywać błędy ze swojego kodu za pomocą SDK Sentry: GlitchTip albo Rustrak, jeśli wolisz jeden mały proces.
- Twoje aplikacje już działają na Nodion i potrzebujesz alertów o dostępności: wbudowany Monitoring.
Każde narzędzie działa na Nodion jako Twoja własna instancja w wybranym przez Ciebie regionie: EU Central (Frankfurt nad Menem), US East lub US West. Wszystkie aplikacje znajdziesz w katalogu aplikacji do wdrożenia jednym kliknięciem.
Najczęściej zadawane pytania
Jakie jest najlepsze narzędzie open source do monitoringu uptime?
SolidPing, jeśli chcesz mieć w jednym narzędziu wiele typów sprawdzeń, sprawdzenia z kilku regionów, strony statusu i dyżury (on-call). Prostszą opcją jest Uptime Kuma (MIT) ze sprawdzeniami HTTP, TCP, ping i DNS oraz stronami statusu.
Jaka jest dobra strona statusu open source?
Kener (MIT) tworzy publiczne strony statusu w Twojej identyfikacji wizualnej, z incydentami, oknami serwisowymi i odznakami do osadzenia, a do tego wykonuje własne sprawdzenia. Strony statusu ma też SolidPing.
Czy istnieje alternatywa open source dla Sentry?
Tak. GlitchTip (MIT) i Rustrak (GPL-3.0) przyjmują zdarzenia z SDK Sentry po stronie klienta, więc przechodzisz na nie, kierując DSN na własną instancję.
Czy Nodion ma monitoring uptime?
Tak. Monitoring w dashboardzie sprawdza dowolny adres URL http(s) albo jedną z Twoich aplikacji w odstępach od 30 sekund do 30 minut i wysyła alerty przez e-mail, Slacka, Discorda, Google Chat, Telegram, Pushover, ntfy lub webhook.