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

前書き

Logrotateは、ログファイルの管理を簡素化するLinuxユーティリティです。通常、cronジョブを介して1日に1回実行され、その構成ファイルからのカスタマイズされたルール/設定に基づいてログを管理します。

その便利な設定には、ログファイルの自動ローテーション、圧縮、削除、メール送信などがあります。

取り付け

ほとんどのLinuxシステムには、デフォルトでLogrotateがインストールされています。logrotateコマンドを発行して、Vultrインスタンスにインストールされているかどうかを確認します。サーバーが実行しているLogrotateのバージョンの出力が表示されます。

インストールされていない場合は、以下の手順を実行してインストールを続行してください。

Debian / Ubuntuシステムの場合:

sudo apt-get update
sudo apt-get install logrotate

Redhat / CentOSシステムの場合:

sudo yum update
sudo yum install logrotate

Logrotateについて

logrotateを実行する可動部分は次のとおりです。

  • 実際のツールlogrotate

  • にあるLogrotateの構成ファイル/etc/logrotate.conf。このファイルは、Logrotateが管理するすべてのログファイルの構成を保持します。

  • /etc/cron.daily/logrotate構成ファイルの設定に基づいて実行するlogrotateコマンドを発行する毎日のcronジョブ。このcronジョブがシステムに存在しない場合は、それを作成し、以下のコードスニペットを追加します。

    #!/bin/sh
    /usr/sbin/logrotate /etc/logrotate.conf
    

設定の詳細

中を覗く/etc/logrotate.confと、線がinclude /etc/logrotate.d入っていることがわかります。この行が行うことは、Logrotateに/etc/logrotate.dディレクトリ内を調べ、その中のすべての構成ファイルを実行するように指示することです。このディレクトリは通常、Linuxシステムにインストールされているアプリケーションがlogrotate構成を追加する場所です。たとえば、Apache2は通常/etc/logrotate.d/apache、インストール時に構成ファイルを作成します。

ログの管理

Logrotateをテストするために、次のことを行います。

  • 1MBまたはランダムデータを含む新しいテストログファイルを作成します。

    sudo base64 /dev/urandom | head -c 1000000 > /tmp/testfile.log
    
  • を実行して、新しいLogrotate構成を作成しますsudo nano /etc/logrotate.d/testlog。次のスニペットを空のファイルにコピーし、Ctrl + Xを押して保存して終了します。

    /tmp/testfile.log {
        size 1k
        copytruncate
        missingok
        rotate 5
    }
    

上記のスニペットの構成オプションは、Logrotateに次のことを指示します。

  • size 1k:サイズが1k以上の場合、ログファイルをローテーションします。
  • missingok:エラーメッセージtestfile.logが存在しない場合は無視します。
  • copytruncate:現在のログファイルのコピーを作成し、それを切り捨てます。これは、アプリケーションがログファイルに継続的に追加するためにログファイルを閉じることができない場合に便利です。
  • rotate 5:ログファイルのローテーションの数を5に制限します。これにより、5日を超える古いバージョンのログファイルが削除されます。

注:ここでlogrotateのすべての構成オプションを確認できます。

  • Logrotateコマンドを手動で実行します。

    sudo logrotate /etc/logrotate.conf
    

    上記のコマンドを実行した後、tmpディレクトリ内のすべてのファイルをリストして、ls -l /tmptestfile.logが実際にローテーションされたことを確認します。次のようなリストが表示され、testfile.log実際に回転されていることがわかります。これは毎日続き、最新の5つのコピーを保持します。

    [root@vultr ~]# ls -l /tmp
    -rw-r--r--  1 root root       0 Nov 14 23:31 testfile.log
    -rw-r--r--  1 root root 1000000 Nov 14 23:30 testfile.log-20141114
    -rw-r--r--  1 root root     634 Nov 10 00:23 vultr_ipv6
    -rw-------. 1 root root       0 Oct 15 20:44 yum.log
    

結論

ログは、サイズが大きくなりすぎてディスク容量の問題が発生するため、サーバーですぐに問題が発生する可能性があります。ログの管理はどのシステムにとっても重要ですが、この管理を自動化することはさらに優れています。Logrotateを使用すると、ログのローテーション、アーカイブ、削除が簡単になります。

ラミアダボニャン脚本の作品



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。