Problem mit Logrotate (Postrotate) und maraidb-slow.log

vendredi 17 novembre 2017

Hallo zusammen,


ich habe ein Problem mit dem Befehl in der postrotate-Sektion der Logrotate-Konfiguration für eine Maria-DB. Das logrotate an sich läuft, ohne Fehler zu melden. Das Gleiche gilt für das mysqladmin Kommando in der postrotate-Sektion. Der Befehl sorgt dafür, dass die DB wieder in die Logs schreiben kann, nachdem diese vom Logrotate neu erstellt wurden. An sich funktioniert das für alle Logs bis auf das mariadb-slow.log.
, wird das maraidb-slow.log wieder beschrieben. Ein manuelles Ausführen von logrotate hat das gleiche Ergebnis, wie das automatisierte.


Folgendes habe ich probiert:

  • manuelles Ausfphren des postrotate-Kommandos

Code:

mysqladmin --defaults-file="/etc/mysql/debian.cnf" -v --local flush-error-log flush-engine-log flush-general-log flush-slow-log
Ergebnis: Das slow-log wird wieder beschrieben. Der Befehl gibt nichts auf stdout aus. Selbst mit -v nicht. Return Code ist 0.



  • manuelles Ausführen von logrotate

Code:

logrotate -v /etc/logrotate.d/mysql
reading config file /etc/logrotate.d/mysql-server
Reading state from file: /var/lib/logrotate/status
Allocating hash table for state file, size 64 entries
Creating new state
...
Creating new state


Handling 1 logs


rotating pattern: /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log  1024 bytes (7 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/mysql/mysql.log
  log /var/log/mysql/mysql.log does not exist -- skipping
considering log /var/log/mysql/mysql-slow.log
  log /var/log/mysql/mysql-slow.log does not exist -- skipping
considering log /var/log/mysql/mariadb-slow.log
  Now: 2017-11-16 14:54
  Last rotated at 2017-11-15 15:02
  log needs rotating
considering log /var/log/mysql/error.log
  Now: 2017-11-16 14:54
  Last rotated at 2017-11-15 15:02
  log needs rotating
rotating log /var/log/mysql/mariadb-slow.log, log->rotateCount is 7
dateext suffix '-20171116'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/mysql/mariadb-slow.log.7.gz to /var/log/mysql/mariadb-slow.log.8.gz (rotatecount 7, logstart 1, i 7),
old log /var/log/mysql/mariadb-slow.log.7.gz does not exist
renaming /var/log/mysql/mariadb-slow.log.6.gz to /var/log/mysql/mariadb-slow.log.7.gz (rotatecount 7, logstart 1, i 6),
renaming /var/log/mysql/mariadb-slow.log.5.gz to /var/log/mysql/mariadb-slow.log.6.gz (rotatecount 7, logstart 1, i 5),
renaming /var/log/mysql/mariadb-slow.log.4.gz to /var/log/mysql/mariadb-slow.log.5.gz (rotatecount 7, logstart 1, i 4),
renaming /var/log/mysql/mariadb-slow.log.3.gz to /var/log/mysql/mariadb-slow.log.4.gz (rotatecount 7, logstart 1, i 3),
renaming /var/log/mysql/mariadb-slow.log.2.gz to /var/log/mysql/mariadb-slow.log.3.gz (rotatecount 7, logstart 1, i 2),
renaming /var/log/mysql/mariadb-slow.log.1.gz to /var/log/mysql/mariadb-slow.log.2.gz (rotatecount 7, logstart 1, i 1),
renaming /var/log/mysql/mariadb-slow.log.0.gz to /var/log/mysql/mariadb-slow.log.1.gz (rotatecount 7, logstart 1, i 0),
old log /var/log/mysql/mariadb-slow.log.0.gz does not exist
log /var/log/mysql/mariadb-slow.log.8.gz doesn't exist -- won't try to dispose of it
rotating log /var/log/mysql/error.log, log->rotateCount is 7
dateext suffix '-20171116'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/mysql/error.log.7.gz to /var/log/mysql/error.log.8.gz (rotatecount 7, logstart 1, i 7),
renaming /var/log/mysql/error.log.6.gz to /var/log/mysql/error.log.7.gz (rotatecount 7, logstart 1, i 6),
renaming /var/log/mysql/error.log.5.gz to /var/log/mysql/error.log.6.gz (rotatecount 7, logstart 1, i 5),
renaming /var/log/mysql/error.log.4.gz to /var/log/mysql/error.log.5.gz (rotatecount 7, logstart 1, i 4),
renaming /var/log/mysql/error.log.3.gz to /var/log/mysql/error.log.4.gz (rotatecount 7, logstart 1, i 3),
renaming /var/log/mysql/error.log.2.gz to /var/log/mysql/error.log.3.gz (rotatecount 7, logstart 1, i 2),
renaming /var/log/mysql/error.log.1.gz to /var/log/mysql/error.log.2.gz (rotatecount 7, logstart 1, i 1),
renaming /var/log/mysql/error.log.0.gz to /var/log/mysql/error.log.1.gz (rotatecount 7, logstart 1, i 0),
old log /var/log/mysql/error.log.0.gz does not exist
renaming /var/log/mysql/mariadb-slow.log to /var/log/mysql/mariadb-slow.log.1
creating new /var/log/mysql/mariadb-slow.log mode = 0640 uid = 110 gid = 4
renaming /var/log/mysql/error.log to /var/log/mysql/error.log.1
creating new /var/log/mysql/error.log mode = 0640 uid = 110 gid = 4
running postrotate script
compressing log with: /bin/gzip
compressing log with: /bin/gzip
removing old log /var/log/mysql/error.log.8.gz

Ergebnis: Das Log wird nicht geschrieben.



  • Aufzeichnen des Outputs des Postrotate-Kommandos

Ich habe die Ausgabe (stdout & stderr) des mysqladmin-Kommandos in der Logrotate-Config in eine Datei umgeleitet.
Code:

>> /var/log/mysql-logrotate.log 2>&1
Ergebnis: Es wird nichts ausgegeben. Ich habe natürlich mysqladmin mit -v ausführen lassen.


Ich bin momentan ideenlos was ich noch versuchen könnte und wo das Problem liegt. Kann mir jemand weiter helfen?


Wir haben ein Debian 9 mit einer Maria-DB 10.1. Die Logrotate-Config ist die originale aus dem Paket.


0 commentaires:

Enregistrer un commentaire

 

Lorem

Ipsum

Dolor