mirror of
https://git.techniverse.net/scriptos/tmserver-docker.git
synced 2026-05-08 07:05:47 +00:00
Log-Rotation fuer Apache-, PHP- und XAseco-Logs eingerichtet
This commit is contained in:
@@ -15,6 +15,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
php-mysql \
|
||||
php-curl \
|
||||
default-mysql-client \
|
||||
logrotate \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Apache mod_rewrite aktivieren und AllowOverride fuer .htaccess (RemoteCP-Sicherheit)
|
||||
@@ -148,6 +149,11 @@ RUN cp -a /opt/tmserver/xaseco /opt/tmserver/default-xaseco
|
||||
# PHP-Debug-Konfiguration: wird zur Laufzeit vom Startup-Script gesetzt
|
||||
# (kein Rebuild noetig – nur Container neustarten)
|
||||
|
||||
# Log-Rotation: logrotate-Konfiguration ins Image kopieren
|
||||
# Wird zur Laufzeit stuendlich per Background-Loop ausgefuehrt (kein cron noetig).
|
||||
COPY assets/config/logrotate.conf /etc/logrotate.d/tmserver
|
||||
RUN chmod 644 /etc/logrotate.d/tmserver
|
||||
|
||||
# --- Umgebungsvariablen ---
|
||||
# Sensible Werte (Passwoerter, Keys) werden NICHT im Image hinterlegt,
|
||||
# sondern muessen zur Laufzeit uebergeben werden (z.B. via .env-Datei).
|
||||
|
||||
@@ -1101,5 +1101,23 @@ elif [ "$XMLRPC_READY" = "true" ]; then
|
||||
echo "==> Forced Mods: Keine FORCE_MOD_*-Variablen gesetzt. Ueberspringe."
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# Log-Rotation: Hintergrundprozess starten
|
||||
# ============================================================
|
||||
# logrotate wird stuendlich ausgefuehrt, um Apache-, PHP- und
|
||||
# XAseco-Logs groessenbasiert zu rotieren (max. 10 MB pro Datei,
|
||||
# 5 rotierte Dateien). Da im Container kein cron laeuft, wird
|
||||
# ein einfacher Background-Loop verwendet.
|
||||
# ============================================================
|
||||
echo "==> Starte Log-Rotation (stuendlich, groessenbasiert 10 MB)..."
|
||||
(
|
||||
while true; do
|
||||
sleep 3600
|
||||
/usr/sbin/logrotate /etc/logrotate.d/tmserver --state /tmp/logrotate.state
|
||||
done
|
||||
) &
|
||||
LOGROTATE_PID=$!
|
||||
echo " Log-Rotation gestartet (PID: ${LOGROTATE_PID})"
|
||||
|
||||
# Auf TrackmaniaServer warten (Hauptprozess)
|
||||
wait $TM_PID
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# ============================================================
|
||||
# Log-Rotation fuer tmserver-docker
|
||||
# ============================================================
|
||||
# Wird stuendlich per Background-Loop ausgefuehrt.
|
||||
# Rotation: groessenbasiert (10 MB), max. 5 rotierte Dateien.
|
||||
# ============================================================
|
||||
|
||||
# Apache Access- und Error-Log
|
||||
/var/log/apache2/access.log
|
||||
/var/log/apache2/error.log
|
||||
{
|
||||
size 10M
|
||||
rotate 5
|
||||
missingok
|
||||
notifempty
|
||||
compress
|
||||
delaycompress
|
||||
copytruncate
|
||||
}
|
||||
|
||||
# PHP Error-Log
|
||||
/var/log/php_errors.log
|
||||
{
|
||||
size 10M
|
||||
rotate 5
|
||||
missingok
|
||||
notifempty
|
||||
compress
|
||||
delaycompress
|
||||
copytruncate
|
||||
}
|
||||
|
||||
# XAseco-Log (liegt im persistenten Volume)
|
||||
/opt/tmserver/xaseco/aseco.log
|
||||
{
|
||||
size 10M
|
||||
rotate 5
|
||||
missingok
|
||||
notifempty
|
||||
compress
|
||||
delaycompress
|
||||
copytruncate
|
||||
}
|
||||
|
||||
# AdminServ-Logs (liegen im persistenten Volume)
|
||||
/var/www/html/logs/*.log
|
||||
{
|
||||
size 10M
|
||||
rotate 5
|
||||
missingok
|
||||
notifempty
|
||||
compress
|
||||
delaycompress
|
||||
copytruncate
|
||||
}
|
||||
@@ -33,6 +33,7 @@
|
||||
│ │ │ └── maps-creatematchset.php # MatchSet-Erstellung Script
|
||||
│ │ ├── custom_game_settings.txt # MatchSettings (Spielmodus, Map-Rotation)
|
||||
│ │ ├── dedicated_cfg.txt # Server-Config-Template (mit Platzhaltern)
|
||||
│ │ ├── logrotate.conf # Log-Rotation-Konfiguration (groessenbasiert)
|
||||
│ │ ├── remotecp/
|
||||
│ │ │ └── plugins/
|
||||
│ │ │ ├── CustomPoints/
|
||||
|
||||
@@ -59,6 +59,8 @@ Alternativ können die PHP-Logs eingesehen werden:
|
||||
docker exec tmserver cat /var/log/php_errors.log
|
||||
```
|
||||
|
||||
> **Hinweis:** Alle Logs (Apache, PHP, AdminServ) werden automatisch per logrotate rotiert (max. 10 MB pro Datei, 5 rotierte Dateien). Siehe [Konfiguration – Log-Rotation](konfiguration.md#log-rotation).
|
||||
|
||||
### AdminServ komplett zurücksetzen
|
||||
|
||||
Falls AdminServ in einen inkonsistenten Zustand geraten ist:
|
||||
|
||||
@@ -106,6 +106,37 @@ Der Ordner `GameData/Config/` enthält:
|
||||
| `Default.SystemConfig.Gbx` | System-Konfiguration |
|
||||
| `AdminServ/ServerOptions/` | Von AdminServ exportierte Server-Einstellungen |
|
||||
|
||||
## Log-Rotation
|
||||
|
||||
Alle Log-Dateien im Container werden automatisch per `logrotate` rotiert, damit sie nicht unbegrenzt wachsen. Die Rotation läuft **größenbasiert** als Hintergrundprozess (stündliche Prüfung, kein Cron nötig).
|
||||
|
||||
### Einstellungen
|
||||
|
||||
| Parameter | Wert |
|
||||
|-----------|------|
|
||||
| Maximale Dateigröße | 10 MB |
|
||||
| Rotierte Dateien behalten | 5 |
|
||||
| Komprimierung | Ja (gzip, verzögert) |
|
||||
| Leere Logs überspringen | Ja |
|
||||
|
||||
### Rotierte Log-Dateien
|
||||
|
||||
| Log | Pfad im Container | Persistenz |
|
||||
|-----|--------------------|------------|
|
||||
| Apache Access | `/var/log/apache2/access.log` | Nur im Container |
|
||||
| Apache Error | `/var/log/apache2/error.log` | Nur im Container |
|
||||
| PHP Errors | `/var/log/php_errors.log` | Nur im Container |
|
||||
| XAseco | `/opt/tmserver/xaseco/aseco.log` | Volume (`./data/xaseco/`) |
|
||||
| AdminServ | `/var/www/html/logs/*.log` | Volume (`./data/controlpanel/logs/`) |
|
||||
|
||||
Rotierte Dateien werden als `*.1` (vorherige), `*.2.gz`, `*.3.gz` usw. aufbewahrt.
|
||||
|
||||
### Konfigurationsdatei
|
||||
|
||||
Die logrotate-Konfiguration liegt im Image unter `/etc/logrotate.d/tmserver` (Quelle: `assets/config/logrotate.conf`). Sie wird beim Bau des Images fest eingebettet und erfordert keine manuelle Anpassung.
|
||||
|
||||
> **Hinweis:** Die Log-Rotation ist nach einem Image-Update automatisch aktiv – auch bei bestehenden Installationen. Es sind keine manuellen Schritte nötig.
|
||||
|
||||
## AdminServ ServerOptions-Import
|
||||
|
||||
Wenn über AdminServ Änderungen an den Server-Optionen vorgenommen und als Export gespeichert werden (z.B. Servername, Beschreibung, Spielerzahl), werden diese beim nächsten Container-Start **automatisch** in die `dedicated_cfg.txt` übernommen.
|
||||
|
||||
@@ -190,6 +190,8 @@ Die XAseco-Logdatei befindet sich unter:
|
||||
|
||||
Bei Problemen ist dies die erste Anlaufstelle für die Fehlersuche.
|
||||
|
||||
> **Hinweis:** Die XAseco-Logdatei wird automatisch per logrotate rotiert (max. 10 MB pro Datei, 5 rotierte Dateien). Alte Logs werden komprimiert als `aseco.log.1.gz`, `aseco.log.2.gz` usw. aufbewahrt. Siehe [Konfiguration – Log-Rotation](konfiguration.md#log-rotation).
|
||||
|
||||
## Chat-Befehle
|
||||
|
||||
Nachfolgend eine Übersicht der wichtigsten Befehle, die im Spielchat verfügbar sind. Eine vollständige Liste aller Befehle findest du in der offiziellen Dokumentation unter: https://docs.xaseco.org/commands.php
|
||||
|
||||
Reference in New Issue
Block a user