Files
watcher/README.md

111 lines
4.0 KiB
Markdown

# Watcher - Server Monitoring Solution
[![Build Status](https://git.triggermeelmo.com/Watcher/watcher/badges/workflows/build.yml/badge.svg)](https://git.triggermeelmo.com/Watcher/watcher/actions)
[![.NET Version](https://img.shields.io/badge/.NET-8.0-512BD4?logo=dotnet)](https://dotnet.microsoft.com/)
[![Docker Image](https://img.shields.io/badge/docker-multi--arch-2496ED?logo=docker)](https://git.triggermeelmo.com/watcher/-/packages/container/watcher-server)
[![Platform](https://img.shields.io/badge/platform-linux%2Famd64%20%7C%20linux%2Farm64-lightgrey)](https://git.triggermeelmo.com/watcher/watcher-server)
**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
### Hauptfunktionen
- Echtzeit-Hardware-Monitoring (CPU, GPU, RAM, Festplatte, Netzwerk)
- Docker-Container-Überwachung mit Service Discovery
- Web-basiertes Dashboard mit historischen Daten
- Konfigurierbare Alarmschwellen
- REST API mit Swagger-Dokumentation
- Automatische Datenaufbewahrung (konfigurierbar)
- Rootless Container-Betrieb für erhöhte Sicherheit
## 🚀 Installation & Start
### Voraussetzungen
- [Docker](https://www.docker.com/)
- [Docker Compose](https://docs.docker.com/compose/)
### Schnellstart
1. **Repository klonen oder docker-compose.yaml herunterladen**
```bash
git clone https://git.triggermeelmo.com/Watcher/watcher.git
cd watcher
```
2. **Umgebungsvariablen konfigurieren (optional)**
```bash
# .env Datei erstellen
cp .env.example .env
# Eigene UID/GID eintragen (für korrekte Dateiberechtigungen)
echo "USER_UID=$(id -u)" >> .env
echo "USER_GID=$(id -g)" >> .env
```
3. **Verzeichnisse mit korrekten Rechten erstellen**
```bash
mkdir -p data/db data/dumps data/logs
chown -R $(id -u):$(id -g) data/
```
4. **Container starten**
```bash
docker compose up -d
```
5. **Dashboard aufrufen**
```
http://localhost:5000
```
6. **Standardanmeldung**
- Benutzername: `admin`
- Passwort: `changeme`
- ⚠️ **Wichtig:** Passwort nach dem ersten Login ändern!
### Konfiguration
#### Wichtige Umgebungsvariablen
| Variable | Beschreibung | Standard |
|----------|--------------|----------|
| `USER_UID` | User-ID für Container (Dateiberechtigungen) | `1000` |
| `USER_GID` | Gruppen-ID für Container | `1000` |
| `IMAGE_VERSION` | Docker Image Version | `latest` |
| `METRIC_RETENTION_DAYS` | Datenspeicherdauer (Tage) | `30` |
| `METRIC_CLEANUP_ENABLED` | Automatische Datenbereinigung | `true` |
| `FRONTEND_REFRESH_INTERVAL_SECONDS` | Dashboard Aktualisierungsrate | `30` |
Vollständige Liste: siehe `docker-compose.yaml`
#### Volumes
- `./data/db` → `/app/persistence` - SQLite-Datenbank
- `./data/dumps` → `/app/wwwroot/downloads/sqlite` - Datenbank-Exports
- `./data/logs` → `/app/logs` - Anwendungslogs
#### Sicherheit
Der Container läuft als **non-root user** mit konfigurierbarer UID/GID:
- Standard: `1000:1000`
- Anpassbar über `USER_UID` und `USER_GID` in `.env`
- Empfehlung: Eigene UID/GID verwenden für korrekte Dateiberechtigungen
## 📝 Lizenz
Dieses Projekt ist unter einer proprietären Lizenz lizenziert.
## 🔗 Links
- **Repository:** [https://git.triggermeelmo.com/Watcher/watcher](https://git.triggermeelmo.com/Watcher/watcher)
- **Container Registry:** [https://git.triggermeelmo.com/watcher/-/packages/container/watcher-server](https://git.triggermeelmo.com/watcher/-/packages/container/watcher-server)
- **Issue Tracker:** [https://git.triggermeelmo.com/Watcher/watcher/issues](https://git.triggermeelmo.com/Watcher/watcher/issues)
---
**Entwickelt mit ❤️ unter Verwendung von .NET 8.0**