Red Hatのログファイルの管理と監視 – logrotateを使った自動管理をはじめよう
この記事では、Red Hat Enterprise Linux (RHEL) のシステムログ管理を効率化するための手法を説明します。logrotateを使った自動ログ管理の設定を中心に、日々の監視を簡単にする方法を紹介します。
目次
前提条件
- RHEL 8または9がインストールされている
- rootまたはsudo権限を持つユーザーが利用可能
logrotateの概要
logrotateは、ログファイルのサイズや世代を管理するツールです。定期的にログを圧縮し、古いファイルを削除することで、ストレージ使用量を制御します。
logrotateのインストール確認
logrotateがインストールされているか確認します。
sudo dnf list installed logrotate
インストールされていない場合は、以下のコマンドでインストールします。
sudo dnf install logrotate -y
logrotateのデフォルト設定ファイル
デフォルト設定ファイルの場所は以下です。
/etc/logrotate.conf
現在の設定を確認します。
cat /etc/logrotate.conf
ログディレクトリの設定
特定のログディレクトリに対する設定を行います。例として、`/var/log/myapp/`を追加します。
sudo nano /etc/logrotate.d/myapp
設定例:
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root root
}
logrotateのスケジュール確認
logrotateはcronにより実行されます。スケジュールを確認します。
cat /etc/cron.daily/logrotate
手動でlogrotateを実行
設定をテストするため、手動でlogrotateを実行します。
sudo logrotate -f /etc/logrotate.conf
特定ログの監視設定
アプリケーションログなど、特定のログファイルの管理を追加します。以下の設定例はApacheログ用です。
sudo nano /etc/logrotate.d/httpd
設定例:
/var/log/httpd/*log {
weekly
rotate 4
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
}
ログの圧縮オプション
ログ圧縮に使用する形式を指定します。例: bzip2
compresscmd /usr/bin/bzip2
uncompresscmd /usr/bin/bunzip2
古いログファイルの削除
古いログを自動で削除する世代数を設定します。
rotate 7
この設定で、8世代目以降のログが削除されます。
エラーログの確認
logrotate実行時にエラーが発生した場合、以下を確認します。
sudo cat /var/log/messages | grep logrotate
logrotateのデバッグモード
設定の問題を確認するためにデバッグモードを使用します。
sudo logrotate -d /etc/logrotate.conf
システム全体のログ管理
すべてのシステムログを管理するには、デフォルト設定ファイルを活用します。
sudo nano /etc/logrotate.conf
例: 圧縮形式や通知設定を変更
compress
mail root
logrotateのステータス確認
どのログが最近ローテーションされたか確認します。
sudo cat /var/lib/logrotate/status
トラブルシューティング
問題が発生した場合は、以下を確認します。
- 設定ファイルにエラーがないか確認
- cronが正常に動作しているか確認
- 対象ログファイルが存在するか確認
-
前の記事
RHELを使った継続的インテグレーション(CI)の実装方法 2024.11.28
-
次の記事
Red Hatでのマルチクラウド環境の統合 – OpenShiftを利用する 2024.11.28
コメントを書く