Linux でログ管理を構成する方法

PHPz
リリース: 2023-07-06 16:25:55
オリジナル
3774 人が閲覧しました

Linux でログ管理を構成する方法

Linux システムでは、ログは、システムの実行ステータス、アプリケーションの実行情報、エラーや警告などの重要な情報を記録する重要なコンポーネントです。ログを適切に構成および管理することは、システムの監視とトラブルシューティングにとって非常に重要です。この記事では、Linux でログ管理を構成する方法を紹介し、理解と実践に役立ついくつかのコード例を示します。

1. ログ ファイルの種類と場所を理解する

まず、システム内の一般的なログ ファイルの種類と場所を理解する必要があります。以下に、いくつかの一般的なログ ファイルの種類とその場所を示します。

  1. システム ログ (システム ログ): この種類のログには、システムの実行ステータス、起動およびシャットダウン情報などが記録されます。通常は rsyslog によって管理され、/var/log/syslog または /var/log/messages に保存されます。
  2. アプリケーション ログ: このタイプのログはさまざまなアプリケーションによって生成され、アプリケーションの実行情報とエラー情報が記録されます。これらのログは通常、/var/log/nginx/access.log などのアプリケーション固有のディレクトリに保存されます。
  3. セキュリティ ログ: このタイプのログには、ログイン試行、承認リクエストなどのシステム セキュリティ イベントが記録されます。ほとんどの Linux システムでは、セキュリティ ログは /var/log/secure または /var/log/auth.log に記録されます。

2. ログ ローテーションの構成

ログ ローテーションとは、ログ ファイルが大きくなりすぎたり、ストレージ領域を占有しすぎたりするのを防ぐために、ログ ファイルを定期的にアーカイブおよび圧縮することを指します。 Linux システムでは、logrotate が一般的に使用されるログ ローテーション ツールです。

  1. logrotate のインストール:
$ sudo apt-get install logrotate
ログイン後にコピー
  1. logrotate の構成:

logrotate の動作をカスタマイズできるように、新しい構成ファイルを作成します。の。

$ sudo nano /etc/logrotate.d/myapp
ログイン後にコピー

構成ファイルでは、ローテーションするログ ファイル、ローテーション間隔、保持するローテーション ファイルの数などのパラメーターを指定できます。例:

/var/log/myapp/*.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    sharedscripts
}
ログイン後にコピー

上記の例では、/var/log/myapp/*.log はローテーションするログ ファイルのパスを指定し、weekly はローテーションするログ ファイルのパスを指定します。毎週回転することを意味します。 rotate 4 は、回転された最後の 4 つのファイルを保持することを意味します。 compress は、回転されたファイルを圧縮することを意味します。 laycompress は、遅延圧縮を意味します。 missingok は、ログ ファイルが存在しない場合は無視されます。notifempty は、ログ ファイルが空の場合はローテーションされないことを意味します。

  1. ローテーションを手動で実行する:

ローテーションを手動で実行して、構成が正しいことを確認できます。

$ sudo logrotate -vf /etc/logrotate.d/myapp
ログイン後にコピー

3. ログ ローテーションとクリーンアップ戦略を構成する

ログ ローテーションに加えて、構成ファイルでログ ローテーションとクリーンアップ戦略を指定することもできます。 Linux システムでは、logrotate は次の戦略をサポートします。

  1. postrotate: このオプションは、ローテーション後に実行されるコマンドを指定します。このオプションでは、ログ分析やデータベースのバックアップなどの操作を実行できます。
/var/log/myapp/*.log {
    ...
    postrotate
        /usr/bin/analyze_logs /var/log/myapp/*.log > /dev/null
    endscript
}
ログイン後にコピー
  1. prerotate: このオプションは、回転前に実行するコマンドを指定します。このオプションでは、いくつかの前処理操作を実行できます。
/var/log/myapp/*.log {
    ...
    prerotate
        /usr/bin/sync_logs /var/log/myapp/*.log
    endscript
}
ログイン後にコピー
  1. size: このオプションは、ローテーション操作をトリガーするログ ファイルのサイズを指定します。単位は k (キロバイト) です。または M (メガバイト)。
/var/log/myapp/*.log {
    ...
    size 10M
}
ログイン後にコピー
  1. maxage: このオプションは、ログ ファイルの最大保存日数を指定します。
/var/log/myapp/*.log {
    ...
    maxage 30
}
ログイン後にコピー

4. リモート ログ収集の設定

場合によっては、集中ログの収集と分析のために、ログ ファイルの内容をリモート サーバーに送信する必要があります。 Linux システムでは、rsyslog が一般的に使用されるログ収集および処理ツールです。

  1. rsyslog のインストール:
$ sudo apt-get install rsyslog
ログイン後にコピー
  1. rsyslog の構成:

rsyslog のメイン構成ファイルを開き、次の内容を編集します。

$ sudo nano /etc/rsyslog.conf
ログイン後にコピー

次の行のコメントを解除します (行頭の # を削除します):

#$ModLoad imudp
#$UDPServerRun 514
ログイン後にコピー

ファイルの最後に次の行を追加します:

*.* @192.168.0.100:514
ログイン後にコピー

ここで、192.168.0.100 はリモート サーバーの IP アドレス、514 はログを収集するためのポート番号です。

  1. Restart rsyslog:
$ sudo systemctl restart rsyslog
ログイン後にコピー

上記の設定では、ログは UDP プロトコルを通じてリモート サーバーの 514 ポートに送信されます。

概要:

この記事では、Linux システムでログ管理を構成する方法を紹介します。ログ ファイルの種類と場所の理解から始まり、ログ ローテーションの構成、ログ ローテーションとクリーニング ポリシーの構成、リモート ログ収集の構成に至るまで、理解と実践に役立つ関連コード例を提供します。ログを適切に構成および管理することは、システムの監視とトラブルシューティングにとって非常に重要です。この記事がお役に立てば幸いです。

以上がLinux でログ管理を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート