Logpushジョブの管理

IBM Cloud® Internet Services エンタープライズレベルのプランでは、 HTTP、DNS、Rangeリクエストの詳細なログに加え、自社ドメインに関するファイアウォールイベントのログも確認できます。 これらのログは、デバッグや分析に役立ちます。特に、起点の Ingress のログやアプリケーション・サーバーのログなどの他のデータ・ソースと組み合わせると有用です。

開始前に

コンソールを使用してLogpushジョブを作成する前に、以下の情報を確認し、必要な前提条件を満たしてください:

  • 現在、 CIS コンソールは以下の宛先をサポートしています:

    • IBM Cloud ログ
    • Cloud Object Storage
    • IBM QRadar
    • Splunk
  • Logpush を使用する前に、 ログの保存を有効にしておく ことを確認してください。

  • 宛先が CIS で明示的にサポートされていない場合でも、カスタム HTTP 宛先であればLogpushでアクセスできる可能性があります。 これには、独自のカスタム HTTP ログサーバーも含まれます。

    エラーを避けるため、宛先が圧縮コンテンツ {"content":"tests"} を含む test.txt.gz という名前の gzip ファイルアップロードを受け入れられることを確認する。

  • Splunk のみ: QRadar または Splunk にログを送信する場合、 CIS はアクセス可能な IP アドレスとポートをチェックし、 HTTP 受信者の証明書を検証します。 すべてのパラメータが有効な場合、Logpushジョブが作成され、 HTTP Receiverログソース( QRadar )または HTTP Event Collector( Splunk )にイベントの送信を開始します。

コンソールでLogpushジョブを作成する

コンソールでLogpushジョブを作成するには、以下の手順に従ってください:

  1. CIS コンソールで、 アカウント > 過去ログ に移動し、 作成 をクリックする。

  2. 利用可能なオプションからデスティネーション・サービス・タイプを選択し、設定する:

    IBM Cloud ログ
    1. サービスタイプのオプションから IBM Cloud ログを選択します。

    2. 次へ をクリックします。

    3. インスタンスID を入力してください。

    4. インスタンスのリージョンを選択してください。

    5. APIキー を入力してください。

      IBM Cloud LogsインスタンスがセットアップされているアカウントのAPIキーが必要です。 ユーザー用APIキーまたはサービスID用APIキーのいずれかを使用できます。 このキーは、Logpush ジョブ用の無記名トークンを生成するために使用されます。 APIキーは、 Update a Logpush job APIを 使用してローテーションすることができます。

      IBM Cloud Logsサービスでは、ユーザーまたはサービスIDにSender IAMロールが付与されていなければならない。

    6. 次へ をクリックします。

    Cloud Object Storage
    1. サービスタイプ Cloud Object Storage を選択します。

    2. 次へ をクリックします。

    3. Cloud Object Storage インスタンス ID、バケット名、バケットリージョン、バケットパス(オプション)、API キーを入力します。

      オプション:ログを日ごとのフォルダに整理するを有効にする。

      Cloud Object Storage の宛先値は一意でなければなりません。 競合を避けるため、一意のバケットパスを使用してください。

      Cloud Object Storage インスタンスがセットアップされているアカウント API キーが必要です。 ユーザー用APIキーまたはサービスID用APIキーのいずれかを使用できます。 このキーは、Logpush ジョブ用の無記名トークンを生成するために使用されます。 APIキーは、 Update a Logpush job APIを 使用してローテーションすることができます。

      Cloud Object Storage サービスの場合、ユーザーまたはサービス ID は、バケットの Object Writer IAM ロールを付与されている必要があります。

    4. 次へ をクリックします。

    IBM QRadar
    1. を選択する。 IBM QRadar を選択します。
    2. 次へ をクリックします。
    3. QRadar URL を入力し、ログソースポートを選択する。
    4. 次へ をクリックします。
    Splunk
    1. サービスタイプ Splunk を選択します。

    2. 次へ をクリックします。

    3. Splunk 生の HTTP イベントコレクタ URL、チャネル ID、および認証トークンを入力します。

      安全性の低い認証方法を選択することもできますが、これはお勧めできません。

    4. 次へ をクリックします。

  3. logpushジョブの設定を見直す:

    1. Logpushの詳細が正しいことを確認してください。

    2. 必要なタイムスタンプ形式と 周波数設定を選択します。

    3. Enablementスイッチ をオンに切り替えることで、Logpushジョブを有効にするかどうかを選択します。

    4. Logpushジョブに含めるログフィールドを選択してください。

      スイッチを使用して、 すべてのフィールドを選択するか、 すべてのフィールドを展開することができます。 デフォルト設定に戻すこともできる。

    5. 完了をクリックして、Logpush ジョブを作成します。

