003_Redmine4.2(Redmine5.x)のログを設定する。
バージョン 1 (手動人形, 2023/01/19 15:46) → バージョン 2/10 (手動人形, 2023/01/19 16:34)
{{TOC}}
## 本記事で実施すること
- Apache設定ファイルを編集し、アクセスログとエラーログをRedmineのlogディレクトリに保存されるようにする。
- ログローテーションの設定を行う。
- Redmineのプラグインを利用して、Web UIからログを参照できるようにする。
## 想定している読者
- Redmineのアクセスログ Webサイトのアクセスログ / エラーログを個別に設定したい。
- Webサイトのアクセスログ / エラーログのローテーションを行いたい。
- Webサイトのアクセスログ / エラーログを気軽に閲覧したい。
## 前提
以下の環境で動かしています。
- Ubuntu 20.04系
- Redmine 4.2
- Apache 2.4
### 特記事項
テキストエディタ(vi)を使って編集する箇所がいくつかあります。必ずバックアップを取得し、失敗したときに切り戻しができるようにしましょう。
## 手順
### さっくりとした手順
1. Apacheの設定ファイルを編集し、redmineの稼働ディレクトリにログを流すようにします。
2. rsyslogを編集して日ごとにログを設定します。
3. Redmineのプラグインをインストールして、管理画面からログを閲覧できるようにします。
#### Apache設定ファイルのバックアップを取ります。
```bash
cd /etc/apache2/sites-available && pwd
# /etc/apache2/sites-available にいることを確認します
sudo cp -pi redmine.conf ../old/redmine.conf.$(date +%Y%m%d)
# 設定ファイルの名前は自分の環境に合わせます
# バックアップに /etc/apache2/old を指定しています
# なければ作るか、他に任意の場所を指定します
# 変数を付けることで、ファイル名にYYYYMMDD形式が付与されます
diff -u redmine.conf ../old/redmine.conf.$(date +%Y%m%d)
# 差分が無いことでバックアップの取得を確認します
```
#### Apache設定ファイルを編集します。
```bash
sudo vi /etc/apache2/sites-available/redmine.conf
```
##### 追記内容
```apache
CustomLog /home/www-data/redmine/log/access.log combined
ErrorLog /home/www-data/redmine/log
# Redmineが配置されているディレクトリ/logに合わせます
# 追記箇所は
# <VirtualHost *:443>
# ServerName [ドメイン名] の下
# CustomLog /home/www-data/redmine/log/access.log combined
# ErrorLog /home/www-data/redmine/log
#
# 常時SSL化しているため、HTTP通信のアクセスログは設定しません
```
#### 差分を確認します。
```bash
diff -u ../old/redmine.conf.$(date +%Y%m%d) /etc/apache2/sites-available/redmine.conf
```
##### 差分
```diff
<VirtualHost *:443>
ServerName Redmineドメイン名
+ CustomLog /home/www-data/redmine/log/access.log combined
+ ErrorLog /home/www-data/redmine/log/error.log
+
```
#### 設定を反映します。
```bash
apache2ctl configtest
# Syntax OKを確認します
sudo systemctl restart apache2.service
```
#### ログが流れることを確認します。
```bash
tail -f /home/www-data/redmine/log/access.log
# 自分の環境に合わせます
```
このコマンドを発行し、何回かRedmineサイトにアクセスし、ログが正常に出ていることを確認します。
#### ログの所有者を変更します
```bash
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のログ閲覧プラグインの設定で必要です。
### ログローテーション設定
#### /var/log配下にシンボリックリンクを張ります。
```bash
cd /var/log && pwd
# /var/logにいることを確認します
sudo ln -sf /home/www-data/redmine/log/ redmine
# 自分の環境に合わせます
ls -l redmine
# 所有者が設定したRedmineのログディレクトリに向き先があることを確認します
```
- 自分の環境に合わせます。
```bash
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世代保存
- ローテーション時に保存
- ログが書かれていなくても処理を続行
などの処置を行います。
#### 動作確認
```bash
sudo logrotate -dv /etc/logrotate.d/redmine
```
エラーがないことを確認します
### Redmineのログ閲覧プラグインをインストールします。
#### プラグインインストール、設定反映
```bash
cd /home/www-data/redmine/plugins && pwd
# 自分の環境に合わせます。pluginsディレクトリにいることを確認します。
sudo -u www-data git clone https://github.com/haru/redmine_logs
sudo systemctl restart apache2.service
```
#### ログ確認
1. Redmineに管理者アカウントでログインします。
2. 管理>ログに遷移します。
3. 任意のログをクリックして閲覧できることを確認します。
## 本記事で実施すること
- Apache設定ファイルを編集し、アクセスログとエラーログをRedmineのlogディレクトリに保存されるようにする。
- ログローテーションの設定を行う。
- Redmineのプラグインを利用して、Web UIからログを参照できるようにする。
## 想定している読者
- Redmineのアクセスログ Webサイトのアクセスログ / エラーログを個別に設定したい。
- Webサイトのアクセスログ / エラーログのローテーションを行いたい。
- Webサイトのアクセスログ / エラーログを気軽に閲覧したい。
## 前提
以下の環境で動かしています。
- Ubuntu 20.04系
- Redmine 4.2
- Apache 2.4
### 特記事項
テキストエディタ(vi)を使って編集する箇所がいくつかあります。必ずバックアップを取得し、失敗したときに切り戻しができるようにしましょう。
## 手順
### さっくりとした手順
1. Apacheの設定ファイルを編集し、redmineの稼働ディレクトリにログを流すようにします。
2. rsyslogを編集して日ごとにログを設定します。
3. Redmineのプラグインをインストールして、管理画面からログを閲覧できるようにします。
#### Apache設定ファイルのバックアップを取ります。
```bash
cd /etc/apache2/sites-available && pwd
# /etc/apache2/sites-available にいることを確認します
sudo cp -pi redmine.conf ../old/redmine.conf.$(date +%Y%m%d)
# 設定ファイルの名前は自分の環境に合わせます
# バックアップに /etc/apache2/old を指定しています
# なければ作るか、他に任意の場所を指定します
# 変数を付けることで、ファイル名にYYYYMMDD形式が付与されます
diff -u redmine.conf ../old/redmine.conf.$(date +%Y%m%d)
# 差分が無いことでバックアップの取得を確認します
```
#### Apache設定ファイルを編集します。
```bash
sudo vi /etc/apache2/sites-available/redmine.conf
```
##### 追記内容
```apache
CustomLog /home/www-data/redmine/log/access.log combined
ErrorLog /home/www-data/redmine/log
# Redmineが配置されているディレクトリ/logに合わせます
# 追記箇所は
# <VirtualHost *:443>
# ServerName [ドメイン名] の下
# CustomLog /home/www-data/redmine/log/access.log combined
# ErrorLog /home/www-data/redmine/log
#
# 常時SSL化しているため、HTTP通信のアクセスログは設定しません
```
#### 差分を確認します。
```bash
diff -u ../old/redmine.conf.$(date +%Y%m%d) /etc/apache2/sites-available/redmine.conf
```
##### 差分
```diff
<VirtualHost *:443>
ServerName Redmineドメイン名
+ CustomLog /home/www-data/redmine/log/access.log combined
+ ErrorLog /home/www-data/redmine/log/error.log
+
```
#### 設定を反映します。
```bash
apache2ctl configtest
# Syntax OKを確認します
sudo systemctl restart apache2.service
```
#### ログが流れることを確認します。
```bash
tail -f /home/www-data/redmine/log/access.log
# 自分の環境に合わせます
```
このコマンドを発行し、何回かRedmineサイトにアクセスし、ログが正常に出ていることを確認します。
#### ログの所有者を変更します
```bash
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のログ閲覧プラグインの設定で必要です。
### ログローテーション設定
#### /var/log配下にシンボリックリンクを張ります。
```bash
cd /var/log && pwd
# /var/logにいることを確認します
sudo ln -sf /home/www-data/redmine/log/ redmine
# 自分の環境に合わせます
ls -l redmine
# 所有者が設定したRedmineのログディレクトリに向き先があることを確認します
```
- 自分の環境に合わせます。
```bash
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世代保存
- ローテーション時に保存
- ログが書かれていなくても処理を続行
などの処置を行います。
#### 動作確認
```bash
sudo logrotate -dv /etc/logrotate.d/redmine
```
エラーがないことを確認します
### Redmineのログ閲覧プラグインをインストールします。
#### プラグインインストール、設定反映
```bash
cd /home/www-data/redmine/plugins && pwd
# 自分の環境に合わせます。pluginsディレクトリにいることを確認します。
sudo -u www-data git clone https://github.com/haru/redmine_logs
sudo systemctl restart apache2.service
```
#### ログ確認
1. Redmineに管理者アカウントでログインします。
2. 管理>ログに遷移します。
3. 任意のログをクリックして閲覧できることを確認します。