New Relicの有効化
Cloudflare Logpushは、CloudflareダッシュボードまたはAPIを介して直接New Relicにログをプッシュすることをサポートしています。
-
Log in to the Cloudflare dashboard ↗.
-
Select the Enterprise account or domain (also known as zone) you want to use with Logpush. Depending on your choice, you have access to account-scoped datasets and zone-scoped datasets, respectively.
-
Go to Analytics & Logs > Logpush.
-
Select Create a Logpush job.
-
宛先を選択で、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ダッシュボードで見つけることができます。 これらの手順 ↗に従って取得できます。
宛先の詳細を入力し終えたら、続行を選択します。
-
ストレージサービスにプッシュするデータセットを選択します。
-
次のステップでは、logpushジョブを構成する必要があります:
- ジョブ名を入力します。
- ログが一致する場合の下で、ログに含めるイベントや除外するイベントを選択できます。詳細についてはフィルターを参照してください。すべてのデータセットにこのオプションが利用できるわけではありません。
- 次のフィールドを送信で、すべてのログをストレージ宛先にプッシュするか、プッシュしたいログを選択的に選ぶことができます。
-
詳細オプションでは、次のことができます:
- ログのタイムスタンプフィールドの形式を選択します(
RFC3339(デフォルト)、Unix、またはUnixNano)。 - ログのサンプリングレートを選択するか、ランダムにサンプリングされたログのパーセンテージをプッシュします。
CVE-2021-44228のための赤actionを有効にします。このオプションは、${のすべての出現をx{に置き換えます。
- ログのタイムスタンプフィールドの形式を選択します(
-
logpushジョブの構成が完了したら、送信を選択します。
Ensure Log Share permissions are enabled, before attempting to read or configure a Logpush job. For more information refer to the Roles section.
ジョブを作成するには、次のフィールドを含むLogpushジョブエンドポイントにPOSTリクエストを送信します:
-
name(オプション) - ドメイン名をジョブ名として使用します。
-
output_options(オプション) - フィールド、サンプルレート、タイムスタンプ形式を構成するには、ログ出力オプションを参照してください。
-
destination_conf - エンドポイントURL、ライセンスキー、形式を含むログ宛先。
-
<NR_ENDPOINT_URL>: New RelicのHTTPログインテークエンドポイントで、USの場合はhttps://log-api.newrelic.com/log/v1、EUの場合はhttps://log-api.eu.newrelic.com/log/v1です。これは、あなたのNew Relicアカウントに設定されているリージョンによります。 -
<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(オプション) - バッチのログの最大未圧縮ファイルサイズ。これは少なくとも5MBでなければなりません。最小ファイルサイズを設定する方法はありません。つまり、ログファイルはこのバッチサイズよりもはるかに小さい可能性があります。それでも、このパラメータは5,000,000に設定することをお勧めします。
-
dataset - 受信したいログのカテゴリ。サポートされているデータセットの完全なリストについてはログフィールドを参照してください。
cURLを使用したリクエストの例:
curl -s https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs -X POST -d '{ "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}' \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>" \--header "Content-Type: application/json" | jq .レスポンス:
{ "errors" : [], "messages" : [], "result" : { "dataset" : "http_requests", "destination_conf" : "https://log-api.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare", "enabled" : true, "error_message" : null, "id" : 100, "kind" : "", "last_complete" : null, "last_error" : null, "output_options": { "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp","EdgeResponseBytes", "EdgeResponseStatus", "EdgeStartTimestamp", "RayID"], "timestamp_format": "unix" }, "logstream" : true, "max_upload_bytes" : 5000000, "name" : "<DOMAIN_NAME>" }, "success" : true}ジョブを有効にするには、LogpushジョブエンドポイントにPUTリクエストを送信します。前のステップで返されたジョブIDをURLに使用し、リクエストボディに{"enabled": true}を送信します。
cURLを使用したリクエストの例:
curl -s -X PUT \https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs/100 -d'{"enabled":true}' \--header "X-Auth-Email: <EMAIL>" \--header "X-Auth-Key: <API_KEY>" \--header "Content-Type: application/json" | jq .レスポンス:
{ "errors" : [], "messages" : [], "result" : { "dataset" : "http_requests", "destination_conf" : "https://log-api.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare", "enabled" : true, "error_message" : null, "id" : 100, "kind" : "", "last_complete" : "null", "last_error" : null, "output_options": { "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp","EdgeResponseBytes", "EdgeResponseStatus", "EdgeStartTimestamp", "RayID"], "timestamp_format": "unix" }, "logstream" : true, "max_upload_bytes" : 5000000, "name" : "<DOMAIN_NAME>" }, "success" : true}