サイトのログ設定
さっくりとした手順
- Apacheの設定ファイルを編集し、redmineの稼働ディレクトリにログを流すようにします。
- rsyslogを編集して日ごとにログを設定します。
- Redmineのプラグインをインストールして、管理画面からログを閲覧できるようにします。
Apache設定ファイルのバックアップを取ります。
- Apacheバーチャルサイトの設定ファイル格納ディレクトリに移動
cd /etc/apache2/sites-available && pwd
/etc/apache2/sites-available にいることを確認します
- 設定ファイルバックアップ
sudo cp -pi redmine.conf /path/to/backup/directory/redmine.conf.$(date +%Y%m%d)
任意のバックアップディレクトリを指定します。
- バックアップ確認
diff -u /path/to/backup/directory/redmine.conf.$(date +%Y%m%d) redmine.conf
差分が無いことでバックアップの取得を確認します。
/var/log配下にシンボリックリンクを張ります。
- ディレクトリ移動
cd /var/log && pwd
/var/logにいることを確認します
- シンボリックリンク作成
sudo ln -sf /home/www-data/redmine/log/ redmine
ログの格納場所は自分の環境に合わせます。
- リンク作成確認
ls -l redmine
Redmineのログディレクトリに向き先があることを確認します
Apache設定ファイルを編集します。
- ファイル編集
/etc/apache2/sites-available/redmine.conf
を教義・信仰に従ったエディタで編集してください。(要管理者権限)
追記内容
CustomLog /home/www-data/redmine/log/access.log combined
ErrorLog /home/www-data/redmine/log/error.log
# Redmineが配置されているディレクトリ/logに合わせます
# 追記箇所は
# <VirtualHost *:443>
# ServerName [ドメイン名] の下
# CustomLog /home/www-data/redmine/log/access.log combined
# ErrorLog /home/www-data/redmine/log
#
# 常時SSL化しているため、HTTP通信のアクセスログは設定しません
差分を確認します。
diff -u /path/to/backup/directory/redmine.conf.$(date +%Y%m%d) redmine.conf
差分
<VirtualHost *:443>
ServerName Redmineドメイン名
+ CustomLog /home/www-data/redmine/log/access.log combined
+ ErrorLog /home/www-data/redmine/log/error.log
+
設定を反映します。
- 構文確認
sudo apache2ctl configtest
Syntax OKを確認します。
- Webサービス再起動
sudo systemctl restart apache2.service
ログが流れることを確認します。
tail -f /home/www-data/redmine/log/access.log
このコマンドを発行し、何回かRedmineサイトにアクセスし、ログが正常に出ていることを確認します。
ログローテーション設定
- 【】内は自分の環境に合わせます。
cat <<- __EOF__ | sudo tee -a /etc/logrotate.d/redmine
【/var/log/redmine/】*.log {
daily
missingok
notifempty
copytruncate
rotate 10
compress
su www-data www-data
}
__EOF__
これで、
- 日ごとにログをローテーションする
- 10世代保存
- ローテーション時に保存
- ログが書かれていなくても処理を続行
などの処置を行います。
動作確認
sudo logrotate -dv /etc/logrotate.d/redmine
エラーがないことを確認します
コメントを残す