VulCode

monito

Mikroserwis monitoringu, który co minutę sprawdza adresy HTTP, kontenery Dockera i zasoby serwera, otwiera i zamyka incydenty, liczy uptime z oknami serwisowymi i wysyła alarmy na Discorda bez zalewania kanału. Śledzi też zmiany treści na wskazanych stronach, zarządza domenami i skrzynkami w Mailcow, a każdą nową wiadomość ze skrzynek zespołu wrzuca na kanał jako podgląd z przyciskami linków i załącznikami.

TypMikroserwis monitoringu
BackendNode.js, TypeScript, Express
ŹródłaHTTP, Docker, system, IMAP
PowiadomieniaDiscord
monito

Wprowadzenie

monito to mikroserwis w TypeScripcie, który pilnuje małej infrastruktury i spina z nią pocztę zespołu. Zamiast stawiać pełny system monitoringu do kilku adresów, kontenerów i jednego serwera, jeden proces co minutę sprawdza wszystko i mówi o tym na Discordzie.

Pętla co minutę

Zasoby serwera

procesor, pamięć, dysk i ruch sieciowy, z ostrzeżeniem po przekroczeniu progów.

Adresy HTTP

kod odpowiedzi i czas dla każdego celu.

Kontenery Dockera

stan każdego obserwowanego kontenera.

Strony do obserwacji

zmiana treści z procentem zmiany i podsumowaniem różnic.

Incydenty i powiadomienia

Zmiana stanu celu otwiera albo zamyka incydent, a uptime jest liczony z uwzględnieniem okien serwisowych. Alarmy idą na Discorda z ograniczeniem powtórzeń, więc długa awaria nie zalewa kanału tą samą wiadomością. Każde powiadomienie trafia na prywatny kanał zespołu, a to, co ma widzieć klient, także na kanał publiczny. Cele, okna serwisowe, webhooki i rozwiązanie incydentu ustawia się przez API.

Poczta w Mailcow

To samo API zarządza pocztą w Mailcow: domenami, rekordami DKIM i skrzynkami, a do tego wysyła wiadomości przez SMTP i czyta skrzynkę przez IMAP. Nowa domena i jej skrzynki powstają jednym wywołaniem z panelu albo skryptu, bez logowania do Mailcow.

Nowa poczta na kanale

Każda nowa wiadomość ze skrzynek zespołu trafia na kanał Discorda jako podgląd renderowany do obrazka. Pod podglądem są przyciski z najważniejszymi linkami z wiadomości, a załączniki przychodzą w kolejnych wiadomościach, w limicie wielkości plików serwera. Obrazy zdalne z treści są pobierane i dołączane do podglądu, a listy dyskusyjne, które zespół subskrybuje tylko formalnie, nie zaśmiecają kanału.

Pytania o monito

Więcej projektów

Inne realizacje z tej samej kategorii - zobacz, jak podchodzimy do podobnych wyzwań.

Masz podobny projekt?

Napisz do nas - wycena jest bezpłatna i wraca w godzinę.