ログのリクエスト
Logpull API がサポートする3つのエンドポイントは次のとおりです:
GET /logs/received- 指定されたパラメータに基づいて HTTP リクエストログデータを返しますGET /logs/received/fields- 利用可能なすべてのログフィールドのリストを返しますGET /logs/rayids/<rayid>-<rayid>に一致する HTTP リクエストログデータを返します
すべてのエンドポイント呼び出しには、次のヘッダーが必要です:
X-Auth-Email- ドメインに関連付けられた Cloudflare アカウントのメールアドレスX-Auth-Key- Cloudflare API キー
また、Logs Read 権限を持つ API トークンも認証に使用できます:
Authorization: Bearer <API_TOKEN>
API は GET リクエストのクエリ文字列にエンドポイントパラメータを期待します。以下は例のフォーマットです:
logs/received
https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logs/received?start=<unix|rfc3339>&end=<unix|rfc3339>[&count=<int>][&sample=<float>][&fields=<FIELDS>][×tamps=<string>][&CVE-2021-44228=<boolean>]logs/rayids/<RAY_ID>
https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logs/rayids/<RAY_ID>?[&fields=<string>][×tamps=<strings>]以下の表は、利用可能なパラメータを説明します:
| パラメータ | 説明 | 適用先 | 必須 |
|---|---|---|---|
| start | - 包括的 - - 現在から7日以上前であってはいけません | /logs/received | はい |
| end | - 排他的 - start と同じ形式 - 現在から1分以上前であり、start よりも後でなければなりません | /logs/received | はい |
| count | - 最大その数のレコードを返します - すべてのレコードを返す場合は含めないでください - 結果はソートされていないため、繰り返しリクエストで異なるデータが得られる可能性があります - 戻されるレコードの総数に適用され、サンプルレコードの数には適用されません | /logs/received | いいえ |
| sample | - レコードのサンプルのみを返します - すべてのレコードを返す場合は含めないでください - 値は - - 結果はランダムであるため、繰り返しリクエストで異なる数の結果が得られる可能性があります | /logs/received | いいえ |
| fields | - 返すフィールドのカンマ区切りリスト - 空の場合、デフォルトのリストが返されます | /logs/received /logs/rayids | いいえ |
| timestamps | - タイムスタンプフィールドが返される形式 - 値のオプションは: - | /logs/received /logs/rayids | いいえ |
| CVE-2021-44228 | - CVE-2021-44228 ↗ のためのオプションの修正。このオプションは、文字列 例: | /logs/received | いいえ |
logs/received
curl -s \ -H "X-Auth-Email: <EMAIL>" \ -H "X-Auth-Key: <API_KEY>" \ "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logs/received?start=2017-07-18T22:00:00Z&end=2017-07-18T22:01:00Z&count=1&fields=ClientIP,ClientRequestHost,ClientRequestMethod,ClientRequestURI,EdgeEndTimestamp,EdgeResponseBytes,EdgeResponseStatus,EdgeStartTimestamp,RayID"logs/rayids/<RAY_ID>
curl -s \ -H "X-Auth-Email: <EMAIL>" \ -H "X-Auth-Key: <API_KEY>" \ "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logs/rayids/47ff6e2c812d3ccb?timestamps=rfc3339"fields パラメータで指定されていない限り、API は限られたセットのログフィールドを返します。このデフォルトのフィールドセットはいつでも変更される可能性があります。利用可能なすべてのフィールドのリストは次のとおりです:
https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logs/received/fields
フィールドの指定順序は重要ではなく、レスポンス内のフィールドの順序は指定されていません。
bash サブシェルと jq を使用すると、リクエストにフィールドを手動でコピー&ペーストすることなく、すべての利用可能なフィールドを持つログをダウンロードできます。たとえば:
curl -s \ -H "X-Auth-Email: <EMAIL>" \ -H "X-Auth-Key: <API_KEY>" \ "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logs/received?start=2017-07-18T22:00:00Z&end=2017-07-18T22:01:00Z&count=1&fields=$(curl -s -H "X-Auth-Email: <EMAIL>" -H "X-Auth-Key: <API_KEY>" "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logs/received/fields" | jq '. | to_entries[] | .key' -r | paste -sd "," -)"現在利用可能なフィールドについては、HTTP リクエストフィールドを参照してください。