Logeinträge in einzelne Dateien umleiten
RSysLog
Die Log-Einträge der einzelnen Docker-Container von Matrix werden in die Datei /var/log/syslog geschrieben. Dies kann bei sehr hohem Zugriff schnell unübersichtlich werden. Mit der folgenden Anleitung leitet man die Log-Ausgabe für diesen Docker-Contaienr in eine eigene Datei um.
Diese Anleitung kann beliebig oft wiederholt werden, da die Konfigurationsdatei unter /etc/rsyslog.d jedes Mal neu geschrieben wird. Dies kann notwendig sein, wenn ein Container z. B. über längere Zeit keine Log-Dateien geschrieben hat.
-
Das Verzeichnis für die Log-Dateien erstellen
mkdir /var/log/matrix
-
Den folgenden Zeilen als ein Befehl ausführen, um für alle Vorkommnisse für Matrix-Container in der Datei /var/log/syslog eine eigene Umleitung zu erstellen.
Er durchschaut die aktuelle Log-Datei syslog nach Einträgen, dessen Programmname mit "matrix" beginnen und nicht mit einer Zahl enden. Dies ist wichtig, da bei einer Worker-Konfiguration von Docker der Name der Docker-Container der Worker mit der Instanz-Id versehen werden. Die rsyslog-Konfiguration würde für diese Einträge nach einem Neustart ungültig werden und man müsse den Befehl erneut ausführen.>/etc/rsyslog.d/99-matrix.conf; \ for f in $(docker ps --format '{{.Names}}' | egrep '^matrix-.*[^0-9]$' | sort | uniq); \ do \ echo -e ":programname,contains,\"${f}\" /var/log/matrix/${f}.log" >> /etc/rsyslog.d/99-matrix.conf; \ done
-
Nun den rsyslog-Service neu starten
systemctl restart rsyslog
- In dem Verzeichnis /var/log/matrix finden sich nun nach und nach einzelne Log-Dateien.
Logrotate
Damit die Logdateien besser gesichtet werden können, für Logrotate einen regelmäßigen Wechsel der Logdateien durch und packt die alten Dateien.
-
Folgende Datei unter /etc/logrotate.d/matrix anlegen und den Inhalt hinzufügen
/var/log/matrix/*.log { rotate 4 size 50M daily missingok notifempty compress delaycompress sharedscripts postrotate /usr/bin/pkill -HUP rsyslogd endscript }
-
Damit die Änderung greifen, den Logrotate-Service neu starten
systemctl restart logrotate
No Comments