このチュートリアルでは、Graylog ↗ を使って Cloudflare Logs ↗ を分析する方法を説明します。
Cloudflare Logs を使ったことがない場合は、詳細を Logs のドキュメント で確認してください。アカウントでログを有効にするには、Cloudflare の担当チームに連絡してください。
Cloudflare のログデータを Graylog へ送る前に、次を確認してください。
- 既存の Graylog 環境があること。シングルノードとクラスターのどちらも使えます
- Cloudflare Logs が有効な Cloudflare Enterprise アカウントがあること
- Logpush を設定していること
Graylog へ Cloudflare ログを取り込む前に、次を行います。
- Cloudflare Logpush を設定し、必要なフィールドをすべて、任意の AWS S3 バケットへプッシュします。
- 最新の Graylog Integration for Cloudflare ↗ をダウンロードします。
- zip ファイルを展開します。
展開後、連携パッケージには次が含まれます。
- graylog-s3-lambda.jar
- content-packs/cloudflare/cloudflare-logpush-content-pack.json
- content-packs/cloudflare/threat-lookup.csv
- AWS ウェブコンソールの Lambda サービスページを開きます。
- 新しい Lambda 関数を作成し、任意の function name と Java-8 runtime を指定します。
- 次の権限を持つ実行ロールを作成するか指定します。環境に合わせて、リソース権限をさらに絞ることもできます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Policy",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup"
"s3:GetObject",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"arn:aws:logs:your-region:your-account-number:*",
"arn:aws:s3:your-region::cloudflare-bucket-name/*"
]
}
]
}注記: Graylog クラスターが VPC 内で動いている場合、Lambda 関数が VPC へトラフィックをルーティングできるよう、AWSLambdaVPCAccessExecutionRole マネージドロールの追加が必要になることがあります。
-
Lambda 関数を作成したら、タスク 1 でダウンロードした関数コード graylog-s3-lambda.jar をアップロードします。Handler には次のメソッドを指定します。org.graylog.integrations.s3.GraylogS3Function::handleRequest。
-
Graylog クラスター向けに Lambda 関数を設定するため、少なくとも次の必須環境変数を指定します。
-
CONTENT_TYPE(必須)- Lambda 関数が Cloudflare ログを処理することを示す application/x.cloudflare.log。
-
COMPRESSION_TYPE (必須 ) - Cloudflare ログは gzip 圧縮されているため gzip。
-
GRAYLOG_HOST(必須)- Graylog ホスト、またはクラスターのロードバランサーのホスト名か IP アドレス。
-
GRAYLOG_PORT(任意 - デフォルトは 12201)- Graylog のサービスポート。
-
CONNECT_TIMEOUT(任意 - デフォルトは 10000)- 接続確立を待つミリ秒数。
-
LOG_LEVEL(任意 - デフォルトは INFO)- Lambda 関数が生成する CloudWatch ログの詳細度。使える値は OFF、ERROR、WARN、INFO、DEBUG、TRACE、ALL です。トラブルシューティング時はログレベルを上げてください。詳細は Defining Custom Log Levels in Code ↗ を参照してください。
-
CLOUDFLARE_LOGPUSH_MESSAGE_FIELDS(任意 - デフォルトはすべて)- メッセージからパースするフィールド。フィールド名をカンマ区切りで指定します。
-
CLOUDFLARE_LOGPUSH_MESSAGE_SUMMARY_FIELDS(任意 - デフォルトは ClientRequestHost, ClientRequestPath, OriginIP, ClientSrcPort, EdgeServerIP, EdgeResponseBytes)- Graylog の各メッセージ先頭で、パース済みフィールドの上に表示するメッセージ要約に含めるフィールド。フィールド名をカンマ区切りで指定します。

注記: 関数設定を細かく調整できる変数は、Graylog Lambda S3 の README ↗ にほかにもあります。
-
-
書き込まれた各 Cloudflare ログフィールドを処理できるよう、Lambda 関数に AWS S3 Trigger を作成します。タスク 1 と同じ S3 バケットを指定し、All object create events を選びます。ほかのファイルフィルターもここで適用できます。

