最近、goaccess を使って nginx ログを分析したいのですが、nginx ログの設定形式が通常の形式ではありません。完全に自分のニーズに合わせて書かれているため、goaccess では分析できず、自分で形式を再定義する必要があります。インターネット上には goaccess の紹介がたくさんありますが、そのほとんどは重要な点に焦点を当て、形式のカスタマイズを無視しているため、カスタマイズについてお話しします。 GoAccess は、コマンド ライン ターミナルで実行されるオープン ソースのリアルタイム Web ログ分析ツールです。このツールは、高速で多様な HTTP ステータス統計を提供するため、管理者はさまざまな種類のデータのカウントを心配する必要がなくなり、複雑なコマンドや多数のパイプライン/正規表現に別れを告げることができます。 nginxログを分析するGoAccessのさまざまな表示モード コマンドラインからフォーマットされたデータを出力します。access.log を使用して静的な視覚化データを生成します。リアルタイムの視覚化データを生成します。コンパイルしてインストールし、--enable-geoip=mmdb を選択した場合は、コマンドを使用するときに設定ファイルを編集し、パラメータ --config-file=/usr/local/etc/goaccess/goaccess.conf を追加する必要があります。パッケージ マネージャーを使用してインストールする場合、これは必要ありません。 コマンドライン出力 GoAccess アクセスログを解析して静的 HTML を生成する goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED を実行し、ブラウザを使用して report.html にアクセスし、すべてのデータが含まれるレポートを表示します。 アクセスログのリアルタイム解析 goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html --config-file=/usr/local/etc/goaccess/goaccess.conf 中国語サポートを追加 リアルタイムモードについては、公式サイト https://rt.goaccess.io/?20200209201008 でデモを確認できます。 異常終了 リアルタイムモードが正常に終了しなかった場合、再度正常に起動できなくなる可能性があります。GoAccess はデフォルトで 7890 ウェブソケット ポートを使用するため、lsof -i:7890 を使用してポートを占有しているプロセス番号を表示し、それを強制終了します。 SSL サポート 暗号化された接続でリアルタイム データを出力する必要がある場合は、--ssl-cert= と --ssl-key= を使用する必要があります。設定後、report.html にアクセスすると、データがまだ静的であることがわかりました。突然、cloudflare cdn を使用していて、ポート 7890 が cloudflare のサポート対象ポート リストにないことを思い出したので、パラメーター --ws-url=wss://server ドメイン名 (ブラウザーはドメイン名のポート 8443 に接続しようとします):8443 --port=8443 を使用してポートを 8443 に変更しました。予想外だったのは、この時点では、プロキシリンクを使用すると report.html に接続でき、リアルタイムの情報を見ることができるのですが、直接接続すると、tcping で示されるように、静的なデータのままであることです。 cloudflareの公式サイトにアクセスすると、次のコンテンツが見つかります。 次のサービスと互換性があるのはポート 80 と 443 のみです。 中国ネットワークのドメイン名が有効になっている中国のデータセンターからのHTTP/HTTPSトラフィックの場合、 リバースプロキシ しかし、接続する方法がないわけではありません。 最終的に、リバースプロキシソリューションを思いつきました。 起動パラメータを --ws-url=wss://yourdomain.com/goaccess --port=7890 に変更します。 nginxサイト設定ファイル/etc/nginx/site-available/defaultを変更し、次の内容を追加します。 場所 /goaccess { proxy_redirect オフ; プロキシパス https://127.0.0.1:7890; プロキシ_http_バージョン 1.1; proxy_set_header アップグレード $http_upgrade; proxy_set_header 接続「アップグレード」; proxy_set_header ホスト $http_host; } サイト設定ファイルで URL 書き換えが有効になっている場合は、/goaccess が影響を受けないように、このパスを書き換えから除外する必要があることに注意してください。 すべての書き換えルールを場所/に置く位置 / { if (-f $request_filename/index.html){ 書き換え (.*) $1/index.html break; } if (-f $request_filename/index.php){ (.*) $1/index.php を書き換えます。 } if (!-f $リクエストファイル名){ (.*) /index.php を書き換えます。 } } 以下は何もする必要はありません場所 /goaccess/ { } その後、nginx を再起動して、report.html に再度アクセスします。左側の歯車にようやく接続が表示されることがわかります。 自分だけが視聴する場合や、IP が公開されることを気にしない場合は、CDN を経由せずに IP を使用して直接接続する方が手間がかかりません。 goaccess を使用して nginx ログを分析する方法についての記事はこれで終わりです。goaccess による nginx ログ コンテンツの分析の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 指定された期間内のすべての日付または月を取得する MySQL ステートメント (ストアド プロシージャの設定やテーブルの追加は不要)
序文これは fastdfs を使用してイントラネット外部に展開された分散ファイルシステムであるためで...
フロントエンド開発者がよく遭遇する問題は、ユーザーに情報を提示するためのポップアップ ウィンドウを作...
Linux はオープン システムです。インターネット上には、既成のプログラムやツールが多数存在します...
インターネット経済の継続的な発展に伴い、インターネット上の専門ウェブサイト、公共サービスウェブサイト...
MySQL 8.0 Windows zipのインストール手順は次のように紹介されています。準備する:...
変換して翻訳するTransform は、変換と変形を意味します。他の幅属性や高さ属性と同様に、CSS...
この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...
MySQL交換パーティションの詳細な例序文exchange パーティションを紹介する前に、まず my...
背景: 一部の実験はサーバー上で完了する必要があります。したがって、リモート サーバー上のコードをロ...
データベース アプリケーションは、アプリケーション システムに不可欠な部分です。リレーショナル デー...
目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...
目次1. Vue2 構文2. Vue3の使用1. コンポーネントのref値を設定する2. コンポーネ...
MySQL は比較的使いやすいリレーショナル データベースです。今日は、win10 システムを再イ...
1. まず、サーバーの mysql にアクセスして権限を変更します。 GRANT オプション付きで、...
目次1. 問題のシナリオ2. 原因分析3. 解決策4. 知識を広げる4.1 クエリの最適化を制限する...