README.md aktualisiert
This commit is contained in:
246
README.md
246
README.md
@@ -1,2 +1,248 @@
|
||||
# ServerPulse
|
||||
|
||||
Monitoring- und Analytics-Plugin für Minecraft-Netzwerke mit Unified-JAR-Ansatz.
|
||||
Eine Datei, zwei Laufzeiten:
|
||||
- Spigot/Paper-Plugin auf den Game-Servern
|
||||
- BungeeCord-Plugin auf dem Proxy
|
||||
|
||||
ServerPulse erfasst Performance- und Entity-Daten, erkennt Grenzwertverletzungen, kann Alerts an Discord senden und stellt optional REST-Endpunkte für Grafana/Prometheus/Influx bereit.
|
||||
|
||||
## Features
|
||||
|
||||
- Live-Monitoring für TPS, MSPT, RAM, Chunks und Spieler
|
||||
- Entity-Analyse pro Welt
|
||||
- Schwellwertbasierte Warnungen (Warning/Critical)
|
||||
- Trend-Analyse fuer Lastentwicklungen
|
||||
- Notfallaktionen (Item-Clear, Mob-Clear, Auto-Diagnose)
|
||||
- Discord-Integration für Alerts und tägliche Reports
|
||||
- Netzwerk-Übersicht auf BungeeCord
|
||||
- REST API für Metrik-Export (Prometheus, Simple JSON, Influx, JSON)
|
||||
- Plugin Messaging zwischen Spigot und Bungee über `serverpulse:data`
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Java 17
|
||||
- Spigot/Paper 1.21+
|
||||
- BungeeCord (optional, für Netzwerkmodus)
|
||||
|
||||
Optional:
|
||||
- MySQL/MariaDB (wenn Datenbank aktiv genutzt wird)
|
||||
- Discord Webhook (wenn Discord-Alerts/Reports genutzt werden)
|
||||
- Grafana/Prometheus/InfluxDB (wenn REST/API-Export genutzt wird)
|
||||
|
||||
## Installation (ohne Build)
|
||||
|
||||
Da die JAR von dir bereitgestellt wird, ist kein Build-Schritt nötig.
|
||||
|
||||
### 1) Spigot/Paper (Standalone oder Netzwerk-Server)
|
||||
|
||||
1. Lege die JAR in den Ordner `plugins/` deines Spigot/Paper-Servers.
|
||||
2. Starte den Server einmal, damit die `config.yml` erzeugt wird.
|
||||
3. Passe die Konfiguration an.
|
||||
4. Führe `/serverpulse reload` aus oder starte den Server neu.
|
||||
|
||||
### 2) BungeeCord (Proxy)
|
||||
|
||||
1. Lege dieselbe JAR in den `plugins/`-Ordner des BungeeCord-Proxys.
|
||||
2. Starte den Proxy einmal, damit die `config.yml` erzeugt wird.
|
||||
3. Aktiviere bei Bedarf `rest-api` und `discord`.
|
||||
4. Starte den Proxy neu oder nutze `/bpulse reload`.
|
||||
|
||||
### 3) Netzwerkbetrieb (Spigot + Bungee)
|
||||
|
||||
- Installiere die JAR auf Proxy und allen relevanten Sub-Servern.
|
||||
- Stelle sicher, dass mindestens ein Spieler online ist, damit Plugin-Messages von Spigot zum Proxy gesendet werden können.
|
||||
- Der genutzte Channel ist `serverpulse:data`.
|
||||
|
||||
## Schnellstart
|
||||
|
||||
Empfohlene Reihenfolge:
|
||||
|
||||
1. In `config.yml` `general.debug: true` setzen (nur für Initialtest).
|
||||
2. Optional Datenbank aktivieren und Zugangsdaten setzen.
|
||||
3. Optional Discord aktivieren und Webhook eintragen.
|
||||
4. Optional `rest-api.enabled: true` auf dem Bungee-Proxy setzen.
|
||||
5. Plugin neu laden.
|
||||
6. Mit Befehlen prüfen:
|
||||
- Spigot: `/serverpulse status`
|
||||
- Bungee: `/bpulse status`
|
||||
|
||||
## Konfiguration
|
||||
|
||||
Die zentrale Datei ist `config.yml`.
|
||||
Je nach Laufzeit (Spigot oder Bungee) werden die passenden Abschnitte genutzt.
|
||||
|
||||
### Wichtige Bereiche
|
||||
|
||||
- `general`: Debug, Intervalle, Retention
|
||||
- `database`: MySQL-Settings (nur Spigot)
|
||||
- `discord`: Alerts/Reports für beide Seiten
|
||||
- `thresholds`: Grenzwerte fuer Performance/Entities/Netzlast
|
||||
- `worlds`: Welt-spezifische Overrides (Spigot)
|
||||
- `trend-analysis`: Lasttrend-Erkennung (Spigot)
|
||||
- `emergency-actions`: automatische Gegenmaßnahmen (Spigot)
|
||||
- `chat-monitoring`: Muster- und Spam-Erkennung (Bungee)
|
||||
- `rest-api`: API und Exportformate (Bungee)
|
||||
- `messages`: Prefix und Textausgaben (Spigot)
|
||||
|
||||
### Beispiel: Datenbank aktivieren
|
||||
|
||||
```yml
|
||||
database:
|
||||
enabled: true
|
||||
host: "localhost"
|
||||
port: 3306
|
||||
database: "serverpulse"
|
||||
username: "root"
|
||||
password: "change-me"
|
||||
```
|
||||
|
||||
### Beispiel: Discord aktivieren
|
||||
|
||||
```yml
|
||||
discord:
|
||||
enabled: true
|
||||
webhook-url: "https://discord.com/api/webhooks/..."
|
||||
report-webhook-url: ""
|
||||
bot-name: "ServerPulse"
|
||||
daily-report:
|
||||
enabled: true
|
||||
time: "08:00"
|
||||
```
|
||||
|
||||
### Beispiel: REST API aktivieren (Bungee)
|
||||
|
||||
```yml
|
||||
rest-api:
|
||||
enabled: true
|
||||
host: "0.0.0.0"
|
||||
port: 8081
|
||||
api-key: "CHANGE_ME"
|
||||
formats:
|
||||
prometheus:
|
||||
enabled: true
|
||||
endpoint: "/metrics"
|
||||
simple-json:
|
||||
enabled: true
|
||||
endpoint: "/grafana"
|
||||
influxdb:
|
||||
enabled: true
|
||||
endpoint: "/influx"
|
||||
json:
|
||||
enabled: true
|
||||
endpoint: "/api"
|
||||
```
|
||||
|
||||
## Befehle
|
||||
|
||||
### Spigot/Paper
|
||||
|
||||
Hauptbefehl: `/serverpulse`
|
||||
Alias: `/pulse`
|
||||
|
||||
Subcommands:
|
||||
- `/serverpulse status` - Aktueller Performance-Status
|
||||
- `/serverpulse report` - Manueller Monitoring-Report
|
||||
- `/serverpulse world <welt>` - Detailansicht einer Welt
|
||||
- `/serverpulse entities [welt]` - Entity-Übersicht
|
||||
- `/serverpulse reload` - Konfiguration neu laden
|
||||
- `/serverpulse debug` - Debug- und Laufzeitinfos
|
||||
- `/serverpulse clear <items|mobs> [welt]` - Notfallbereinigung
|
||||
|
||||
### BungeeCord
|
||||
|
||||
Hauptbefehl: `/bpulse`
|
||||
Aliase: `/bsp`, `/networkpulse`
|
||||
|
||||
Subcommands:
|
||||
- `/bpulse status` - Netzwerk-Schnellstatus
|
||||
- `/bpulse network` - Netzwerk-Statistik
|
||||
- `/bpulse servers` - Detailansicht aller Sub-Server
|
||||
- `/bpulse report` - Daily Report sofort an Discord senden
|
||||
- `/bpulse reload` - Bungee-Konfiguration neu laden
|
||||
|
||||
## Permissions
|
||||
|
||||
### Spigot/Paper
|
||||
|
||||
- `serverpulse.use`
|
||||
- `serverpulse.admin`
|
||||
- `serverpulse.status`
|
||||
- `serverpulse.report`
|
||||
- `serverpulse.world`
|
||||
- `serverpulse.entities`
|
||||
- `serverpulse.reload`
|
||||
- `serverpulse.debug`
|
||||
|
||||
Hinweis: Für `clear` wird in der aktuellen Implementierung `serverpulse.admin` geprüft.
|
||||
|
||||
### BungeeCord
|
||||
|
||||
- `serverpulse.bungee.use`
|
||||
- `serverpulse.bungee.admin` (für `/bpulse reload`)
|
||||
|
||||
## REST API Endpunkte (Bungee)
|
||||
|
||||
Bei aktiviertem REST-Server sind standardmäßig folgende Endpunkte vorgesehen:
|
||||
|
||||
- Prometheus: `/metrics`
|
||||
- Grafana Simple JSON: `/grafana`
|
||||
- Influx-Format: `/influx`
|
||||
- JSON API: `/api`
|
||||
|
||||
Host, Port, API-Key und Endpunkte sind in `rest-api` konfigurierbar.
|
||||
|
||||
## Betriebsmodi
|
||||
|
||||
- Standalone (nur Spigot/Paper): Lokales Monitoring auf einem Server
|
||||
- Netzwerkmodus (Spigot + Bungee): Aggregation und zentrale Sicht auf Proxy-Ebene
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Keine Daten auf Bungee sichtbar
|
||||
|
||||
- Prüfen, ob die JAR auch auf den Spigot-Servern installiert ist.
|
||||
- Prüfen, ob Spieler online sind (Plugin Messaging benötigt initial einen Spieler-Context).
|
||||
- Prüfen, ob keine Firewall den Proxy-Port für REST blockiert (falls REST genutzt wird).
|
||||
- `general.debug: true` aktivieren und Logs auf beiden Seiten prüfen.
|
||||
|
||||
### Datenbankverbindung fehlgeschlagen
|
||||
|
||||
- Zugangsdaten in `database` prüfen.
|
||||
- Erreichbarkeit und Port der DB prüfen.
|
||||
- Sicherstellen, dass der DB-User Rechte auf die angegebene Datenbank hat.
|
||||
|
||||
### Discord sendet keine Nachrichten
|
||||
|
||||
- `discord.enabled: true` gesetzt?
|
||||
- Webhook-URL korrekt?
|
||||
- Netzwerkzugriff vom Server auf Discord vorhanden?
|
||||
|
||||
### REST API nicht erreichbar
|
||||
|
||||
- `rest-api.enabled: true` auf Bungee gesetzt?
|
||||
- Host/Port korrekt und frei?
|
||||
- Firewall/Sicherheitsgruppe prüfen.
|
||||
|
||||
## Projektstruktur (Kurzüberblick)
|
||||
|
||||
- Spigot Einstieg: `de.serverpulse.spigot.SpigotPlugin`
|
||||
- Bungee Einstieg: `de.serverpulse.bungee.BungeePlugin`
|
||||
- Gemeinsamer Messaging-Channel: `de.serverpulse.network.NetworkMessage`
|
||||
- Ressourcen: `plugin.yml`, `bungee.yml`, `config.yml`
|
||||
|
||||
## ⚠️ Urheberrecht & Nutzungsbedingungen
|
||||
|
||||
**ServerPulse ist urheberrechtlich geschützt. © M_Viper – Alle Rechte vorbehalten.**
|
||||
|
||||
- ❌ Die Weitergabe dieses Plugins an Dritte ist **strengstens untersagt**
|
||||
- ❌ Das Verändern, Dekompilieren oder Bearbeiten des Codes ist **nicht erlaubt**
|
||||
- ❌ Eine Veröffentlichung – auch in veränderter Form – ist **verboten**
|
||||
- ❌ Der Verkauf oder die kommerzielle Nutzung ist **nicht gestattet**
|
||||
- ✅ Die Nutzung ist ausschließlich für den privaten Serverbetrieb erlaubt
|
||||
|
||||
Wer gegen diese Bedingungen verstößt, macht sich strafbar und kann rechtlich belangt werden.
|
||||
|
||||
## Version
|
||||
|
||||
Aktuelle Plugin-Version laut Konfiguration: 1.0.0
|
||||
|
||||
Reference in New Issue
Block a user