当社は、可観測性とフォレンジック機能をCloudflareダッシュボードに直接もたらす強力な新製品であるCloudflare Log Explorerの一般提供を発表できることを嬉しく思います。Cloudflareの広大なグローバルネットワークの基盤上に構築されたLog Explorerは、当社プラットフォームのユニークな立場を活用して、お客様の環境を包括的かつコンテキストに基づいたビューで表示します。
セキュリティチームと開発者は、Cloudflareを使用して、脅威をリアルタイムで検出・軽減し、アプリケーションのパフォーマンスを最適化します。長年にわたり、ユーザーは、セキュリティインシデントの調査やアプリケーションのパフォーマンス問題のトラブルシューティングを行うために、サードパーティのログ分析やセキュリティ情報およびイベント管理(SIEM)ツールにデータを転送することなく、完全なコンテキストを備えた追加のテレメトリを求めてきました。社外にデータを転送する場合、回避可能なコストに加えて、セットアップが複雑、重要なデータへのアクセスが遅れる、コンテキストの欠如に起因して迅速な軽減が難しくなるなどの欠点があります。
過去1年間に数百という顧客がLog Explorerをプレビューし、そのメリットを以下のように実証しています。
「WAFログ(ファイアウォールイベント)をLog Explorerで即座に利用できるようになったことにより、待ち時間や外部ツールが不要になり、ファイアウォールルールの管理方法が大きく変わりました。問題を見つけ、ワンクリックでルールを調整し、すぐに効果を確認することができます。誤検知のチューニングをより高速に、安価で、はるかに効果的に行えるようになりました
当社ではCloudflareのログをSIEMに取り込むためにLogpushを使用していますが、開発チームがログを分析する必要がある場合は、Log Explorerを使用する方がより効果的です。SIEMは、開発チームが独自のクエリーを書いたり、コンソールを操作して必要なログを見たりすることを困難にします。一方、CloudflareのLog Explorerなら、開発チームがログを見て必要な情報を直接検索する作業が遥かに簡単になります。」
Log Explorerを使用すれば、Cloudflareプラットフォーム内で利用可能なすべてのコンテキストを含むCloudflareのログにアクセスすることができるようになります。外部ツールと比較した利点:
コスト削減と簡素化:外部ツールにおけるログデータの転送、保存、分析にかかる費用と運用オーバーヘッドを大幅に削減。
より迅速な検出と選別:Cloudflareのネイティブなログに直接アクセスし、煩雑なデータパイプラインや、重要なセキュリティインサイトを遅らせる取り込みのラグを排除。
完全なコンテキストを使用した調査の迅速化:Cloudflareの比類ないコンテキストデータを活用してインシデントを調査し、「正確に何が起こったのか」および「なぜこうなったのか?」の分析と理解を加速。
最小限の復旧時間:Cloudflareプラットフォームを介した直接的な軽減機能により、調査からアクションへのシームレスな移行が実現。
Log Explorerは、当社のセルフサービスまたはEnterpriseプランでのアドオン製品としてご利用いただけます。このページでは、Log Explorerの各機能が、問題のより迅速な検出と診断にどのように役立つかについて説明します。
カスタムダッシュボードでセキュリティとパフォーマンスの問題を監視
カスタムダッシュボードでは、環境内の異常なアクティビティや予期せぬアクティビティを監視するために必要な、特定のメトリクスを定義できます。
自然言語を使ってチャートを作成することができるため、簡単に始めることができます。チャートの作成/編集エクスペリエンスには自然言語インターフェースが統合されており、作成したいチャートを自分の言葉で説明することができます。Security Week 2024の期間中に発表したAIアシスタントと同様、このプロンプトは使用言語を適切なチャート構成に翻訳し、新規または既存のカスタムダッシュボードに追加することができます。
たとえば、顧客環境で発生しているリモートコード実行(RCE)攻撃の存在を監視するためのダッシュボードを作成することができます。RCE攻撃とは、攻撃者が環境内のマシンを侵害し、コマンドを実行することができる攻撃のことです。喜ばしいことに、RCE検出がCloudflare WAFでご利用いただけます。 下のダッシュボードの例では、RCE攻撃を監視するだけでなく、悪意のあるコンテンツのアップロードや送信元のIPアドレス、JA3/JA4フィンガープリントなど他のセキュリティイベントとの相関関係も確認可能です。このようなシナリオでは、環境内の1台または複数のマシンが侵害され、マルウェアの拡散に利用される可能性があり、これは非常にリスクの高いインシデントであることは間違いありません!
信頼性エンジニアは、エラーを監視するためのダッシュボードを作成することができます。自然言語のプロンプトを使って、「Compare HTTP status code Ranges over time」のようなクエリーを入力することができます。そして、AIモデルは最も適切な視覚化を決定し、そのチャートの構成を構築します。
カスタムダッシュボードをゼロから作成することもできますが、専門家が厳選したダッシュボードテンプレートを使用してセキュリティとパフォーマンスの監視を開始することもできます。
使用可能なテンプレート:
ボット監視:Webサイトにアクセスする自動送信トラフィックを特定
APIセキュリティ:アプリケーション内のAPIエンドポイントのデータ転送と例外を監視
APIのパフォーマンス:アプリケーションのAPIエンドポイントのタイミングデータとエラー率を表示
アカウント乗っ取り:ログイン試行、漏洩した資格情報の使用状況、アカウント乗っ取り攻撃の特定を表示
パフォーマンスの監視:配信元サーバー上の低速なホストとパスを特定し、サーバー初期応答時間(TTFB)のメトリクスを経時的に表示
セキュリティモニタリング:上位のホストとパス全体の攻撃分布を監視し、DDoSトラフィックを配信元応答時間と相関させて、DDoS攻撃の影響を把握
Log Searchで問題の調査とトラブルシューティング
前のセクションの例に続けて、RCEの問題により一部のマシンが侵害されたことを診断した後、アナリストはログ検索に切り替え、攻撃者が他の内部システムにアクセスして侵害できたかどうかを調査できます。そのためには、アナリストが、以下のスクリーンショットに示されている、カスタムダッシュボードから侵害されたIPアドレスなどのコンテキストを使用して、Zero Trustサービスからのログを検索することができます。
Log Searchは、データタイプを意識した検索フィルターや、より強力なクエリのためにカスタムSQLインターフェースに切り替える機能など、合理化された体験を提供します。パブリック API経由でもログの検索ができます。
時間を節約し、保存されたクエリで共同作業
Log Searchで組み込まれたクエリーを保存して繰り返し使用し、アカウント内の他のLog Explorerユーザーもアクセスできるようになりました。これにより、問題の共同調査がこれまで以上に容易になります。
カスタムアラートによる積極的な監視 (近日公開)
カスタムアラートでは、カスタムアラートポリシーを設定し、ビジネスにとって重要な指標を積極的に監視することができます。
Log Searchから始め、クエリーを定義し、テストします。ここから、スケジュール間隔とアラートポリシーを保存し、設定することができます。クエリは、定義したスケジュールで自動的に実行されます。
カスタムホスト名の追跡エラー率
特定のホストのエラー率を監視する場合、この Log Searchクエリーを使用して、時間間隔ごとのエラー率を計算することができます。
SELECT SUBSTRING(EdgeStartTimeStamp, 1, 14) || '00:00' AS time_interval,
COUNT() AS total_requests,
COUNT(CASE WHEN EdgeResponseStatus >= 500 THEN 1 ELSE NULL END) AS error_requests,
COUNT(CASE WHEN EdgeResponseStatus >= 500 THEN 1 ELSE NULL END) * 100.0 / COUNT() AS error_rate_percentage
FROM http_requests
WHERE EdgeStartTimestamp >= '2025-06-09T20:56:58Z'
AND EdgeStartTimestamp <= '2025-06-10T21:26:58Z'
AND ClientRequestHost = 'customhostname.com'
GROUP BY time_interval
ORDER BY time_interval ASC;
上記のクエリーを実行すると、次の結果が返されます。クエリ結果の右端の列で、全体的なエラー率の割合を見ることができます。
マルウェアを予防的に検出
CloudflareセキュアWeb Gatewayからのログを監視することで、環境内のマルウェアを特定することができます。例えば、Katz Stealerは資格情報を盗むために設計されたサービスとしてのマルウェア(MaaS: Malware-as-a-Service)です。当社は、Katz Stealerマルウェアに感染している可能性のあるマシンを特定するために、社内のユーザーからのDNSクエリやHTTPリクエストを監視することができます。
また、カスタムアラートでは、WebhookまたはPagerDuty経由で通知を受けるようにアラートポリシーを設定することができます。
柔軟な保持機能により監査とコンプライアンスを維持(近日公開)
柔軟な保持機能により、ログの保存期間を正確に設定でき、特定のコンプライアンスや監査の要件に簡単に対応できます。他のプロバイダーは、アーカイブまたはホットストレージおよびコールドストレージを必要とするため、古いログを照会しにくくなります。Log Explorerは、R2ストレージ階層上に構築されており、過去のログも現在のログと同じくらい簡単にクエリーができます。
Cloudflareスケールで動作するLog Explorerの構築方法
Log Explorerでは、Cloudflare R2上にスケーラブルなログストレージプラットフォームを構築しており、使い慣れたSQLクエリーを使ってCloudflareのログを効率的に検索することができます。このセクションでは、当社がこれを行った経緯と、これまでにどのように技術的課題を解決したかについて説明します。 Log Explorerは、インジェスト、コンパクター、クエリーという3つのコンポーネントで構成されています。インジェストは、CloudflareのデータパイプラインからR2へのログの書き込みを行います。コンパクタはストレージファイルを最適化するため、より効率的にクエリーを実行できます。クエリーは、R2から一致するログを取得、変換、集計することによって、ユーザーからのSQLクエリーを実行します。
取り込み中、Log Explorerは、ログレコードの各バッチをR2のParquetファイルに書き込みます。Apache Parquetは、オープンソースの列のストレージファイルフォーマットであり、当社にとっては当然の選択でした。効率的なデータストレージと検索のために最適化されているのです。たとえば、各列の最小値と最大値のようなメタデータをファイル全体に埋め込むことで、クエリーを組み合わせて、クエリーを処理するために必要なデータをすばやく見つけられるようにします。
Log Explorerは、Cloudflare D1と同様に顧客ごとにログを保存するため、顧客データが他の顧客データと混在することはありません。2025年第3四半期には、顧客ごとのログにより独自の保持ポリシーを作成し、どの地域にデータを保存するかを柔軟に決定できるようになります。 しかし、ログをクエリする際、Log ExplorerはどうやってそれらのParquetファイルを見つけるのでしょうか。Log Explorerは、Delta Lakeのオープンテーブルフォーマットを活用して、R2オブジェクトストレージ上にデータベーステーブルの抽象化を提供します。deleteC内のテーブルは、Parquet形式のデータファイルとトランザクションログをペアにします。トランザクションログは、テーブルのデータファイルのすべての追加、削除、または変更を登録します。これは、R2のデータファイルのすぐ隣に保存されます。
HTTPリクエストやGateway DNSなどの特定のログデータセットに対するSQLクエリーを指定すると、Log Explorerは、まずR2から対応するDeltaテーブルのトランザクションログをロードする必要があります。トランザクションログは、ユーザーがログをクエリするたびにテーブル履歴全体を読み取る必要がないように、定期的にチェックポイントに置かれます。
トランザクションログには、テーブルのParquetファイルの一覧に加えて、各Parquetファイルの列ごとの最小/最大統計も含まれます。これには、Log Explorerが、ユーザーのクエリを満たす可能性のあるR2からファイルを取得するだけでよいという利点があります。最後に、クエリーは、各Parquetファイルに埋め込まれた最小/最大統計値を使用して、ファイルからどの行グループを取得するかを決定します。
Log Explorerは、Rustで記述された高速で拡張可能なクエリエンジンであるApache DataFusionと、Delta Lakeプロトコルのコミュニティ主導のRust実装である delta-rsを使用してSQLクエリを処理します。当社のチームは、先人の偉大な功績を土台とし、Cloudflareスケールのログ検索を提供するために、いくつかの特有の問題を解決しなければなりませんでした。
Log Explorerは、125か国以上、330都市以上に広がるCloudflareの広大なグローバルネットワークからログを取り込みます。もしLog ExplorerがサーバーからR2へ直接ログを書き込むと、ストレージはすぐに無数の小さなファイルに断片化し、ログクエリに法外なコストがかかってしまいます。
この断片化を回避するためのLog Explorer戦略は、3つのポイントを重視しています。まず、エッジからログを収集してバッチ化し、最終的にBufteeという名前の内部システムでログの各ストリームをバッファリングするCloudflareのデータパイプラインを活用します。二番目に、Bufteeから取り込まれたログバッチは、トランザクションログにすぐにコミットされません。 Log Explorerは、中間領域にある複数のバッチのコミットをステージングし、トランザクションログに書き込まれる前に、これらのコミットを「スワッシング」します。三番目に、ログバッチがコミットされると、コンパクションと呼ばれるプロセスが、バックグラウンドでより大きなファイルに統合されます。
オープンソースのDelta Lakeの実装により、すぐに圧縮することができますが、これをワークロードに使用する際、すぐに問題が発生しました。ストック圧縮は、ファイルをサイズの逆順にソートし、Sサイズのビンを積極的に満たすことで、データファイルを希望のターゲットサイズSにマージします。このプロセスは、タイムスタンプに関係なくログをマージすることにより、取り込まれたバッチをマージされたファイルにランダムに分散させ、データの局所性を破壊します。圧縮とはいえ、特定の時間枠でクエリを実行するユーザーは、R2から数百または数千のファイルを取得することになります。
このため、前述の最小/最大統計を活用して、最小ログタイムスタンプの順に取り込まれたバッチをマージするカスタム圧縮アルゴリズムを作成しました。このアルゴリズムにより、マージされたファイル間のオーバーラップの数が2桁減少しました。その結果、クエリーのパフォーマンスが大幅に向上し、これまで1分以上かかっていたいくつかの大規模なクエリーが、わずか数秒で完了できるようになりました。
最新情報をフォローしましょう
これは始まりにすぎません!当社は、Log Explorerエクスペリエンスをさらに向上させるために、さらに強力な機能の開発に積極的に取り組んでいます。ブログの配信登録を行い、可観測性およびフォレンジックサービスの変更ログでさらなる更新情報をご確認ください。
Log Explorerへのアクセスを取得
Log Explorerへのアクセスは、コンサルタントを利用するか、アカウントマネージャーまでお問合せください。詳細は開発者向けドキュメントをご覧ください。