目次

ログローテーションの設定

環境

# OS
cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

# MySQL
mysql --version
mysql  Ver 8.0.12 for Linux on x86_64 (MySQL Community Server - GPL)

# ログディレクトリ
sudo ls -l /var/log/

MySQL 8.0

# MySQLのログディレクトリ
sudo ls -l /var/log/mysql

# ローテーション設定ファイルの確認
sudoedit /etc/logrotate.conf

# 個別設定ファイル
sudo ls -l /etc/logrotate.d

# MySQLローテーション設定の確認
sudo cat /etc/logrotate.d/mysql

# パスワードファイルの作成
sudo mysql_config_editor set --login-path=client --user=root --host=localhost --password

# パスワードファイル(.mylogin.cnf)の確認
sudo ls -la /root
sudo mysql_config_editor print --all

# MySQLのローテーション設定
sudoedit /etc/logrotate.d/mysql

/var/log/mysql/mysqld.log /var/log/mysql/slow_query.log {
    create 644 mysql mysql
    notifempty
    daily
    rotate 14
    missingok
    dateext
    sharedscripts
    postrotate
    # just if mysqld is really running
    if test -x /usr/bin/mysqladmin && \
        /usr/bin/mysqladmin ping &>/dev/null
    then
        /usr/bin/mysqladmin flush-logs
    fi
    endscript
}

# 確認
sudo logrotate -dv /etc/logrotate.d/mysql

# 強制的に実行
sudo logrotate -fv /etc/logrotate.d/mysql

# ローテーションされたか確認
sudo ls -l /var/log/mysql

PHP

# PHPのログディレクトリ
sudo ls -l /var/log/php

# PHPのローテーション設定
sudoedit /etc/logrotate.d/php

/var/log/php/error.log {
    notifempty
    daily
    missingok
    dateext
    rotate 14
    copytruncate
}

# 確認
sudo logrotate -dv /etc/logrotate.d/php

# 強制的に実行
sudo logrotate -fv /etc/logrotate.d/php

# ローテーションされたか確認
sudo ls -l /var/log/php