Anzeige:
Ergebnis 1 bis 4 von 4

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

  1. #1
    Registrierter Benutzer
    Registriert seit
    Dec 2015
    Beiträge
    2

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

    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.

  2. #2
    Registrierter Benutzer
    Registriert seit
    May 2001
    Ort
    Rülzheim
    Beiträge
    69
    Hallo,

    vielleicht hängt es an den Einstellungen in /etc/logrotate.d:
    Ich musste die Einstellungen anpassen (da stand nur mysql-slow.log drin):

    Code:
    /etc/logrotate.d/mysql-server                                                                                        
    # - I put everything in one block and added sharedscripts, so that mysql gets
    #   flush-logs'd only once.
    #   Else the binary logs would automatically increase by n times every day.
    # - The error log is obsolete, messages go to syslog now.
    /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log {
            weekly
            rotate 7
            missingok
            create 640 mysql adm
            compress
            sharedscripts
            postrotate
              test -x /usr/bin/mysqladmin || exit 0
              if [ -f `my_print_defaults --mysqld | grep -m 1 -oP "pid-file=\K.+$"` ]; then
                # If this fails, check debian.conf!
                mysqladmin --defaults-file=/etc/mysql/debian.cnf --local flush-error-log \
                  flush-engine-log flush-general-log flush-slow-log
              fi
            endscript
    }
    Gruß bmk

  3. #3
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    hier klappt ein
    Code:
    mysql -u root -p -e "FLUSH SLOW LOGS;"
    Ich bin root - ich darf das.

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2015
    Beiträge
    2
    Zitat Zitat von marce Beitrag anzeigen
    hier klappt ein
    Code:
    mysql -u root -p -e "FLUSH SLOW LOGS;"
    Ich habe mein postrotate wie folgt angepasst, jetzt funktioniert es:
    Code:
     postrotate          test -x /usr/bin/mysql || exit 0
              mysql --defaults-file=/etc/mysql/debian.cnf -e "FLUSH SLOW LOGS;"
              test -x /usr/bin/mysqladmin || exit 0
              if [ -f `my_print_defaults --mysqld | grep -m 1 -oP "pid-file=\K.+$"` ]; then
                # If this fails, check debian.conf!
                mysqladmin --defaults-file=/etc/mysql/debian.cnf -v --local flush-error-log \
                  flush-engine-log flush-general-log flush-slow-log
              fi
            endscript
    Aber auch nur, wenn das mysql-Kommando vor dem mysqladmin ausgeführt wird. Danke Euch auf jeden Fall!

Ähnliche Themen

  1. Logrotate + postrotate
    Von maus66 im Forum Linux als Server
    Antworten: 2
    Letzter Beitrag: 05.05.09, 09:46
  2. SATA Problem - Port to slow
    Von darkshadown1983 im Forum stationäre Hardware
    Antworten: 1
    Letzter Beitrag: 17.12.07, 22:03
  3. Ata1: Port Is Slow To Respond, Please Be Patient
    Von ccc im Forum stationäre Hardware
    Antworten: 1
    Letzter Beitrag: 12.02.07, 14:56
  4. ata2 slow to respond
    Von buchwaldj im Forum stationäre Hardware
    Antworten: 0
    Letzter Beitrag: 19.08.06, 09:59
  5. Problem mit "logrotate" - Logifles werden immer größer
    Von weally im Forum System installieren und konfigurieren
    Antworten: 9
    Letzter Beitrag: 24.01.05, 23:13

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •