[Infrastruktura · Diagnostyka serwerów · Monitoring]

Astra Server Monitor

Narzędzia diagnostyki i obserwowalności dla serwerów Linux: czytelny obraz stanu systemu, usług i zajętości dysku z bezpiecznym dostępem do diagnostyki tylko do odczytu.

Przynależność
Narzędzie operacyjne zbudowane obok infrastruktury Astra Raven
Fokus techniczny
LinuxDiagnosticsObservabilityRead-only AccessVisualisation
Co pokazuje
Linux · Automatyzacja infrastruktury · Obserwowalność · Narzędzia operacyjne · Bezpieczna diagnostyka · Integracja z backendem

01Przegląd projektu

Utrzymywanie usług produkcyjnych na VPS oznacza regularne odpowiadanie na te same pytania: czy wszystko działa, co zużywa zasoby, gdzie zniknęło miejsce na dysku. Server Monitor zamienia te pytania w czytelny interfejs.

Dostęp jest celowo ograniczony. Funkcje diagnostyczne działają tylko w trybie odczytu i pod kontrolą, więc narzędzie pomaga badać problemy, nie tworząc nowego ryzyka.

02Wyzwanie inżynierskie

Output terminala jest precyzyjny, ale pod presją trudno go szybko zinterpretować. Jednocześnie każde narzędzie z dostępem do serwera musi być zaprojektowane tak, by nie mogło przypadkiem zmienić systemu, który obserwuje.

  • A

    Zbierać diagnostykę bez podwyższonych uprawnień i operacji zapisu.

  • B

    Prezentować usługi, procesy i zasoby w formie szybkiej do przejrzenia.

  • C

    Interaktywnie badać zajętość dysku przy systemie plików tylko do odczytu.

  • D

    Weryfikować faktyczny stan usług po każdym wdrożeniu.

03Architektura rozwiązania

Najedź lub dotknij etapu.

01

Host Linux

Metryki systemowe, usługi i system plików na VPS.

04Główne komponenty

  • 01

    Przegląd systemu

    Kluczowe metryki zasobów i informacje o hoście w jednym miejscu.

  • 02

    Status usług

    Stan usług, na których działa platforma.

  • 03

    Widok procesów

    Obserwacja uruchomionych procesów i ich zużycia zasobów.

  • 04

    Eksplorator dysku

    Interaktywny podział zajętości dysku według katalogów, tylko do odczytu.

  • 05

    Kontrola dostępu

    Kontrolowany zestaw funkcji diagnostycznych zamiast otwartego dostępu do powłoki.

  • 06

    Kontrole po wdrożeniu

    Używane do potwierdzenia rzeczywistego zachowania po wypuszczeniu zmian.

05Stack technologiczny

Platforma

  • Linux VPS
  • SSH
  • Process lifecycle

Backend

  • Python
  • Diagnostics collectors

Interfejs

  • Web UI
  • SVG visualisation

06Interaktywna demonstracja

Dashboard serwera

IlustracjaDane demo — wygenerowany przykład, nie prawdziwy serwer.

server-monitor · vps-01 (sample)Dane demo

CPU

—

Pamięć

—

Obciążenie

—

1m · 5m · 15m

Dysk /

—

Usługi

systemd

    Eksplorator dysku · tylko odczyt

    Kliknij blok, aby wejść głębiej · stąd niczego nie można zmienić

    07Decyzje inżynierskie

    1. 01

      Domyślnie tylko odczyt

      Badanie problemu nigdy nie powinno tworzyć nowego.

    2. 02

      Struktura po stronie serwera

      Output komend jest parsowany na serwerze do typowanych danych, którym UI może ufać.

    3. 03

      Wizualnie tam, gdzie to pomaga

      Zajętość dysku to hierarchia — więc jest pokazana jako hierarchia, a nie długa lista.

    08Niezawodność i testy

    • Ograniczony zestaw operacji diagnostycznych.
    • Timeouty kolektorów, aby jedna wolna komenda nie zamrażała dashboardu.
    • Element weryfikacji po wdrożeniu.

    09Przykład kodu

    disk_usage.py python
    import os
    from pathlib import Path
    
    def directory_sizes(root: Path, max_entries: int = 50) -> list[tuple[str, int]]:
        """Read-only scan: never follows symlinks, never writes."""
        sizes: list[tuple[str, int]] = []
        for entry in os.scandir(root):
            if entry.is_symlink():
                continue
            total = 0
            if entry.is_dir(follow_symlinks=False):
                for dirpath, _, files in os.walk(entry.path, followlinks=False):
                    for name in files:
                        try:
                            total += os.lstat(os.path.join(dirpath, name)).st_size
                        except OSError:
                            pass  # file vanished or no permission — skip
            else:
                total = entry.stat(follow_symlinks=False).st_size
            sizes.append((entry.name, total))
        return sorted(sizes, key=lambda x: x[1], reverse=True)[:max_entries]

    Ilustracja Przykład ilustracyjny — skan rozmiarów katalogów tylko do odczytu.

    Kod źródłowy produktu jest prywatny. Przykłady pokazują podejście inżynierskie, a nie wewnętrzną logikę. Więcej w Engineering Lab.

    10Możliwe kierunki rozwoju

    • Historia metryk z prostymi wykresami trendów.
    • Alerty progowe dostarczane na Telegram.
    • Widok wielu serwerów jednocześnie.
    Następny case · 07 TrackLink — śledzenie i analityka marketingowa Automatyzacja biznesu · Analityka · Produkt backendowy