ホームページ バックエンド開発 PHPチュートリアル 純粋に手動で Nginx ログを操作する

純粋に手動で Nginx ログを操作する

Aug 08, 2016 am 09:22 AM
access buffer log quot request

Nginx ログはほとんどの人にとって未知の宝物です。ログ分析システムを構築した私のこれまでの経験を要約して、Nginx ログの純粋に手動による分析方法を共有したいと思います。 Nginx ログ関連の設定には、access_log と log_format の 2 つの場所があります。 デフォルト形式:
access_log <span>/</span>data<span>/</span>logs<span>/</span>nginx<span>-</span>access<span>.</span><span>log</span><span>;</span>log_format old <span><em>'$remote_addr [$time_local] $status $request_time $body_bytes_sent '</em></span><span><em>'"$request" "$http_referer" "$http_user_agent"'</em></span><span>;</span>
ログイン後にコピー
Nginx を使用したことのあるほとんどの人は、デフォルトの Nginx ログ形式構成とログの内容に精通していると思います。ただし、デフォルトの構成と形式は、読み取り可能ではあるものの、計算するのが困難です。 Nginx ログ フラッシュ関連の戦略を設定できます: たとえば、バッファを設定すると、バッファが 5 秒未満の場合、バッファは次のようにフラッシュされます。
access_log <span>/</span>data<span>/</span>logs<span>/</span>nginx<span>-</span>access<span>.</span><span>log</span> buffer<span>=</span><span><em>32k</em></span> flush<span>=</span><span><em>5s</em></span><span>;</span>
ログイン後にコピー
これは、ログとログをリアルタイムで表示するかどうかを決定します。 ディスク IO への影響。 Nginx ログには、デフォルト設定では表示されない、記録できる変数が多数あります: 例: リクエスト データ サイズ: $request_length
戻りデータ サイズ: $bytes_sent
リクエスト時間: $request_time
使用された接続番号: $ connection
現在の接続のリクエスト数: $connection_requests Nginx のデフォルト形式は計算可能ではありません。制御文字 ^A (ctrl+) を使用するなど、計算可能な形式に変換する方法を見つける必要があります。 v Mac の場合は ctrl+a)、各フィールドを分割します。 log_format の形式は次のようになります:
log_format new <span><em>'$remote_addr^A$http_x_forwarded_for^A$host^A$time_local^A$status^A'</em></span><span><em>'$request_time^A$request_length^A$bytes_sent^A$http_referer^A$request^A$http_user_agent'</em></span><span>;</span>
ログイン後にコピー
その後、一般的な Linux コマンド ライン ツールを使用して分析できます:
  • アクセス頻度と回数が最も多い URL を見つけます:

    cat access.log | awk -F ‘^A’ ‘{print $10}’ | uniq sort -c

  • 500 件の不正なアクセスの現在のログ ファイルを検索します。

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’

  • 現在のログ ファイルで 500 個のエラーの数を見つけます。

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ wc -l

  • ある分間の 500 件のエラー アクセス数を求めます。

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ wc-l

  • 1 秒以上かかる遅いリクエストを検索します。

    tail -f access.log | awk -F ‘^A’ ‘{if($6>1) print $0}’

  • 特定のビットのみを表示したい場合:

    tail -f access.log | awk -F ‘^A’ ‘{if($6>1) print $3″|”$4}’

  • 502 個のエラーが最も多い URL を見つけます。

    cat access.log | awk -F ‘^A’ ‘{if($5==502) print $11}’ ソート | 200 の空白ページを検索

    cat access.log | awk -F '^A' '{if($5==200 && $8
  • リアルタイムで表示ログデータの流れ

    tail -f access.log | cat -e
  • または

    tail -f access.log | tr '^A' '|'

    概要
  • このアイデアに従って、次のような他の多くの分析を行うことができます。 UA として 最もアクセス頻度の高い IP、リクエストの戻りパケット サイズの分析など。 これは大規模な Web ログ分析システムのプロトタイプです。この形式は、その後の大規模なバッチ処理やストリーミング計算にも非常に便利です。

    上記は、さまざまな側面を含む、Nginx ログを手動で操作する方法の紹介です。PHP チュートリアルに興味のある友人に役立つことを願っています。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    C#でマルチスレッドの利点は何ですか? C#でマルチスレッドの利点は何ですか? Apr 03, 2025 pm 02:51 PM

    マルチスレッドの利点は、特に大量のデータを処理したり、時間のかかる操作を実行したりするために、パフォーマンスとリソースの使用率を改善できることです。複数のタスクを同時に実行できるようになり、効率が向上します。ただし、あまりにも多くのスレッドがパフォーマンスの劣化につながる可能性があるため、CPUコアの数とタスク特性に基づいてスレッドの数を慎重に選択する必要があります。さらに、マルチスレッドプログラミングには、同期メカニズムを使用して解決する必要があるデッドロックや人種条件などの課題が含まれ、同時プログラミングの確固たる知識が必要であり、長所と短所を比較検討し、それらを慎重に使用する必要があります。

    SQL IFステートメントの使用方法 SQL IFステートメントの使用方法 Apr 09, 2025 pm 06:12 PM

    SQLステートメントは、SQLステートメントを条件付きで実行するために使用され、構文は次のようになります。if(条件)then {ステートメント} else {ステートメント} end if;。条件は有効なSQL式である可能性があり、条件が真の場合、then句を実行します。条件が偽の場合は、else句を実行します。ステートメントをネストできる場合、より複雑な条件付きチェックを可能にします。

    rootとしてmysqlにログインできません rootとしてmysqlにログインできません Apr 08, 2025 pm 04:54 PM

    ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

    ノード環境で403エラーを返すサードパーティのインターフェイスを回避する方法は? ノード環境で403エラーを返すサードパーティのインターフェイスを回避する方法は? Apr 01, 2025 pm 02:03 PM

    ノード環境で403エラーを返すサードパーティのインターフェイスを回避する方法。 node.jsを使用してサードパーティのWebサイトインターフェイスを呼び出すと、403エラーを返す問題が発生することがあります。 �...

    ドメイン全体のvue axiosによって引き起こされる「ネットワークエラー」を解決する方法 ドメイン全体のvue axiosによって引き起こされる「ネットワークエラー」を解決する方法 Apr 07, 2025 pm 10:27 PM

    VUE axiosのクロスドメイン問題を解決する方法は次のとおりです。CORSプラグインを使用してWebSockingを使用してJSONPを使用してAxiosプロキシを使用してサーバー側にCORSヘッダーを構成します。

    easywechat 5.5でcomponent_verify_ticketを効率的に取得する方法は? easywechat 5.5でcomponent_verify_ticketを効率的に取得する方法は? Apr 01, 2025 pm 12:42 PM

    easywechat5.5でcomponentverifyを取得します...

    Apache用のZendを構成する方法 Apache用のZendを構成する方法 Apr 13, 2025 pm 12:57 PM

    ApacheでZendを構成する方法は? Apache WebサーバーでZend Frameworkを構成する手順は次のとおりです。ZendFrameworkをインストールし、Webサーバーディレクトリに抽出します。 .htaccessファイルを作成します。 Zend Application Directoryを作成し、index.phpファイルを追加します。 Zend Application(Application.ini)を構成します。 Apache Webサーバーを再起動します。

    Debian Apacheログを使用してWebサイトのパフォーマンスを向上させる方法 Debian Apacheログを使用してWebサイトのパフォーマンスを向上させる方法 Apr 12, 2025 pm 11:36 PM

    この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

    See all articles