in Профессиональное

Быстрая настройка ротации mysql slow log

Проблема – по умолчанию mysql не умеет и не хочет “вращать” лог медленных запросов.

Необходимые допущения:

  • MySQL работает из-под пользователя mysql (у меня по умолчанию так, скорее всего и у вас тоже)
  • Лог медленных запросов лежит тут: /var/log/mysql-slow.log

Что хотим получить

  • Еженедельную ротацию
  • Держать одновременно 3 лога (+ один текущий)
  • Сжимать gzip‘ом
  • Создавать новый лог с правами 660 в собственности mysql:mysql
  • Запустить mysqladmin flush-logs

Для достижения этого помещаем в /etc/logrotate.d/ следующий скрипт

$ vim /etc/logrotate.d/mysql-slow

Текст скрипта:

/var/log/mysql-slow.log {
    weekly
    rotate 3
    compress
    missingok
    notifempty
    sharedscripts
    create 660 mysql mysql
    postrotate
        /usr/bin/mysqladmin flush-logs
    endscript
}

Желательно предварительно протестировать на вашей конфигурации.

P.S. оригинал тут http://www.saiweb.co.uk/mysql/mysql-slow-query-log-rotation

UPD: гм. по умолчанию на моих серверах logrotate не было. Спасает

yum install logrotate

Write a Comment

Comment

*