ウェブサーバーログのロゴ

nginx、Apache、IIS 新着

接続する ウェブサーバーログ Excel、Sheets、AIへ

アクセスログは既にテーブルになっています。クエリを開始してください。nginx、Apache、Caddy、IIS は、数十年にわたって安定している形式ですべてのリクエストをディスクに書き込みますが、それをクエリする人はほとんどいません。クエリ ストリームをログ フォルダーに向けると、それらのファイルは SQL テーブルになります。ステータス コード、応答時間、クライアント IP、パス、ユーザー エージェント。ローテーションと .gz 保管庫も含まれており、途中に丸太輸送業者は介在しません。

1繋がり
0受信ポート
読み取り専用強制された
4つのウェブログ形式 nginx · Apache · Caddy · IIS 回転データと.gzアーカイブが含まれています 読み取り専用 · サーバーには何もインストールされていません
大きなアイデア

ログフォルダは、グループ化や結合が可能なテーブルになります。

Query Streamsは、Webサーバーが既に書き込んでいるファイルを読み込み、フォーマットを固定し、型付きの列を提供します。サーバー上にエージェントは不要で、データ転送パイプラインも不要、インデックスのメンテナンスも不要です。また、パーサーが読み取れない行は、理由とともに行として保持され、黙って削除されることはありません。

ログフォルダホスト上で
アクセスログキャディー
access.log.2.gznginx
u_ex260909.logIIS

ローテーション、圧縮アーカイブ、再読み込みファイル - 処理済み

slow-errors.sqlSQL
セレクト パス、
       カウント(*) AS ヒット、
       ラウンド(平均(duration_seconds) * 1000) AS MS
フロム   ファイルセット.イベント
どこ  ステータス >= 500
GROUP BY パス
ORDER BY ヒット DESC
結果5xx パスによる
パスヒットMS
/api/export4128,140
/api/report963,502
/チェックアウト311,208
/検索7944

同じクエリでアプリケーションデータベースに結合します

サーバーが既に書き込んでいるファイルを、レポート作成用のテーブルとして活用できます。

サーバー

サーバー4台、フォーマット4種類、設定不要

各カードには、Query Streamsがそのサーバー上で読み込む正確なファイル名と、それらのファイルの保存場所が示されます。この機能を利用するためにログ設定を変更する必要はありません。デフォルトのフォーマットがサポートされています。

サポートされているウェブサーバーログ

4つのフォーマット・4つのサーバー
nginxアクセスとエラー
  • アクセスログ デフォルトの結合形式
  • エラーログ レベル、PID、接続、メッセージ
  • いつもの /var/log/nginx
  • 追記;番号付き回転が続く
Apache HTTPサーバーアクセス
  • アクセスログ 複合形式および共通形式
  • 1つのパーサーでApacheとnginxをカバーできます。アクセス形式は同じです。
  • /var/log/apache2、または httpd RHEL上で
  • 追記;番号付き回転が続く
キャディーキャディ2 JSON
  • アクセスログ リクエストごとに1つのJSONオブジェクト
  • TLSサーバー名、バージョン、セッション再開情報を含む
  • 応答時間(マイクロ秒単位)
  • 転がす access-<タイムスタンプ>.log.gz各メンバーが一度ずつ読む
Microsoft IISW3C拡張版
  • u_ex*.log W3C拡張フォーマット
  • の #フィールド: ヘッダーによって列が決まるので、フィールドの選択に従います
  • C:\inetpub\logs\LogFiles\W3SVC<サイト>
  • 毎日新しい日付付きファイルが作成され、ファイル名は変更されない。
もっと来るこれらは始まりであって、限界ではない

エージェントのリリースごとに、新しいWebサーバーおよびプロキシのログ形式が追加されます。エージェントは常に最新の状態に保たれるため、後から追加された形式は、サーバーに何も手を加えることなくコネクタに表示されます。

4つのパーサーはすべて、実際に取得したログファイル(ローテーションや圧縮アーカイブを含む)に対して構築およびテストされました。Caddyプロファイルは、自社の運用ホストから直接取得したログに対してテストされました。
すべての地域

あらゆるエッジからのログにアクセスします。 彼らがどこに着陸するかを読んでください

リクエストが必ずしも同じ大陸に2回到達するとは限りません。エッジは1つのリージョンにあり、オリジンは別のリージョンにあり、オフィスでは古いシステムがまだ稼働しています。各拠点ではネットワークエージェントが実行され、ログファイルが到着した場所でログファイルを読み取り、クエリストリームにダイヤルアウトします。ファイアウォールから見ると、これは通常の送信接続であり、開くべきものはなく、VPNを構築する必要もなく、ログシッパーを稼働させ続ける必要もありません。