Logpushジョブが作成され、設定された宛先にログの送信を開始する。

CLI から Logpush ジョブを作成する

CLIを使用して ibmcloud cis logpush-job-create CLIを使用してLogpushジョブを作成できます。

特定のドメインの Logpush ジョブを作成し、ジョブを有効にするには、以下のコマンドを実行します。

ibmcloud cis logpush-job-create DNS_DOMAIN_ID --destination PATH --name JOB_NAME --fields all --enable true

ここで、

-destination: 保存先のパスを指定します。 サポートされている宛先へのパスは以下の通りです

IBM Cloud ログのパス
IBM Cloud ログ
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>

例えば LogsインスタンスがセットアップされているアカウントのAPIキーが必要です。
ibmcl://604a309c-585c-4a42-955d-76239ccc1905.ingress.us-south.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=zxzeNQI22dPwxxxxxxxx9jxdtn1EVK

IBM Cloud ユーザー用APIキーまたはサービスID用APIキーのいずれかを使用できます。 このキーは、Logpush ジョブ用の無記名トークンを生成するために使用されます。 APIキーは、「 Logpushジョブの更新」API を使用して更新することができます。

重要: ユーザーまたはサービス ID には、 IBM Cloud Logs サービスにおいて「Sender」IAM ロールが付与されている必要があります。

Cloud Object Storage 小径
Cloud Object Storage
cos://<BUCKET_OBJECT_PATH>?region=<REGION>&instance-id=<IBM_ClOUD_OBJECT_STORAGE_INSTANCE_ID>&ibm_api_key=<IBM_API_KEY>

例えば:
cos://cis-test-bucket/logs?region=us&instance-id=f75e6d90-4212-4026-851c-d572071146cd

IBM QRadar パス
IBM QRadar
<QRADAR_URL>:<LOG_SOURCE_PORT>

例えば:
https://qradar.example.com:8088

Splunk パス
Splunk
splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&header_Authorization=<SPLUNK_AUTH_TOKEN>&sourcetype=<SOURCE_TYPE>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>

例えば:
splunk://cis-analytics.ibm.com:8088/services/collector/raw?header_Authorization=Splunk%20e6d94e8c-5792-4ad1-be3c-29bcaee0197d&channel=f1aafa4f-684f-4c29-a040-7fe184b03712&sourcetype=cloudflare:json&insecure-skip-verify=false

カスタム HTTP パス
カスタム HTTP
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>

例えば:
https://logs.example.com?header_Authorization=a64Vxxxxx5Aq

--name: Logpushジョブの名前を指定します。

--fields: ログファイルに含めるログフィールドの一覧を指定します。 複数のフィールドを区切るには、コンマを使用します。 利用可能なログフィールドの包括的な一覧を取得するには、 ibmcloud cis logpush-available-fields DNS_DOMAIN_ID --dataset DATASET コマンドを使用するか、 all を使用して、利用可能なすべてのフィールドをログファイルに含めるようにします。

--enable: Logpushジョブを有効または無効にするためのフラグです。 有効な値は、true または false (デフォルト) です。

コマンドの例

サポート対象のデスティネーションのCLIの例:

IBM Cloud ログ
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination "ibmcl://604a309c-585c-4a42-955d-76239ccc1905.ingress.us-south.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=xxxxxxxx" --name logpushJobGen --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63
Cloud Object Storage
   ```sh {: pre}
   ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination cos://cis-test-bucket/logs/{DATE}?region=us&instance-id=f75e6d90-4212-4026-851c-d572071146cd&ibm_api_key=XXX --name logpushcreate --enable true --fields all --timestamps rfc3339 --dataset http_requests --frequency low -i cis-demo --output JSON
   ```
