GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでLogrotateを使用してログファイルを管理する方法

数日前に、集中型Rsyslogサーバーのセットアップ方法を説明したガイドを公開しました。 CentOSシステムで。今日、このガイドでは、 Logrotateを使用してログファイルを管理する方法を説明します。 Linuxの場合。このユーティリティは、ログファイルの管理を簡素化します。特に、毎日大量のログファイルを生成するシステムに役立ちます。その名前が示すように、LogRotateは、一定の間隔でログをシステムから完全にローテーションします。また、ログファイルの自動ローテーション、圧縮、削除、およびメール送信も可能です。各ログファイルは、毎日、毎週、毎月、または大きくなりすぎたときに処理される可能性があります。

Logrotateを使用したログファイルの管理

Logrotateのインストール

Logrotateは、ほとんどのLinuxディストリビューションのデフォルトのリポジトリで利用できます。

Arch Linuxおよびその派生物では、次のコマンドを実行してインストールする必要があります。

$ sudo pacman -S logrotate

RHEL、CentOS、Scientific LinuxなどのRPMベースのシステムでは、次のコマンドを使用してインストールできます。

$ sudo yum install logrotate

Debian、Ubuntuの場合:

$ sudo apt-get install logrotate

SUSEでは、openSUSE:

$ sudo znf install logrotate
ダウンロード -無料のeGuide:「Ubuntuを自宅のように感じさせる22の便利な調整」

Logrotateの構成

LogRotateのメインの構成ファイルは/etc/logrotate.confです。 。

これが私のArchシステムにおけるこのファイルのデフォルトの内容です。このファイル出力は、他のLinuxディストリビューションでは少し異なって見える場合があります。

$ cat /etc/logrotate.conf

出力例:

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# restrict maximum size of log files
#size 20M

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# Logs are moved into directory for rotation
# olddir /var/log/archive

# Ignore pacman saved files
tabooext + .pacorig .pacnew .pacsave

# Arch packages drop log rotation information into this directory
include /etc/logrotate.d

/var/log/wtmp {
 monthly
 create 0664 root utmp
 minsize 1M
 rotate 1
}

/var/log/btmp {
 missingok
 monthly
 create 0600 root utmp
 rotate 1
}

上記の構成ファイルで各オプションが何をするか見てみましょう。

  • 毎週 -毎週ログをローテーションします。
  • 回転4 -デフォルトでは、LogRotateは4週間(明らかに1か月)相当のログファイルを保持します。特定の期間が経過するとすべてのログファイルがローテーションされるため、重要なログファイルを失いたくない場合は、そのバックアップを保持する必要がある場合があります。
  • サイズ20M -ログファイルが20MBのサイズに達した場合は、ログファイルをローテーションします。デフォルトでは、このオプションは無効になっています。有効にするには、コメントを外します。
  • 作成 -古いログファイルをローテーションした後、一度新しいログファイルを作成します。このオプションはデフォルトで有効になっています。
  • 圧縮 -ログファイルを圧縮します。また、デフォルトではログを圧縮しません。ログを圧縮する場合は、この行のコメントを解除してください。
  • /etc/logrotate.d/ -このディレクトリには、アプリケーション固有のログルールファイルが含まれています。
  • 行方不明 -ログファイルが欠落している場合、Logrotateはエラーメッセージを発行せずに次のファイルに進みます。

Logrotateは、ログファイルをセグメント化し、 /etc/logrotate.d/で指定されているルールに基づいてログを圧縮します。 ディレクトリ。

このディレクトリの内容を見てみましょう。

$ ls /etc/logrotate.d/

サンプル出力は次のようになります:

lirc  samba

上記の出力にあるように、LogRotateによって管理されるすべてのログのさまざまなルールファイルが含まれています。 sambaなどの特定のアプリケーションログルールを表示するには、次のコマンドを実行します。

$ cat /etc/logrotate.d/samba

出力例:

/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log {
 notifempty
 missingok
 sharedscripts
 copytruncate
 postrotate
 /bin/kill -HUP `cat /var/run/samba/*.pid 2>/dev/null` 2>/dev/null || true
 endscript
}

ここで

  • 通知なし -ログファイルが空の場合、ローテーションされないことを示します。
  • コピートランケート -コピーを作成した後、元のログファイルを所定の位置で切り捨てます。
  • postrotate / endscript -postrotateとendscriptの間の行は、ログファイルがローテーションされた後に実行されます。
  • 共有スクリプト -ワイルドカードパターンに一致するログの数に関係なく、スクリプトは1回だけ実行されます。

/etc/logrotate.d/ディレクトリに独自のログルールファイルを作成して、独自のルールを定義することもできます。

Cronは、ローテーションするログファイルを検索するためにlogroateユーティリティを毎日実行します。自動ログローテーションルールは、 /etc/cron.daily/logrotateで指定できます 手動によるユーザー介入を回避するためのファイル。毎日特定の時間にログローテーションを実行します。

ログファイルがローテーションしているかどうかを確認するには、次のコマンドを実行します。

$ cat /var/lib/logrotate.status

出力例:

logrotate state -- version 2
"/var/log/samba/log.smbd" 2016-5-12-11:0:0
"/var/log/lircd" 2016-6-15-10:0:0
"/var/log/httpd/*log" 2016-5-12-11:0:0
"/var/log/wtmp" 2016-5-6-10:0:0
"/var/log/samba/*.log" 2016-5-12-11:0:0
"/var/log/btmp" 2017-4-1-11:36:53
"/var/log/samba/log.nmbd" 2016-5-12-11:0:0

詳細については、次のコマンドを入力してlogrotateを実行します。

$ logrotate --help

または、

$ man logrotate

今のところこれですべてです。 Logrotateはシンプルでありながら、ログ管理を簡素化する便利なログローテーションツールです。複雑な構成やインストールの手順に苦労する必要はありません。すべてが自明です。多数のログファイルを生成するシステムを管理している場合は、Logrotateを使用して定期的にログファイルをローテーションできます。

乾杯!


Linux
  1. Linuxログファイル

  2. Logrotateを使用してログファイルを管理する方法

  3. Linux で Apache ログ ファイルをローテーションする方法

  1. diffコマンドを使用してLinuxでファイルを行ごとに比較する方法

  2. LinuxでLog2ramを使用してRAMにログファイルを書き込む方法

  3. Sort コマンドを使用して Linux でファイルをソートする方法

  1. Linuxでファイルを見つける方法

  2. Logrotateを使用してLinuxでログファイルを回転および圧縮する方法

  3. NitroShareを使用してLinux上でローカルにファイルを共有する方法