Skip to main content

Redmine4.2(Redmine5.x)のログを設定する。

本記事で実施すること

  • Apache設定ファイルを編集し、アクセスログとエラーログをRedmineのlogディレクトリに保存されるようにする。
  • ログローテーションの設定を行う。
  • Redmineのプラグインを利用して、Web UIからログを参照できるようにする。

想定している読者

  • Redmineのアクセスログ / エラーログを気軽に閲覧したい。

前提

以下の環境で動かしています。

  • Ubuntu 20.04系
    • Ubuntu 22.04で動作確認
  • Redmine 4.2
    • Redmine5.0でも動作確認済み(2023/02/09)
    • Redmine5.1で動作確認(2024/04/01)
  • Apache 2.4

特記事項

テキストエディタを使って編集する箇所があります。必ずバックアップを取得し、失敗したときに切り戻しができるようにしましょう。

さっくりとした手順

  1. Apacheの設定ファイルを編集し、redmineの稼働ディレクトリにログを流すようにします。
  2. rsyslogを編集して日ごとにログを設定します。
  3. Redmineのプラグインをインストールして、管理画面からログを閲覧できるようにします。

Apache設定ファイルのバックアップを取ります。

  • バーチャルファイル格納ディレクトリに移動
cd /etc/apache2/sites-available && pwd
  • ファイルのバックアップ
sudo cp -pi redmine.conf /path/to/backup/directory/redmine.conf.$(date +%Y%m%d)

バップアップディレクトリ及び設定ファイルの名前は自分の環境に合わせます

  • バックアップ確認
diff -u redmine.conf /path/to/backup/directory/redmine.conf.$(date +%Y%m%d)

差分が無いことでバックアップの取得を確認します

/var/log配下にシンボリックリンクを張ります。

  • Linux全体のログ格納ディレクトリに移動
cd /var/log && pwd
  • ログ格納ディレクトリのシンボリックリンク作成```
sudo ln -sf /home/www-data/redmine/log/ redmine

ログの格納場所は自分の環境に合わせます

  • シンボリックリンク作成確認
ls -l redmine

所有者が設定したRedmineのログディレクトリに向き先があることを確認します

Apache設定ファイルを編集します。

次のファイルを教義・信仰に従ったエディタで編集します。

/etc/apache2/sites-available/redmine.conf

(※自分が作成したredmineのバーチャルサイトファイルです)

  • 追記内容(例)
    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.$(date +%Y%m%d) /etc/apache2/sites-available/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を確認します

  • 設定反映前のApacheステータス確認
systemctl status apache2.service

active(running)を確認します

  • apache再起動
sudo systemctl restart apache2.service
  • 設定反映前のApacheステータス確認
systemctl status apache2.service

active(running)を確認します

ログが流れることを確認します。

tail -f /home/www-data/redmine/log/access.log

作成したログファイルです

このコマンドを発行し、何回かRedmineサイトにアクセスし、ログが正常に出ていることを確認します。

ログの所有者を変更します

  • アクセスログの所有者変更
sudo chown www-data:www-data /home/www-data/redmine/log/access.log
  • エラーログの所有者変更
sudo chown www-data:www-data /home/www-data/redmine/log/error.log

この処理は、Redmineのログ閲覧プラグインの設定で必要です。

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

自分の環境に合わせます。

  • gitでログプラグインを取得
sudo -u www-data git clone https://github.com/haru/redmine_logs
  • 設定反映前のApacheステータス確認
systemctl status apache2.service

active(running)を確認します

  • apache再起動
sudo systemctl restart apache2.service
  • 設定反映前のApacheステータス確認
systemctl status apache2.service

active(running)を確認します

ログ確認

  1. Redmineに管理者アカウントでログインします。
  2. 管理>ログに遷移します。
  3. 任意のログをクリックして閲覧できることを確認します。