IBM QRadar

ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination https://qradar.example.com:8088 --name logpushJobQRadar --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63
Splunk

ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination splunk://cis-analytics.ibm.com:8088/services/collector/raw?header_Authorization=Splunk%20e6d94e8c-5792-4ad1-be3c-29bcaee0197d&channel=f1aafa4f-684f-4c29-a040-7fe184b03712&sourcetype=cloudflare:json&insecure-skip-verify=false --name logpushJobSplunk --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63
カスタム HTTP

ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination https://logs.example.com?header_Authorization=a64VuywesDu5Aq" --name logpushJobGen --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63

APIを使ったLogpushジョブの作成

IBM Cloud ログ、 Cloud Object Storage、または Splunk を使用している場合は、 Logpush ジョブを作成する API を使用して Logpush ジョブを作成できます。

APIでデータセットの使用可能なログフィールドを取得する

ログフィールドは、Logpushジョブの logpull_options で指定し、送信先に送信される内容をカスタマイズすることができます。 Logpush データセットで利用可能なログフィールドを取得するには、以下の手順に従います

  1. 正しい変数を使用して API 環境をセットアップします。
  2. API コマンドで使用する以下の値を変数に格納します。

CRN: サービス・インスタンスの URL エンコードされた完全な CRN。

ZONE_ID: ドメイン ID。

DATASET: 検査中のLogpushデータセット。 http_requests, range_events, dns_logs, firewall_events のいずれか。

  1. すべての変数が開始されたら、Logpush ジョブを作成します。

    curl -X GET https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/datas/$DATASET/fields \
    --header "Content-Type: application/json" \
    --header "X-Auth-User-Token: Bearer $IAM_TOKEN"'
    

ログを送信先に送信するためのログプッシュジョブの作成

宛先( IBM Cloud Logs、 Cloud Object Storage、または Splunk )にLogpushジョブを作成するには、以下の手順に従います

  1. 正しい変数を使用して API 環境をセットアップします。
  2. API コマンドで使用する以下の値を変数に格納します。

CRN: サービスインスタンスの完全な URL エンコードされたクラウドリソース名(CRN)。

ZONE_ID: ドメイン ID。

--request body: Logpush ジョブ本体を作成するための情報 ( logpush_job_DESTINATION_req ) DESTINATION は以下の値のいずれかです

IBM Cloud ログの送信先
IBM Cloud ログ

ibmcl:データがプッシュされる IBM Cloud Logs インスタンスを識別するための情報。 ibmcl オブジェクト内のフィールドは以下の通りです。

  • instance_id: IBM Cloud LogsインスタンスのID。
  • region: IBM Cloud Logsインスタンスの地域(例: us-south )。
  • api_key: IBM Cloud Logsインスタンスが設定されているアカウントのAPIキーが必要です。 ユーザー用APIキーまたはサービスID用APIキーのいずれかを使用できます。 このキーは、Logpush ジョブ用の無記名トークンを生成するために使用されます。 APIキーは、「 Logpushジョブの更新 」APIを使用して更新することができます。

重要 :ユーザーまたはサービス ID には、 IBM Cloud Logs サービスにおいて「 Sender 」IAM ロールが付与されている必要があります。

ibmcl_names: IBM Cloud のログで使用されるアプリケーション名とサブシステム名をカスタマイズするためのオプションフィールド。 ibmcl_names オブジェクト内のフィールドは次のとおりです。

  • application_name: ジョブのカスタムアプリケーション名。
  • subsystem_name: ジョブのカスタムサブシステム名。
Cloud Object Storage 目的地
Cloud Object Storage
cos: データがプッシュされる Object Storage バケットを特定するための情報。 cos

  • bucket_name :ログが送信される COS バケットの名前 (例: cos-bucket001)。
  • region : Cloud Object Storage インスタンスのリージョン(例: us-south )。
  • id : Cloud Object Storage インスタンスの ID。
  • ibm_api_key : IBM Cloud Logsインスタンスをセットアップするアカウント APIキーが必要です。 ユーザー API キーまたはサービス ID API キーを使用できます。 このキーは、Logpushジョブのベアラートークンを生成する。 APIキーをローテーションするには、「 Logpushジョブの更新 」APIを使用してください。

重要 : お客様サービス ID は、 Object Storage バケットに対して「 Object Writer 」IAM ロールを保有している必要があります。

