効率的な視覚化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やヒントのまとめ

推薦する

2つのNode.jsプロセスがどのように通信するかの詳細な説明

目次序文異なるコンピュータ上の 2 つの Node.js プロセス間の通信TCPソケットの使用HTT...

一般的でない js 演算演算子の概要

目次2. カンマ演算子3. JavaScript Null 結合演算子 (??) 4. JavaSc...

nginx ロケーション優先度の詳細な説明

場所表現タイプ~ は大文字と小文字を区別して通常の一致を実行することを示します~*は大文字と小文字を...

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします1. Dockerをインストールする...

AIX マウント NFS の書き込み効率が低い場合の解決策

NFSが提供するサービスマウント: サーバー上で /usr/sbin/rpc.mountd サーボ ...

mysql5.7.17.msi インストール グラフィック チュートリアル

mysql-5.7.17.msiのインストール、スクリーンショットに従ってください、ステップバイステ...

docker ベースで Prometheus+Grafana を構築する手順の詳細説明

1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...

React useEffect の理解と使用

目次繰り返しレンダリングループを避ける副作用の除去についてReact16.8 の新しい useEff...

ドロップダウンメニュー効果を実現するJavaScript

参考までに、JavaScriptを使用してドロップダウンメニューを実装します。具体的な内容は次のとお...

vue+drf+サードパーティのスライディング検証コードアクセスの実装

目次1. 背景2. 検証プロセス3. 検証を作成する4. フロントエンドコード4.1 コアjsファイ...

VueRouterルーティングの詳細な説明

目次vueルーター1. ルーティングの概念を理解する1.1 ルーティングとは何ですか? 1.2. バ...

HTTP および HTTP コラボレーション Web サーバー アクセス フロー図

Web サーバーは、独立したドメイン名を持つ複数の Web サイトを構築できるほか、通信経路上のトラ...

Vueはechartを使用してラベルと色をカスタマイズします

この記事では、参考までに、echartを使用してタグと色をカスタマイズするVueの具体的なコードを紹...

Vue ルーターにパラメータを渡すときにページを更新するとパラメータが失われる問題に対処する方法

目次概要方法1: params経由でパラメータを渡す方法2: クエリを通じてパラメータを渡す方法3:...