ログローテーションの設定
環境
# 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