ホームページ > 運用・保守 > Nginx > Nginx のアクセス ログとエラー ログを構成する方法

Nginx のアクセス ログとエラー ログを構成する方法

WBOY
リリース: 2023-05-16 08:10:05
転載
1888 人が閲覧しました

Nginx は、インターネット上のいくつかの最大規模のサイトの負荷を処理するオープンソースの高性能 HTTP およびリバース プロキシ サーバーです。 NGINX Web サーバーを管理するときに実行する最も一般的なタスクの 1 つは、ログ ファイルのチェックです。

ログの構成方法と読み取り方法を知ることは、詳細なデバッグ情報を提供するため、サーバーまたはアプリケーションの問題のトラブルシューティングを行うときに非常に役立ちます。

Nginx は、アクセス ログとエラー ログという 2 種類のログを使用してイベントを記録します。アクセス ログにはクライアント要求に関する情報が記録され、エラー ログにはサーバーとアプリケーションの問題に関する情報が記録されます。

Nginx アクセス ログの構成

Nginx は、顧客のリクエストが処理されるたびに、アクセス ログに新しいレコードを生成します。各イベント レコードにはタイムスタンプが含まれており、クライアントと要求されたリソースに関するさまざまな情報が含まれています。アクセスログには、訪問者の位置、訪問者が訪問したページなどが表示されます。

log_format ディレクティブを使用すると、ログの形式を定義できます。 access_log ディレクティブは、ログ ファイルの場所と形式を有効にして設定します。

access_log コマンドの最も基本的な構文は次のとおりです。

access_log log_file log_format;
ログイン後にコピー

ここで、log_file はログ ファイルのフル パスです。 log_format は、ログ ファイルに使用される形式です。アクセス ログは、 httpserver または location ディレクティブのコンテキストで有効にすることができます。

デフォルトでは、Nginx メイン設定ファイルの http ディレクティブは、グローバル アクセス ログ形式を設定します。

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

/etc/nginx/nginx.conf

メンテナンス性を高めるため、サーバーごとに個別のアクセス ログ ファイルを設定することをお勧めします。 server ディレクティブに設定された access_log ディレクティブは、http ディレクティブに設定された access_log を上書きします。

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

/etc/nginx/conf.d/domain.com.conf

ログ形式が指定されていない場合、Nginx は次のように事前定義された組み合わせ形式を使用します:

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';
ログイン後にコピー

ログ形式を変更するには、デフォルト設定をオーバーライドするか、新しい設定を定義します。たとえば、 # Add で XX-Forwarded-For ヘッダーの値を追加することで combined 形式を拡張する main という名前の新しいログ形式を定義します。次の定義ディレクティブを ##http または server に追加します:

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

新しいログ形式を使用するには、次のようにログ ファイルの後に名前を指定します:

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

ただし、アクセス ログは非常に有益な情報を提供します。ただし、ディスク領域を占有するため、サーバーのパフォーマンスに影響を与える可能性があります。サーバーのリソースが不足していてサイトがビジー状態の場合は、アクセス ログを無効にすることができます。これを行うには、

access_log ディレクティブの値を off に設定します。理論的には、このような状況は発生せず、Nginx は以前のログ ファイルを自動的に削除します。

access_log off;
ログイン後にコピー

構成エラー ログ

Nginx は、アプリケーションおよび一般的なサーバー エラー メッセージをエラー ログ ファイルに書き込みます。 Web アプリケーションでエラーが発生した場合、問題のトラブルシューティングを開始する最初の場所はエラー ログです。

error_log ディレクティブは、エラー ログの場所と重大度レベルを有効にして設定します。次の形式をとり、 httpserver または location コンテキストで設定できます:

error_log log_file log_level
ログイン後にコピー

log_levelパラメータ ログレベルを設定します。以下に、重大度の低いものから高いものまで、レベルを示します。

debug
info
notice
warn
error
crit
alert
emerg
ログイン後にコピー

各ログ レベルには、より高いレベルが含まれます。たとえば、ログ レベルを

warn に設定すると、Nginx は errorcritalert および emerg もログに記録します。 ### 情報。 log_level パラメータが指定されていない場合、デフォルトは error です。デフォルトでは、error_log ディレクティブは、メイン nginx.conf ファイル内の http ディレクティブのコンテキストで定義されます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:plain;">http { ... error_log /var/log/nginx/error.log; ... }</pre><div class="contentsignin">ログイン後にコピー</div></div>/etc/nginx/nginx.confアクセス ログ付き 同様に、サーバーごとに個別のエラー ログ ファイルを設定することをお勧めします。これにより、http ディレクティブ コンテキストなどの上位レベルの設定がオーバーライドされます。たとえば、domain.com のエラー ログを

warn

に設定するには、次のようにします: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:plain;">http { ... error_log /var/log/nginx/error.log; ... server { server_name domain.com error_log /var/log/nginx/domain.error.log warn; ... } }</pre><div class="contentsignin">ログイン後にコピー</div></div> 構成ファイルを変更するたびに、変更を適用するには Nginx サービスをリロードする必要があります効果。

ログ ファイルの場所

Ubuntu、CentOS、Debian などのほとんどの Linux ディストリビューション。デフォルトでは、アクセス ログとエラー ログは

/var/log/nginx

ディレクトリにあります。 Nginx ログ ファイルを読んで理解する

cat

lessgrepcut # を使用できます##、awk およびその他のコマンドは、nginx ログ ファイルを開いて解析します。以下は、デフォルトの Nginx ログ形式を使用したアクセス ログ ファイルの記録です:

192.168.33.1 - - [15/Oct/2019:19:41:46 +0000] "GET / HTTP/1" 200 396 "-" "Mozilla/0 (X11; Linux x86_64) AppleWebKit/536 (KHTML, like Gecko) Chrome/38120 Safari/536"
ログイン後にコピー

让我们细分Nginx日志文件记录的每个字段意味着什么:

  • $remote_addr – 192.168.33.1 -发出请求的客户端的IP地址。

  • $remote_user  – - -HTTP身份验证用户。未设置用户名时,此字段显示 - 。

  • [$time_local] – [15/Oct/2019:19:41:46 +0000]

本地服务器时间。

  • "$request"  – "GET / HTTP/1.1" -请求类型,路径和协议。

  • $status  – 200 -服务器响应代码。

  • $body_bytes_sent  – 396 -服务器响应的大小(以字节为单位)。

  • "$http_referer"  – "-" -引荐网址。

  • "$http_user_agent"  – Mozilla/5.0 ... -客户端的用户代理(网络浏览器)。

使用 tail 命令实时观看日志文件记录: tail -f access.log

以上がNginx のアクセス ログとエラー ログを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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