EU西側 エッジでのCaddy、タイムスタンプによるJSONアクセスログ 発信
アメリカ東部 nginx origin の背後には logrotate と .gz アーカイブ 発信
本社 内部アプリケーションを1つだけ提供しているIISサーバー 発信

3つのアウトバウンド接続、それらを照会する場所は1つだけ。インバウンドポートもVPNもファイアウォールの変更も不要。

各拠点につきエージェント1名

エージェントは単一のログファイルではなく場所全体をカバーし、1 つの場所では多数のホストのフォルダー ツリーが単一のコネクタになります。各行には、 サイト無料プランではエージェントが1体実行され、上位プランではより多くのエージェントが実行されます。

1つのリージョン=1つのエージェント=多数のホスト

開けるものはありません

エージェントは暗号化された送信接続を1つ確立し、送信リクエストと受信データの両方がその接続を介して送信されます。受信ポートもVPNもファイアウォールの変更も不要で、ログを第三者に転送する仕組みもありません。

接続は1つ、双方向

地域をまたがる単一のクエリ

すべての情報源 フェデレーションクエリ 独自のエージェントを指定することで、単一のステートメントで、あるリージョンのエッジを別のリージョンのオリジンの隣に配置したり、どちらか一方をアプリケーションデータベースに結合したりできます。BusinessおよびEnterpriseプランに含まれています。

2つの領域 → 1つの結果セット

彼らは常に最新の情報を把握している。

エージェントは自動的に更新されるため、後のリリースで追加されたログ形式は、ユーザー自身でデプロイしなくてもすべてのリージョンに反映されます。そのため、上記のリストは固定されたものではなく、あくまで出発点となるのです。

エージェントと共に新しいフォーマットが登場

難しいところ

回転処理があるため、これは単なるCSVインポートではありません。

ウェブログは常に変化し、ローテーション、名前変更、圧縮、再生成が繰り返されます。こうした変化に適切に対応し、欠落なく、行を二重に数えることなく処理することが、作業の大部分を占めます。

番号付き回転

従来のlogrotateによるファイル名変更:今日のファイルは名前がそのまま維持され、昨日のファイルは番号が1つ下がります。Query Streamsはファイル名ではなくコンテンツを追跡します。

access.log → access.log.1 → access.log.2.gz

日付付きファイル名

IISはファイルの名前を変更することはありません。毎日、日付をファイル名に含んだ新しいファイルを開きます。古いファイルは元の状態のまま保持されるため、一度読み込まれた後はそのまま残されます。

u_ex260909.log · u_ex260910.log

圧縮アーカイブ

ローテーションされたログは通常、gzip圧縮されます。クエリストリームの読み取り .gz メンバーは既に配置済みなので、何も解凍したり、別の場所に移動したりする必要はありません。

access-2026-09-08T03-00-00.000.log.gz

何も二度カウントされない

各ファイルは最初の4KBで識別されるため、名前が変更されたファイルも同じファイルとして認識されます。ローリング重複ウィンドウは、書き込み処理が末尾を再生する際に重複部分を検出します。

4KBのプレフィックスハッシュ・20,000レコードのウィンドウ

スキーマ

実際に取得できる列

タイムスタンプが付いた単なるテキストの塊ではありません。各フォーマットは、直接フィルタリング、グループ化、集計が可能な型付き列に解析されます。

nginxとApacheのロゴ
統合アクセスログnginx · Apache
クライアントIP認証方法パスhttp_versionステータスバイト紹介者エージェント
nginxのロゴ
エラーログnginx
レベルpidティッド繋がりメッセージ
キャディのロゴ
JSONアクセスログキャディ2
クライアントIPリモートIPリモートポート方法パスhttp_versionステータスバイトバイト読み取り期間(秒)TLSサーバー名tls_versiontls_resumedユーザーIDレベルロガーメッセージデータ
Microsoft IIS のロゴ
W3C拡張ログMicrosoft IIS
s_ipc_ipスポーツcs_methodcs_uri_stemcs_uri_querycs_usernamecs_user_agentsc_statussc_substatussc_win32_status所要時間

各行には イベント時間 そして サイトそのため、1つのクエリが複数のホストにまたがっても、そのクエリの元のファイルが疑われることはありません。

一つの接続、あらゆる表面

ウェブサーバーのログデータが保存される場所

ログファイルは行き止まりではありません。フォルダを一度接続すれば、同じ読み取り専用接続でQuery Streamsがサポートするすべてのサーフェスにデータが供給されます。2回目の設定も、データの2回目のコピーも不要で、データベースコネクタとの処理の違いもありません。