IBM QRadar 目的地
IBM QRadar
qradar: QRadar HTTP データがプッシュされるレシーバーを特定するための情報。
Splunk 目的地
Splunk

splunk: データがプッシュされる Splunk HTTP イベントコレクター(HEC)を識別するための情報。 splunk オブジェクト内のフィールドは以下の通りです。

  • endpoint_url: URL of the Splunk HEC.
  • channel_id: ログプッシュを一意に識別するためのランダムな GUID。
  • skip_verify: HTTP イベントコレクター証明書の検証をスキップするためのブール値フラグ。 HECが自己署名証明書を使用している場合にのみ、これを true に設定します。
  • source_type : Splunk ソースの種類(例: cloudflare:json )。
  • auth_token : Splunk 認証トークン。
カスタム HTTP 宛先
カスタム HTTP
destination_conf: データをプッシュするカスタム HTTP の宛先を設定するための情報。 Logpushで使用するヘッダーは、クエリパラメータの前に header_ を付加して指定することができます(例: header_Authorization=XXXX )。

name: Logpush ジョブの名前。

enabled: ジョブが有効かどうか。 true または false

logpull_options: 構成ストリング。 例えば、fields=RayID,ZoneID&timestamps=rfc3339 です。

dataset: プルされるデータ・セット。 http_requests, dns_logs, range_events, firewall_events のいずれか。

frequency: CIS がユーザーの宛先にログのバッチを送信する頻度。 high または low

  1. すべての変数が開始されたら、Logpush ジョブを作成します。

    IBM Cloud ログ
    curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \
    --header "Content-Type: application/json" \
    --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \
    --data '{
       "ibmcl": {
          "instance_id": "f8k3309c-585c-4a42-955d-76239cccf8k3",
          "region": "us-south",
          "api_key": "f8k3NQI22dPwNVCcmS62YFL1tm9vaehY6C9jxdtnf8k3"
       },
       "ibmcl_names": {
          "application_name": "cis-edge-logs",
          "subsystem_name": "stage-firewall-logs"
       }
       "dataset": "http_requests",
       "enabled": true,
       "logpull_options": "fields=RayID,ZoneID&timestamps=rfc3339",
       "name": "CIS-Edge-Requests",
       "frequency": "low"
    }'
    
    {: pre}
    
    Cloud Object Storage
    :   ```sh
       curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \
       --header "Content-Type: application/json" \
       --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \
       --data '{
          "cos": {
             "bucket_name": "example_bucket",
             "path": "temp/",
             "id": "cos_instance_id",
             "region": "us-east"
          },
          "dataset": "firewall_events",
          "enabled": false,
          "name": "CIS-Firewall-COS",
          "frequency": "low",
          "logpull_options": "fields=RayID,ZoneID&timestamps=rfc3339",
          "ownership_challenge": "xxxxxxx"
       }'
    

    IBM QRadar
    curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \
    --header "Content-Type: application/json" \
    --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \
    --data '{
       "qradar": {
          "url": "https://example.qradar.ibmcloud.com",
          "port": 8088
       },
       "dataset": "firewall_events",
       "enabled": false,
       "name": "CIS-Firewall-QRadar",
       "frequency": "low",
       "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus&timestamps=rfc3339"
    }'
    
    {: pre}
    
    Splunk
    :   ```sh
       curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \
       --header "Content-Type: application/json" \
       --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \
       --data '{
          "splunk": {
             "endpoint_url": "example.splunkcloud.com:8088/services/collector/raw",
             "channel_id": "def3c136-7a01-4655-b17f-8e25a780ef2c",
             "skip_verify": false,
             "source_type": "cloudflare:json",
             "auth_token": "Splunk fake3585-0f38-4d62-8b43-c4b78584fake"
          },
          "dataset": "http_requests",
          "enabled": true,
          "name": "CIS-Splunk-Logpush",
          "frequency": "high",
          "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus&timestamps=rfc3339"
       }'
    

    カスタム HTTP
    curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \
    --header "Content-Type: application/json" \
    --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \
    --data '{
       "destination_conf": "https://logs.example.com?header_Authorization=a64VuywesDu5Aq",
       "dataset": "http_requests",
       "enabled": true,
       "name": "CIS-Custom-Logpush",
       "frequency": "high",
       "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus&timestamps=rfc3339"
    }'
    
    {: pre}