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

推薦する

JavaScript の高度なプログラミングの基本参照型

目次1. 日付2. 正規表現3. オリジナルパッケージタイプ序文:参照値(オブジェクト)は、 Dat...

MySQLの主キーとユニークキーの重複挿入の解決策の詳細な説明

目次解決: 1. 無視する2. 交換する3. 重複キーの更新についてデータを挿入するときに、重複した...

CSS 透明ボーダー背景クリップマジック

この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...

MySQLテーブル内の重複データをクエリする方法

hk_test(ユーザー名、パスワード) に値を挿入 ('qmf1', '...

MySQLインデックスの失敗の典型的なケース

目次典型的なケース付録: 一般的なインデックス障害の状況典型的なケース次の構造を持つ 2 つのテーブ...

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

MySQLデータベースのリアルタイムバックアップの知識ポイントを詳しく解説

序文リアルタイムのデータベース バックアップの必要性は非常に一般的です。MySQL 自体はレプリケー...

Vueは透かし効果を簡単に実現します

序文: Vueプロジェクトで透かし効果を使用するには、コンテナを指定できます効果画像: 1. コンテ...

HTMLの空リンクの役割についての簡単な説明

空のリンク:つまり、ターゲット エンドポイントとのリンクはありません。フォーマット <a hr...

Linux でショートカットアイコンを設定する方法

序文Linux でショートカットを作成すると、アプリケーションをより速く開くことができます。ここで、...

Ubuntu 18仮想マシンのクローン作成後に同じIPアドレスになる問題の解決方法

序文最近、仮想マシンを使用して Ubuntu 18.04 をインストールしました。クローン作成後、I...

データベース管理における 19 の MySQL 最適化方法

MySQL データベースを最適化すると、データベースの冗長性を削減できるだけでなく、データベースの実...

あなたが知らない Linux KDE アプリケーション 11 選

翻訳Kool Desktop Environment の略称。 Linux、Unix、FreeBSD...

nginx プロキシでの複数の 302 応答の解決策 (nginx Follow 302)

proxy_intercept_errors と recursive_error_pages を使...

ab ツールを使用してサーバー上で API ストレス テストを実行します。

目次1 システムスループットの簡単な紹介2 試験方法2.1 クライアントテストツール2.1.1 GE...