対応済み

WebサーバーのログをExcelに出力

Microsoft Excel · Excelアドイン

ウェブサーバーのログ結果をリアルタイムでワークシートに直接取り込み、必要に応じて更新できます。対応プラットフォームは、デスクトップ版Excel、Excel Online、Microsoft 365です。

Excelの仕組み
対応済み

ウェブサーバーのログをGoogleスプレッドシートに記録する

Sheetsアドオン

サイドバーから保存済みのWebサーバーログクエリを実行し、結果をシートにドラッグ&ドロップします。共有されている共同作業者は、各自でシートを更新できます。

Googleスプレッドシートの仕組み
対応済み

Webサーバーログ MCPサーバー

Claude、Cursor、MCPクライアント・MCPサーバー

AIアシスタントには、正しいSQLを作成するために必要なスキーマを含むWebサーバーログへの読み取り専用アクセス権を与えます。チャットには認証情報は含めません。

MCPの仕組み
対応済み

WebサーバーログREST API

HTTPエンドポイント

認証済みのJSONエンドポイントとしてWebサーバーログクエリを公開し、あらゆるアプリケーションから呼び出し可能です。OpenAPI 3.1仕様に準拠し、Postman、Insomnia、Hoppscotch用の既製コレクションも用意されています。データベースポートは開放されません。

REST APIの仕組み
対応済み

WebサーバーのログをAirtableに記録する

自動化プラットフォーム

ウェブサーバーのログ行をスケジュールに基づいてAirtableに同期したり、Airtableの自動化スクリプト内で取得したりできます。

Airtableの仕組み
対応済み

WebサーバーのログをBaserowに記録する

自動化プラットフォーム

RESTエンドポイント経由でWebサーバーのログからBaserowテーブルにデータを供給します(セルフホスト型またはBaserowクラウド)。

Baserowの仕組み
対応済み

ウェブサーバーのログをSeaTableに記録する

自動化プラットフォーム

ファイルをエクスポートしたりデータベースを公開したりすることなく、Webサーバーのログデータを使用してSeaTableのベースを常に最新の状態に保つ。

SeaTableの仕組み
対応済み

WebサーバーのログをSmartsheetに記録する

自動化プラットフォーム

ウェブサーバーのログ結果をSmartsheetグリッドにプッシュすることで、計画やレポートが先週のエクスポートデータではなく、ソースシステムから読み込まれるようにします。

Smartsheetの仕組み
対応済み

WebサーバーのログをAnvilに記録する

Anvil Works · アプリプラットフォーム

Anvil Pythonアプリをバックアップする際に、データベースの認証情報をアプリに埋め込む代わりに、RESTエンドポイント経由でWebサーバーログを使用します。

Anvilの仕組み
対応済み

WebサーバーのログをPower BIに記録する

Power Query M

生成された Power Query M を Power BI アドバンスト エディターに貼り付けると、レポートは HTTPS 経由でライブ Web サーバーのログ結果を読み取ります。ODBC ドライバーもデータベース ポートも開かれません。

Power BI の仕組み
対応済み

ウェブサーバーのログにアラートとレポートが記録される

Slack · Discord · メール · Webhook

ウェブサーバーのログクエリをスケジュール設定し、その行をSlack、Discord、メール、または署名付きWebhookに送信するか、行数、しきい値、または変化率が設定した値を超えるまでメッセージを保留することができます。

アラートとレポートの仕組み
アラートカードはログを確認する上で特に注目すべきものです。5xx件数に対するスケジュールされたクエリは、誰も画面上にいない状態でも実行できるため、急増した件数は自動的にSlackに通知されます。ログに関する詳細な手順ガイドはまだ作成されていませんが、リンク先のページで各インターフェースの仕組みについて説明しています。

私たちが意図的に読まないもの

本番環境のアクセスログには、レポートテーブルに表示したい以上の情報が含まれています。Caddy の JSON フォーマットでは、リクエストとレスポンスのヘッダーマップ全体が記録され、それらには通常、セッション Cookie とベアラートークンが含まれます。Caddy プロファイルでは、 リクエストヘッダー そして resp_headers 宣言によってのみ有効になります。フィルターを有効にして後から変更する必要はありません。これらのフィールドは解析されないため、テーブル、エクスポート、スプレッドシートに出力されることはありません。

設計の残りの部分も同じ原則に従っています。エージェントは外部への接続とファイルの読み取りのみを行い、Webサーバーには何もインストールされず、何も書き込まれず、アクセスは読み取り専用です。

