Nginxのログカット設定の分析、Webサイトのログストレージの管理

王林
リリース: 2023-07-04 10:12:06
オリジナル
1362 人が閲覧しました

Nginx ログカット設定分析、管理サイトのログ保存

Web サイトの運用において、ログは非常に重要です。 Web サイトの実行ステータスの詳細な記録を提供できるため、開発者や管理者が問題を分析し、パフォーマンスを最適化するのに役立ちます。ただし、Web サイトが成長し続けるにつれて、ログ ファイルはますます大きくなり、サーバーのストレージ容量とパフォーマンスに負担がかかります。この問題を解決するには、Nginx のログ切断機能を使用して、時間またはサイズに応じてログ ファイルを分割し、ログの効率的な管理と保存を実現します。

Nginx は高性能 Web サーバーであり、その機能と動作は設定ファイルによって柔軟に調整できます。以下では、簡単な例を使用して、ログカットを実装するために Nginx を構成する方法を示します。

まず、Nginx 構成ファイルでログ形式とストレージ パスを指定する必要があります。 Nginx の http モジュールでは、次のコードを追加することでログ形式を定義できます:

http {
    ...
    log_format access '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
    ...
}
ログイン後にコピー

上記のコードでは、log_format ディレクティブは access Log という名前のファイルを定義します。この形式には、クライアント IP アドレス、アクセス時間、リクエスト URL、戻りステータス コードなど、一般的に使用されるログ変数が含まれています。

次に、このログ形式を特定のアクセス ログに適用する必要があります。 Nginx の server ブロックに、次のコードを追加することで、アクセス ログのストレージ パスと形式を指定できます。

server {
    ...
    access_log /var/log/nginx/access.log access;
    ...
}
ログイン後にコピー

上記のコードでは、access_log ディレクティブは、アクセス ログの保存パスと形式を指定します。このうち、/var/log/nginx/access.log はログファイルの保存パス、access は事前に定義したログ形式の名前です。

デフォルトでは、Nginx はすべてのアクセス ログを同じファイルに書き込みます。ただし、このファイルが非常に大きくなった場合は、複数の小さなファイルに分割することが必要になる場合があります。この機能を実現するには、Nginx が提供する logrotate ツールを使用できます。

logrotate は、指定されたルールに従ってログ ファイルを分割できる、一般的に使用されるログ切断ツールです。 nginx という名前の構成ファイルを作成できます。これは、Nginx アクセス ログの分割ルールを定義します。以下に例を示します。

/var/log/nginx/access.log {
    daily
    rotate 7
    missingok
    notifempty
    compress
    postrotate
        /usr/sbin/nginx -s reopen
    endscript
}
ログイン後にコピー

上記のコードでは、/var/log/nginx/access.log は、分割する必要があるログ ファイルのパスです。 daily は日ごとの分割を指定し、rotate 7 はログ ファイルを 7 日間保持することを意味します。 missingok は、ログ ファイルが存在しない場合でもエラーは報告されないことを意味します。 notifempty は、ログ ファイルが空の場合、エラーは報告されないことを意味します。 compress は、新しく生成されたログ ファイルを圧縮することを意味します。 postrotateendscript の間のコードは、ログ ファイルが切り取られた後に実行されます。ここでは、/usr/sbin/nginx -sopen を使用して、Nginx に通知します。ログファイルを再度開きます。

最後に、この nginx 構成ファイルを /etc/logrotate.d/ ディレクトリに配置する必要があります。 logrotate はこのディレクトリを定期的にスキャンし、その中の設定ファイルに従ってログを切り取ります。

上記は、Nginx を使用してログカットを実装する簡単な例です。 Nginx のログ形式とカットルールを適切に設定することで、Web サイトのアクセスログを効果的に管理および保存できます。これにより、ストレージ容量が節約されるだけでなく、サーバーの全体的なパフォーマンスも向上します。この記事がお役に立てば幸いです。

以上がNginxのログカット設定の分析、Webサイトのログストレージの管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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