Cloudflare Logpush は、ダッシュボードまたは API から IBM Cloud Logs へログを直接プッシュできます。
-
Cloudflare ダッシュボードで、アカウントまたはドメイン(ゾーンとも呼ばれます)の Logpush ページを開きます。
アカウントの場合: Logpush を開く ↗
ドメイン(ゾーン)の場合: Logpush を開く ↗
-
選んだ範囲に応じて、それぞれ アカウントスコープのデータセット と ゾーンスコープのデータセット を利用できます。
-
Create a Logpush job を選択します。
-
Select a destination で IBM Cloud Logs を選びます。
-
次の保存先情報を入力します。
- HTTP Source Address — 例:
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles。 - IBM API Key — 詳細は IBM Cloud Logs のドキュメント ↗ を参照してください。
保存先の詳細を入力したら、Continue を選択します。
-
ストレージサービスへプッシュするデータセットを選択します。
-
次のステップで Logpush ジョブを設定します。
- Job name を入力します。
- If logs match では、ログに含めるイベントや除外するイベントを選べます。詳細は フィルター を参照してください。このオプションがないデータセットもあります。
- Send the following fields では、すべてのログを保存先へプッシュするか、プッシュするログを選択するかを選べます。
-
Advanced Options では、次の設定ができます。
- ログ内のタイムスタンプフィールドの形式(
RFC3339(デフォルト)、Unix、またはUnixNano)を選びます。 - ログの サンプリングレート を選ぶか、ランダムにサンプリングした割合のログをプッシュします。
CVE-2021-44228のリダクションを有効にします。このオプションは、${の出現をすべてx{に置き換えます。
- ログ内のタイムスタンプフィールドの形式(
-
Logpush ジョブの設定が終わったら Submit を選択します。
IBM Cloud Logs 向けのジョブを設定する手順は次のとおりです。
- 適切なエンドポイント URL と認証パラメーターでジョブを作成します。
- ジョブを有効にして、ログのプッシュを開始します。
ジョブを作成するには、Logpush ジョブのエンドポイントへ、次のフィールドを指定して POST リクエストを送ります。
- name(任意)— ジョブ名にはドメイン名を使います。
- output_options(任意)— 出力形式と構造を定義します。設定できるフィールドは次のとおりです。
- output_type
- timestamp_format
- batch_prefix と batch_suffix
- record_prefix と record_suffix
- record_delimiter
- destination_conf — Instance ID、Region、IBM API Key ↗ からなるログ保存先です。次の文字列形式を使います。
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>
- max_upload_records(任意)— 1 バッチあたりの最大ログ行数です。1,000 行以上である必要があります。バッチあたりの最小行数は指定できません。そのため、指定した行数よりかなり少ない行数のログファイルになることがあります。
- max_upload_bytes(任意)— ログバッチの非圧縮時の最大ファイルサイズです。IBM の制限を踏まえ、アップロードあたり 2 MB を推奨します。この保存先ではシステム側でこの値を強制します。最小ファイルサイズは設定できないため、指定したバッチサイズより小さいログファイルになることがあります。
- dataset — 受け取りたいログのカテゴリです。対応データセットの一覧は データセット を参照してください。
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": {
"output_type": "ndjson",
"timestamp_format": "rfc3339",
"batch_prefix": "[",
"batch_suffix": "]",
"record_prefix": "{\"applicationName\":\"ibm-platform-log\",\"subsystemName\":\"internet-svcs:logpush\",\"text\":{",
"record_suffix": "}}",
"record_delimiter": ","
},
"destination_conf": "ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>",
"max_upload_bytes": 2000000,
"dataset": "http_requests",
"enabled": true
}'レスポンス:
{
"errors": [],
"messages": [],
"result": {
"id": <JOB_ID>,
"dataset": "http_requests",
"kind": "",
"max_upload_bytes": 2000000,
"enabled": true,
"name": "<DOMAIN_NAME>",
"output_options": {
"output_type": "ndjson",
"timestamp_format": "rfc3339",
"batch_prefix": "[",
"batch_suffix": "]",
"record_prefix": "{\"applicationName\":\"ibm-platform-log\",\"subsystemName\":\"internet-svcs:logpush\",\"text\":{",
"record_suffix": "}}",
"record_delimiter": ","
},
"destination_conf": "ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>",
"last_complete": null,
"last_error": null,
"error_message": null
},
"success": true
}ジョブの更新(有効化と無効化を含む)は、cURL で Logpush を管理する を参照してください。