8a753ca9bab3e42b4121442a715e81aefe1e0336
Watcher - Server Monitoring Solution
Watcher ist eine umfassende Server- und Host-Monitoring-Lösung mit verteilter Architektur, die Echtzeit-Hardware-Metriken erfasst und über ein zentrales Web-Dashboard visualisiert.
📋 Überblick
Die Software besteht aus zwei Hauptkomponenten:
- Host Agent: Sammelt Hardware-Metriken (CPU, GPU, RAM, Festplatte, Netzwerk) von den überwachten Servern
- Zentrale Monitoring-Software: Web-basiertes Dashboard zur Visualisierung und Verwaltung der gesammelten Daten mit konfigurierbaren Alarmschwellen
✨ Hauptfunktionen
Server-Management
- Hinzufügen, bearbeiten und löschen von Servern
- Hardware-Spezifikationen erfassen (CPU, GPU, RAM, Festplatte)
- Server-Verifikationssystem
- Online/Offline-Status-Tracking via Heartbeat
- Konfigurierbare Alarmschwellen pro Server
Monitoring & Metriken
- Echtzeit-Metrikerfassung: CPU, GPU, RAM, Festplatte, Netzwerk
- Automatische Datenaufbewahrung mit konfigurierbarer Retention (Standard: 30 Tage)
- Historische Datenspeicherung mit Zeitstempel
- REST API-Endpunkte für Metrik-Submission
- Swagger/OpenAPI-Dokumentation unter
/api/v1/swagger
Container-Management
- Docker-Container-Tracking pro Server
- Container-Image-Registry
- Container-Status-Überwachung
- Service Discovery für Docker-Container
Sicherheit & Authentifizierung
- Lokale Benutzerauthentifizierung mit BCrypt-Hashing
- Cookie-basierte Session-Verwaltung
- Rollenbasierte Zugriffskontrolle
- Standard-Admin-Benutzer (Username:
admin, Passwort:changeme- bitte ändern!)
Logging & Diagnostik
- Strukturiertes Logging mit Serilog
- Tägliche Log-Dateien:
logs/watcher-<datum>.log - Health-Check-Endpunkte
- Datenbank-Export-Funktionalität (SQL-Dumps)
🛠️ Technologie-Stack
Backend:
- ASP.NET Core 8.0 (C#)
- Entity Framework Core 8.0
- Serilog 9.0 für Logging
Datenbank:
- SQLite (Standard, dateibasiert)
- MySQL-Unterstützung (konfigurierbar)
Frontend:
- Razor Views (CSHTML)
- Bootstrap / CSS
- jQuery, jQuery Validation
API & Dokumentation:
- Swagger/Swashbuckle 9.0.6
- REST API
Container & Deployment:
- Docker (Multi-Arch: AMD64, ARM64)
- Docker Compose
- Gitea CI/CD
🚀 Installation & Start
Voraussetzungen
Schnellstart
- docker-compose.yaml erstellen oder die bereitgestellte verwenden:
services:
watcher:
image: git.triggermeelmo.com/watcher/watcher-server:latest
container_name: watcher
deploy:
resources:
limits:
memory: 200M
restart: unless-stopped
environment:
- WATCHER_VERSION=latest
- UPDATE_CHECK_ENABLED=true
- UPDATE_CHECK_INTERVAL_HOURS=24
- METRIC_RETENTION_DAYS=30
- METRIC_CLEANUP_ENABLED=true
- METRIC_CLEANUP_INTERVAL_HOURS=24
ports:
- "5000:5000"
volumes:
- ./watcher-volumes/data:/app/persistence
- ./watcher-volumes/dumps:/app/wwwroot/downloads/sqlite
- ./watcher-volumes/logs:/app/logs
-
Container starten:
docker compose up -d -
Dashboard aufrufen:
http://localhost:5000 -
Standardanmeldung:
- Benutzername:
admin - Passwort:
changeme - ⚠️ Wichtig: Bitte Passwort nach dem ersten Login ändern!
- Benutzername:
⚙️ Konfiguration
Umgebungsvariablen
| Variable | Beschreibung | Standard |
|---|---|---|
WATCHER_VERSION |
Anwendungsversion | latest |
UPDATE_CHECK_ENABLED |
Update-Prüfung aktivieren | true |
UPDATE_CHECK_INTERVAL_HOURS |
Update-Prüfungs-Intervall | 24 |
METRIC_RETENTION_DAYS |
Datenspeicherdauer (Tage) | 30 |
METRIC_CLEANUP_ENABLED |
Automatische Datenbereinigung | true |
METRIC_CLEANUP_INTERVAL_HOURS |
Bereinigungs-Intervall | 24 |
DATABASE:CONNECTIONSTRINGS:SQLITE |
Benutzerdefinierter SQLite-Pfad | - |
Volumes
/app/persistence- SQLite-Datenbank/app/wwwroot/downloads/sqlite- Datenbank-Exports/app/logs- Anwendungslogs
🔧 Entwicklung
Lokales Build
# Dependencies wiederherstellen
dotnet restore
# Build
dotnet build --configuration Release
# Tests ausführen
dotnet test
# Anwendung starten
dotnet run --project Watcher
Docker-Build
# Multi-Arch Build
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t watcher-server:latest \
--push .
📁 Projektstruktur
/Watcher
├── Controllers/ # MVC & API Controllers
├── Models/ # Entity-Modelle
├── Views/ # Razor-Templates
├── Services/ # Background-Services & Stores
├── Data/ # Entity Framework Context
├── Migrations/ # EF Core Migrations
├── ViewModels/ # View Models
├── wwwroot/ # Statische Assets
├── persistence/ # SQLite-Datenbank
└── logs/ # Anwendungslogs
📝 Lizenz
Dieses Projekt ist unter einer proprietären Lizenz lizenziert.
🔗 Links
- Repository: https://git.triggermeelmo.com/Watcher/watcher
- Container Registry: https://git.triggermeelmo.com/watcher/-/packages/container/watcher-server
- Issue Tracker: https://git.triggermeelmo.com/Watcher/watcher/issues
Entwickelt mit ❤️ unter Verwendung von .NET 8.0
Description
Release v0.2.0
Latest
Languages
C#
67.9%
HTML
29.2%
CSS
2.4%
Dockerfile
0.5%