本記事で実施すること¶
- Apache設定ファイルを編集し、アクセスログとエラーログをRedmineのlogディレクトリに保存されるようにする。
- ログローテーションの設定を行う。
- Redmineのプラグインを利用して、Web UIからログを参照できるようにする。
想定している読者¶
- Redmineのアクセスログ / エラーログを気軽に閲覧したい。
前提¶
以下の環境で動かしています。
- Ubuntu 20.04系
- Ubuntu 22.04 / Ubuntu 24.0でも動作確認済み
- Redmine 4.2
- Redmine5.0でも動作確認済み(2023/02/09)
- Apache 2.4
特記事項¶
テキストエディタを使って編集する箇所があります。必ずバックアップを取得し、失敗したときに切り戻しができるようにしましょう。
さっくりとした手順¶
- 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サイトにアクセスし、ログが正常に出ていることを確認します。
ログの所有者を変更します¶
sudo chown www-data:www-data /home/www-data/redmine/log/*.log
この処理は、Redmineのログ閲覧プラグインの設定で必要です。
ログローテーション設定¶
- 【】内は自分の環境に合わせます。
cat <<- __EOF__ | sudo tee -a /etc/logrotate.d/redmine
【/var/log/redmine/】*.log {
daily
missingok
ifempty
copytruncate
rotate 10
compress
su www-data www-data
}
__EOF__
これで、
- 日ごとにログをローテーションする
- 10世代保存
- ローテーション時に保存
- ログが書かれていなくても処理を続行
などの処置を行います。
動作確認¶
sudo logrotate -dv /etc/logrotate.d/redmine
エラーがないことを確認します
Redmineのログ閲覧プラグインをインストールします。¶
プラグインインストール、設定反映¶
- Redmineのプラグイン配置ディレクトリに移動
cd /home/www-data/redmine/plugins && pwd
自分の環境に合わせます。pluginsディレクトリにいることを確認します。
- git clone
sudo -u www-data git clone https://github.com/haru/redmine_logs
- clone確認
ls- ld redmine_logs
ディレクトリがあることを確認します。
- Webサービス再起動
sudo systemctl restart apache2.service
ログ確認¶
- Redmineに管理者アカウントでログインします。
- 管理>ログに遷移します。
- 任意のログをクリックして閲覧できることを確認します。