Cloudflare Logpush は、Cloudflare ダッシュボードまたは API から、ログを New Relic に直接送信できます。
-
Cloudflare ダッシュボードで、アカウントまたはドメイン(ゾーンとも呼ばれます)の Logpush ページを開きます。
アカウントの場合: Logpush を開く ↗
ドメイン(ゾーン)の場合: Logpush を開く ↗
-
選んだ範囲に応じて、それぞれ アカウントスコープのデータセット と ゾーンスコープのデータセット を利用できます。
-
Create a Logpush job を選択します。
-
Select a destination で、New Relic を選びます。
-
New Relic Logs Endpoint を入力します。
"https://log-api.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare"
"https://log-api.eu.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare"
New Relic アカウントで設定されているリージョンと一致するほうを使います。License key は New Relic ダッシュボードで確認できます。こちらの手順 ↗ に従って取得できます。
送信先の詳細を入力したら、Continue を選択します。
-
ストレージサービスに送信するデータセットを選択します。
-
次の手順で、Logpush ジョブを設定します。
- Job name を入力します。
- If logs match では、ログに含めるイベントや除外するイベントを選べます。詳細は Filters を参照してください。このオプションがないデータセットもあります。
- Send the following fields では、すべてのログを送信先に送るか、送信するログを選ぶかを選べます。
-
Advanced Options では、次の設定ができます。
- ログ内のタイムスタンプフィールドの形式を選びます(
RFC3339(デフォルト)、Unix、またはUnixNano)。 - ログの サンプリングレート を選ぶか、ランダムにサンプリングした割合のログを送信します。
CVE-2021-44228のリダクションを有効にします。このオプションは、${の出現をすべてx{に置き換えます。
- ログ内のタイムスタンプフィールドの形式を選びます(
-
Logpush ジョブの設定が終わったら、Submit を選択します。
Logpush ジョブの読み取りや設定の前に、Log Share の権限が有効になっていることを確認してください。詳細は Roles のセクション を参照してください。
ジョブを作成するには、Logpush ジョブのエンドポイントに、次のフィールドを付けて POST リクエストを送ります。
-
name(任意)— ジョブ名にはドメイン名を使います。
-
output_options(任意)— フィールド、サンプルレート、タイムスタンプ形式の設定は、Log Output Options を参照してください。
-
destination_conf — エンドポイント URL、ライセンスキー、形式からなるログ送信先です。次の文字列形式を使います。
-
<NR_ENDPOINT_URL>: New Relic の HTTP ログ取り込みエンドポイントです。New Relic アカウントで設定されているリージョンに応じて、US は
https://log-api.newrelic.com/log/v1、EU はhttps://log-api.eu.newrelic.com/log/v1です。 -
<NR_LICENSE_KEY>: New Relic ダッシュボードで確認できます。こちらの手順 ↗ に従って取得できます。
-
format: 形式は
cloudflareです。US:
"https://log-api.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare"EU:
"https://log-api.eu.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare"
-
-
max_upload_records(任意)— バッチあたりの最大ログ行数です。1,000 行以上である必要があります。バッチあたりの最小行数は指定できません。そのため、ログファイルの行数は指定値よりかなり少なくなることがあります。
-
max_upload_bytes(任意)— ログバッチの非圧縮時の最大ファイルサイズです。5 MB 以上である必要があります。最小ファイルサイズは設定できません。そのため、ログファイルはこのバッチサイズよりかなり小さくなることがあります。それでも、このパラメーターは 5,000,000 に設定することを推奨します。
-
dataset — 受け取りたいログのカテゴリです。対応データセットの一覧は Datasets を参照してください。
cURL を使ったリクエスト例:
Required API token permissions
At least one of the following token permissions is required:Logs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "<DOMAIN_NAME>",
"output_options": {
"field_names": [
"ClientIP",
"ClientRequestHost",
"ClientRequestMethod",
"ClientRequestURI",
"EdgeEndTimestamp",
"EdgeResponseBytes",
"EdgeResponseStatus",
"EdgeStartTimestamp",
"RayID"
],
"timestamp_format": "unix"
},
"destination_conf": "https://log-api.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare",
"max_upload_bytes": 5000000,
"dataset": "http_requests",
"enabled": true
}'レスポンス:
{
"errors": [],
"messages": [],
"result": {
"id": <JOB_ID>,
"dataset": "http_requests",
"kind": "",
"max_upload_bytes": 5000000,
"enabled": true,
"name": "<DOMAIN_NAME>",
"output_options": {
"field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp","EdgeResponseBytes", "EdgeResponseStatus", "EdgeStartTimestamp", "RayID"],
"timestamp_format": "unix"
},
"destination_conf": "https://log-api.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare",
"last_complete": null,
"last_error": null,
"error_message": null
},
"success": true
}ジョブの更新(有効化と無効化を含む)は、cURL で Logpush を管理する を参照してください。