-
Graylog クラスターが VPC 内にある場合は、Lambda 関数が VPC 内のリソースにアクセスできるよう設定 ↗ します。AWS S3 向けの VPC エンドポイント ↗ の作成も必要になることがあります。これにより、VPC 内で動く Lambda 関数が S3 へ直接アクセスできます。
Cloudflare Logpush コンテンツパックを Graylog にインポートすると、Cloudflare ログを受け取るための設定が読み込まれ、Cloudflare ダッシュボードがインストールされます。
コンテンツパックで次のコンポーネントが入ります。
- Cloudflare ダッシュボード(タスク 4)。
- Graylog が Cloudflare ログを受け取るための Cloudflare GELF (TCP) 入力。
- Cloudflare メッセージ ストリーム ↗。
- Cloudflare ログフィールドの処理とパースを助ける パイプライン ↗ ルール。
コンテンツパックをインポートする手順は次のとおりです。
-
タスク 1 でダウンロードして展開した cloudflare-logpush-content-pack.json を探します。
-
Graylog で System > Content Packs を開き、右上の Upload をクリックします。アップロードすると、アップロード済みコンテンツパックの一覧に Cloudflare Logpush コンテンツパックが表示されます。

-
Install をクリックします。

-
Install ダイアログで、任意のインストールコメントを入力し、すべての設定パラメーターに正しい値が入っていることを確認します。
- MaxMind™️ データベースのパスが必要です。https://dev.maxmind.com/geoip/ ↗ から入手できます。
- タスク 1 で展開した Threat Lookup CSV ファイルのパスも必要です。
-
インストールが完了すると、Graylog クラスターは Lambda 関数からの Cloudflare ログを受け取れる状態になります。
追加情報とトラブルシューティングは、Graylog Lambda S3 の README ↗ を参照してください。
ダッシュボードは Graylog Cloudflare integration ページ ↗ で確認できます。含まれるダッシュボードは次のとおりです。
Cloudflare ネットワーク上の Web サイトとアプリケーションについて、最も重要な指標を一目で確認できます。ダッシュボードフィルターでさらに切り分け、イベントや傾向を細かく分析できます。
このダッシュボードでは次ができます。
- Cloudflare ネットワーク上の Web サイトとアプリケーションについて、最も重要な Web トラフィック指標を監視する
- トラフィックの送信元の国と IP を確認し、モバイルとデスクトップ、プロトコル、メソッド、コンテンツタイプの内訳を分析する
Web サイトとアプリケーションへの脅威の概要です。阻止した脅威数、時系列の脅威、脅威が多い国などを確認できます。
このダッシュボードでは次ができます。
- Web サイトとアプリケーションの、最も重要なセキュリティと脅威の指標を監視する
- IP ファイアウォールを調整して設定する
パフォーマンスの問題とキャッシュ設定の誤りを特定し、対処するためのダッシュボードです。指標には、総帯域幅とキャッシュ済み帯域幅、節約した帯域幅、総リクエスト数、キャッシュ比率、キャッシュされていない上位リクエストなどがあります。
このダッシュボードでは次ができます。
- キャッシュの挙動を監視し、設定誤りを特定する
- 設定とキャッシュ比率を改善する
Web サイトとアプリケーションの可用性を把握するダッシュボードです。指標には、オリジンレスポンスのエラー比率、時系列のオリジンレスポンスステータス、時系列の 3xx/4xx/5xx エラーの割合などがあります。
このダッシュボードでは次ができます。
- エッジとオリジンのレスポンスステータスコードを見て、Web サイトとアプリケーションのエラーを調査する
- 国、クライアント IP、ホスト名などの指標で、ステータスコード別にエラーをさらに分析する
悪意のあるボットを検知して緩和し、クレデンシャルスタッフィング、スパム登録、コンテンツスクレイピング、クリック詐欺、在庫の抱え込みなどの不正行為を防げます。
このダッシュボードでは次ができます。
- Web サイト上のボット活動を調査し、コンテンツスクレイピング、チェックアウト詐欺、スパム登録などの不正行為を防ぐ。
- 得られた知見で Cloudflare を調整し、Web サイト、アプリケーション、API エンドポイントでのボットによる過剰利用や悪用を防ぐ。
