Graylog
このチュートリアルでは、Graylog ↗を使用してCloudflare Logs ↗を分析する方法を説明します。
Cloudflare Logsを以前に使用したことがない場合は、詳細についてはLogs documentationをご覧ください。アカウントのログを有効にするには、Cloudflareのカスタマーアカウントチームにお問い合わせください。
CloudflareのログデータをGraylogに送信する前に、次のことを確認してください:
- 既存のGraylogインストールがあること。単一ノードおよびクラスター構成の両方がサポートされています。
- Cloudflare Logsが有効なCloudflare Enterpriseアカウントを持っていること。
- Logpushを設定すること。
CloudflareのログをGraylogに取り込む前に:
- 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をアップロードします。ハンドラーには次のメソッドを指定します:org.graylog.integrations.s3.GraylogS3Function::handleRequest。
-
Graylogクラスター用にLambda関数を設定するために、少なくとも次の必須環境変数を指定します:
-
CONTENT_TYPE (必須) - application/x.cloudflare.logの値を指定して、Lambda関数がCloudflareのログを処理することを示します。
-
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 ↗ファイルには、関数設定を微調整するための追加の設定変数が利用可能です。
-
-
Lambda関数のAWS S3トリガーを作成して、関数が書き込まれた各Cloudflareログフィールドを処理できるようにします。タスク1で指定したのと同じS3バケットを指定し、All object create eventsオプションを選択します。他の必要なファイルフィルターもここで適用できます。

-
GraylogクラスターがVPC内にある場合は、VPC内のリソースにアクセスするためにLambda関数を設定する ↗必要があります。また、AWS S3サービス用のVPCエンドポイントを作成する ↗必要があるかもしれません。これにより、Lambda関数がVPC内で実行されているときにS3に直接アクセスできるようになります。
Cloudflare LogpushコンテンツパックをGraylogにインポートすると、Cloudflareのログを受信するために必要な設定が読み込まれ、Cloudflareのダッシュボードがインストールされます。
コンテンツパックには次のコンポーネントがインストールされます:
- Cloudflareダッシュボード(タスク4)。
- 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 page ↗でダッシュボードを表示できます。ダッシュボードには次のものが含まれています:
これは、Cloudflareネットワーク上のウェブサイトやアプリケーションからの最も重要なメトリックの概要です。ダッシュボードフィルターを使用して、イベントやトレンドの詳細な分析のために情報をさらに切り分けることができます。
このダッシュボードを使用して:
- Cloudflareネットワーク上のウェブサイトやアプリケーションの最も重要なウェブトラフィックメトリックを監視します。
- トラフィックがどの国やIPから来ているかを確認し、モバイルとデスクトップトラフィック、プロトコル、メソッド、コンテンツタイプの内訳を分析します。

この概要は、ウェブサイトやアプリケーションへの脅威に関する洞察を提供します。脅威の数、時間経過に伴う脅威、主要な脅威国などが含まれます。
このダッシュボードを使用して:
- ウェブサイトやアプリケーションの最も重要なセキュリティおよび脅威メトリックを監視します。
- IPファイアウォールを微調整および設定します。

このダッシュボードは、パフォーマンスの問題やキャッシュの誤設定を特定して対処するのに役立ちます。メトリックには、合計対キャッシュされた帯域幅、節約された帯域幅、合計リクエスト、キャッシュ比率、最もキャッシュされていないリクエストなどが含まれます。
このダッシュボードを使用して:
- キャッシュの動作を監視し、誤設定を特定します。
- 設定とキャッシュ比率を改善します。

このダッシュボードは、ウェブサイトやアプリケーションの可用性に関する洞察を提供します。メトリックには、オリジン応答エラー比率、時間経過に伴うオリジン応答ステータス、時間経過に伴う3xx/4xx/5xxエラーの割合などが含まれます。
このダッシュボードを使用して:
- エッジおよびオリジン応答ステータスコードを表示して、ウェブサイトやアプリケーションのエラーを調査します。
- 国、クライアントIP、ホスト名、その他のメトリックに基づいてステータスコードに基づくエラーをさらに分析します。

このダッシュボードを使用して、悪質なボットを検出および軽減し、資格情報の詰め込み、スパム登録、コンテンツのスクレイピング、クリック詐欺、在庫の蓄積、その他の悪意のある活動を防止します。
このダッシュボードを使用して:
- ウェブサイト上のボット活動を調査し、コンテンツのスクレイピング、チェックアウト詐欺、スパム登録、その他の悪意のある活動を防止します。
- Cloudflareを調整して、ウェブサイト、アプリケーション、APIエンドポイント全体でボットの過剰使用と悪用を防止します。