仕組み

3つのステップで、ウェブサーバーには何もインストールされません。

01

ログフォルダを指し示す

Query Streams Agentに、サーバーが既にログを記録しているフォルダーへの読み取りアクセス権を付与します。 /var/log/nginx, /var/log/caddyIIS ログファイル ディレクトリ、または同期先の共有フォルダ。

02

フォーマットを認識します

クエリ ストリームは、ファイル名ではなく行の内容からフォーマットを識別するため、奇妙な名前のファイルでも読み取ることができ、固定されたフォーマットと一致しないファイルは、テーブルを破損させるのではなく、理由とともに保留されます。

03

クエリを実行するか、結合する

ポータルからSQLを実行し、Microsoft ExcelやGoogle Sheetsにリアルタイムで取り込むか、フェデレーションクエリを使用してリクエストログをアプリケーションデータベース内のユーザーと注文に結合することができます。これらすべてを1つのステートメントで実行できます。

ウェブサーバーログに関するよくある質問

ログ設定を変更する必要はありますか?

いいえ。サポートされている各フォーマットは、そのサーバーのデフォルトフォーマットです。nginxとApacheの場合は結合アクセスログ、Caddy 2の場合はJSONアクセスログ、IISの場合はW3C拡張フォーマットです。ログフォーマットを一度も変更したことがない場合は、既にサポートされているフォーマットが使用されています。

IIS は柔軟なケースであり、適切に処理されます。 #フィールド: W3Cファイルの先頭にあるディレクティブによって列名が指定されるため、IISマネージャーで選択したフィールドがそのまま列として表示されます。

これはリアルタイムですか?

これはストリーミングではなくオンデマンド方式です。Query Streamsは、クエリ実行時にディスク上のファイルをそのまま読み込むため、サーバーがファイルを書き込み、ファイルが取得されると、新しいリクエストが表示されます。これは、毎晩決まったスケジュールで実行されるわけでも、リアルタイムで処理されるわけでもありません。

リクエストが発生した瞬間に1秒未満のアラートが必要な場合は、ログパイプラインが最適なツールです。過去数週間のトラフィックに関する質問をし、スプレッドシートで回答を得たいだけであれば、ログパイプラインの方がはるかに少ないシステムで済みます。

ローテーションおよび圧縮されたログはどうなりますか?

それらは読み取られます。Query Streams は、これらのサーバーが使用する 3 つのローテーション スタイル (logrotate の番号付きシャッフル、IIS の new-dated-file-per-day、Caddy のタイムスタンプ付きロール) を理解し、それらを読み取ります。 .gz 解凍しなくてもアーカイブはそのまま残ります。

ファイルはファイル名ではなく、最初の4KBのハッシュ値によって照合されるため、ローテーションされたファイルは既に確認済みのファイルとして認識されます。これにより、ローテーションによって日付が失われたり、二重にカウントされたりするのを防ぎます。

私のログは複数のサーバーに保存されています。それらをまとめてクエリすることはできますか?

はい。各列には サイト 列を使用するため、1つのクエリでホストをまたいで、必要な項目でグループ化できます。環境ごと、またはリージョンごとにエージェントをデプロイでき、すべてのエージェントが同じリストにフォルダを表示します。

通常のSQLなので、さらに進んでリクエストログを実際のデータベースと結合することも可能です。例えば、500エラーの急増をデプロイメントテーブルと照合したり、遅いチェックアウトリクエストをそれらが属する注文と照合したりできます。

クッキーや認証ヘッダーを読み取るのでしょうか?

いいえ。CaddyのJSON形式は、4つの中で唯一ヘッダーマップを記録する形式であり、プロファイルは リクエストヘッダー そして resp_headers 宣言によって指定されているため、列として解析されることはありません。結合形式、エラー形式、およびW3C形式には、そもそもヘッダーが含まれていません。

クライアントのIPアドレスとユーザーエージェントは、アクセスログの要となる情報であるため解析されます。結果として得られるテーブルは、元のログファイルと同様に慎重に取り扱ってください。

パーサーが読み取れない行の場合はどうでしょうか?

削除されるのではなく、保持されます。固定されたフォーマットと一致しない行は、理由が付加された生の行として保持されるため、不正な入力や予期しないフォーマット変更は、数値の空白としてではなく、確認および照会可能な形で表示されます。

トラフィックデータは既にディスクに保存されています

ログフォルダを接続して、数分で最初のクエリを実行できます。無料プラン、クレジットカード不要、ウェブサーバーへのインストールも不要です。

読み取り専用 · 送信接続のみ · ログはサーバー上に保持されます