効率的な視覚化Nginxログ表示ツール

効率的な視覚化Nginxログ表示ツール

導入

Rhit は、標準フォルダー (gzip 圧縮ファイルも許容) から Nginx ログ ファイルを読み取り、分析してカウントし、不要な一時ファイルやデータを生成せずにコンソールの視覚的なテーブルに表示できます。

日付、応答値、リクエスト元などでフィルタリングしてマッチングし、分析を行うことができます。Rhit は非常に効率的で、1 秒あたり数百万行のログ データを処理できます。

以下は、1 月のログでステータス コード 1xx および 2xx を検索した結果です。

プロジェクトのアドレスは次のとおりです。

https://github.com/Canop/rhit

インストール

コンパイルされたバイナリ ファイルを直接ダウンロードして使用しますが、シェルが rhit バイナリ ファイルを見つけられることを確認する必要があります。これに対処する簡単な方法は、それを /usr/local/bin ディレクトリに配置し、実行権限を追加することです。

chmod +x rhit を実行する  
// ダウンロードアドレス: https://dystroy.org/rhit/download

crates.io からインストールします。Rust 環境に応じて、次のコマンドを使用してインストールします。

貨物インストールrhit

ソース コードのインストールは Rust 環境に依存します。GitHub ソース コードをクローンした後、rhit フォルダーに入り、次のコマンドを実行します。

貨物をインストール --path 。  

表示フィールド

rhit はデフォルトのディレクトリで nginx ログ ファイルを自動的に開くことも、コマンド ライン パラメータでログ パスを指定することもできます。

私の/アーカイブされた/ログ  

一般的な nginx ログ行は次のとおりです。

178.133.125.122 - - [21/Jan/2021:05:49:52 +0000] "HEAD /broot/download/x86_64-pc-windows-gnu/broot.exe HTTP/1.1" 200 0 "-" "Mozilla/4.0 (互換; MSIE 6.0; Windows NT 5.1)"

日付、リモート IP アドレス、パス、送信バイト数などの複数のフィールドで構成されます。 rhit は、テーブルをソートするためのフィールドのリストを実行できます。指定しない場合は、デフォルトで日付、ステータス コード、ソース、パス別に表示されます。複数のフィールドを指定する場合は、-f date,status のようにカンマで区切ります。すべてのフィールドを表示するには、-f all を使用します。

日付ベース。 --field date または短縮形の -f date を使用します。デフォルトでは、棒グラフの長さはヒット数に基づいていますが、送信されたバイト数に基づいてソート キーを変更できます。

IP ベース。デフォルトでは、リモート IP は表示されません。 rhit -f ip を使用すると表示できます。

リクエスト方法に基づきます。 HTTP リクエスト メソッドはデフォルトでは表示されません。 rhit -f method を使用すると表示できます。

パスベース。コマンドはrhit -f path

Referer に基づきます。コマンドはrhit -f refです

ステータスコードに基づきます。コマンドはrhit -f statusです

フィルター

Rhit には、結果リストをフィルタリングし、表示したいデータや表示したくないデータを表示するためのフィルターがいくつか用意されています。

日付でフィルタリングします。日単位の精度で、日付の形式は年/月/日です。たとえば、2021/2/15 から 2021/2/20 までのデータをフィルタリングできます。また、特定の時間より大きい、特定の時間より小さい、または特定の時間を含まないデータをフィルタリングすることもできます (「>」、「<」、「!」記号を使用)。

リモート IP でフィルタリングします。パラメータは -i で、特定の IP をフィルタリングするか、特定の IP を除外します (「!」記号を使用)。

リクエストメソッドでフィルタリングします。パラメータは -m で、特定のメソッドをフィルタリングしたり、特定のメソッドを除外したりします。

リクエスト パスでフィルターするには、-p パラメータを使用します。これは、完全一致または正規表現にすることができます (たとえば、すべてのパスが "download" で始まり "exe" で終わる場合、パラメータは -p 'download.*exe$' です)。

リファラーでフィルタリングします。パラメータは -r で、パスによるフィルタリングの構文と一致しています。

ステータス コードでフィルターします。パラメータは -s で、特定のステータス コードをフィルタリングしたり、特定のステータス コードを除外したりします。

複合スクリーニング。上記の方法は任意の方法で組み合わせることができます。

ソートキー

デフォルトでは、すべてのテーブルはソートキーであるヒット数でソートされ、ヒストグラムを含め、ソートキーのすべての値がピンク色で表示されます。送信されたバイト数にもっと興味がある場合は、-kb を使用してソート キーをバイトに変更できます。

Rhit の効率的なビジュアル Nginx ログ表示ツールに関するこの記事はこれで終わりです。Rhit Nginx ログ表示ツールに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx でアクセスログをリアルタイムで表示できるようにする詳細な手順

<<:  HTML に FLASH へのリンクを追加し、すべての主要ブラウザと互換性を持たせる方法

>>:  HTML5で見逃せないAPIやヒントのまとめ

推薦する

Vueインスタンスで$refsを使用する際の注意点

開発の過程では、インスタンスの vm.$refs(this.$refs) を使用して、ref で登録...

CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します

1. CSSスタイルは、テキストが長すぎる場合に省略記号を表示する問題を解決します1. 一般的なスタ...

Docker Compose を使用して nginx のロード バランシングを実装する方法

Dockerネットワーク管理とコンテナIP設定に基づいてNginxロードバランシングを実装するすべて...

MySQLクエリ文の実行プロセスの詳細な説明

目次1. クライアントとサーバー間の通信方法2. クエリキャッシュ3. クエリ最適化処理4. クエリ...

ナビゲーションバーコンポーネントをVueでカプセル化する

はじめに:ナビゲーション バーなどのコンポーネント ベースのアイデアを使用して機能モジュールを完全に...

Mysql8.0はソート問題を解決するためにウィンドウ関数を使用する

MySQL ウィンドウ関数の紹介MySQL は MySQL 8.0 以降、ウィンドウ関数をサポートし...

MySQLがデータの削除を推奨しない理由

目次序文InnoDB ストレージ アーキテクチャInnodb テーブルスペースインドストレージディス...

CSS3 フィルターの違いと応用の詳しい説明:ドロップシャドウフィルターとボックスシャドウ

標準 CSS3 を使用して要素の影の効果を実現するには、2 つの手順があります。1 つ目は一般的なb...

HTML チュートリアル: 順序付きリスト

<br />原文: http://andymao.com/andy/post/103.h...

MySQL での Join の使用に関する詳細な説明

前の章では、1 つのテーブルからデータを読み取る方法を学習しました。これは比較的簡単ですが、実際のア...

Nginx で IP と IP 範囲をブロックする方法

前面に書かれたNginx は単なるリバース プロキシおよび負荷分散サーバーではなく、電流制限、キャッ...

Vue のループフォーム項目例の詳細な説明

場合によっては、ユーザーがボタンをクリックして同様のフォームを追加し、クリックごとに 1 回追加でき...

nginx を https をサポートするように設定するためのサンプル コード

1. はじめにあなたのウェブサイトはまだインターネット上に公開されたままですか?ここでは、HTTPS...

値の転送を実現するために、2つの同じレベルのコンポーネントをVueで作成します。

Vue コンポーネントは接続されているため、コンポーネント間で値を渡す必要があるのは避けられません...

最もよく使われるHTMLエスケープシーケンス

HTML では、<、>、& などは特別な意味を持ち (<、> はリン...