Cloudflare Logpush サービスを設定し、Cloudflare ダッシュボードまたは API 経由で New Relic にログを送信します。
Cloudflareのダッシュボードで管理
Cloudflareのダッシュボード経由でNew RelicへのLogpushサービスを有効にする方法です。
Cloudflare ダッシュボード にログインし、Logpush で使用したい Enterprise ドメインを選択します。
Analytics> Logs にアクセスしてください。
Connect a service をクリックすると、モーダルウィンドウが表示されます。
ストレージサービスにプッシュしたいデータセットを選択します。
ログに含めるデータフィールドを選択します。 Logs> Logpush で設定を変更することにより、後からフィールドの追加や削除が可能です。
New Relic を選択します。
New Relic Logs Endpoint を入力します。
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"
New Relicアカウントで設定したリージョンを使用します。
< NR_LICENSE_KEY>
を New Relic のライセンスキーに置き換えてください。これは UI または API から 取得できます。アクセスを確認する をクリックします。
Save and Start Pushing をクリックして、Logpushの有効化を完了します。
接続すると、Cloudflare は Logs> Logpush の下に接続されたサービスとして New Relic をリストアップします。ここから接続されているサービスを編集または削除します。
Cloudflare APIによる管理
1.ジョブの作成
ジョブを作成するには、Logpush jobs エンドポイントに、以下のフィールドを指定して POST
リクエストを行います。
名前
(オプション):ジョブ名としてあなたのドメイン名を使用します。logpull_options
(オプション):フィールド、サンプルレート、タイムスタンプ形式を設定するには、 Logpush API options を参照してください。Cloudflare のログを照会するために、New Relic はフィールドを Unix タイムスタンプとして送信することを要求します。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
、NewRelicアカウントに設定されているリージョンによって異なります。<NR_LICENSE_KEY>
: 新しいRelicライセンスキーに置き換えます。これは、UIまたはAPIから取得できます。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
: 受け取りたいログのカテゴリです。サポートされるデータセットの完全なリストについては、 Cloudflare's log fields documentation を参照してください。
cURLを使用したリクエスト例です。
$curl -s https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs -X POST -d '${$ "name": "<DOMAIN_NAME>",$ "logpull_options": "fields=ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID×tamps=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$}' \>-H "X-Auth-Email: <EMAIL>" \>-H "X-Auth-Key: <API_KEY>" | 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,$ "frequency" : "high",$ "id" : 100,$ "kind" : "",$ "last_complete" : null,$ "last_error" : null,$ "logpull_options" : "fields=ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID×tamps=unix",$ "logstream" : true,$ "max_upload_bytes" : 5000000,$ "name" : "<DOMAIN_NAME>"$ },$ "success" : true$}
2.ジョブを有効化(更新)する
ジョブを有効にするには、Logpush jobs エンドポイントに PUT
リクエストを行います。URLには前のステップで返されたジョブIDを使用し、 {"enabled": true}
を送信します。 リクエスト本文に記載。
cURLを使用したリクエスト例です。
$curl -s -X PUT \>https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs/100 -d'{"enabled":true}' \>-H "X-Auth-Email: <EMAIL>" \>-H "X-Auth-Key: <API_KEY>" | 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,$ "frequency" : "high",$ "id" : 100,$ "kind" : "",$ "last_complete" : "null",$ "last_error" : null,$ "logpull_options" : "fields=ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID×tamps=unix",$ "logstream" : true,$ "max_upload_bytes" : 5000000,$ "name" : "<DOMAIN_NAME>"$ },$ "success" : true$}
次のステップ
New Relic One UI を使って、プラットフォーム全体のロギングデータを調べることができます。
- logs in context の機能を使ってログを転送することで、アプリケーションとプラットフォームの両方のパフォーマンスデータをより深く把握することができます。
- アラートの設定.
- データのクエリ と ダッシュボードの作成.
ログ転送を無効にする
ログ転送機能を無効にするには、 Cloudflare Logpush documentation に記載されている標準的な手順に従ってください。New Relic では、他に何もする必要はありません。