管理 Logpush 作業

IBM Cloud® Internet Services 企業級方案可存取其網域的詳細記錄,內容包含:- 應用程式存取記錄( HTTP )- 網域名稱系統(DNS)查詢記錄- 範圍查詢記錄- 防火牆事件記錄 這些日誌有助於偵錯和分析,特別是與其他資料來源(例如來源的入口或應用程式伺服器日誌)結合使用時。

開始之前

在使用控制台建立 Logpush 工作之前,請審閱以下資訊並滿足所有先決條件:

  • 目前,CIS 控制台支援以下目的地:

    • IBM Cloud 日誌
    • Cloud Object Storage
    • IBM QRadar
    • Splunk
  • 使用 Logpush 之前,請務必 啟用記錄保留功能

  • 如果 CIS 沒有明確支援您的目的地,Logpush 仍可透過自訂 HTTP 目的地存取該目的地。 這包括您自訂的 HTTP 日誌伺服器。

    為避免出錯,請確定目的地可以接受 gzip 檔案上傳,其名稱為 test.txt.gz,包含 {"content":"tests"} 的壓縮內容。

  • 僅適用於 Splunk:當您傳送日誌到 QRadar 或 Splunk 時,CIS 會檢查 IP 位址和連接埠是否可存取,並驗證 HTTP Receiver 的憑證。 如果所有參數都有效,則會建立 Logpush 工作,並開始傳送事件到 HTTP Receiver 日誌來源 ( QRadar ) 或 HTTP Event Collector ( Splunk )。

在主控台中建立 Logpush 工作

若要在主控台中建立 Logpush 作業,請遵循以下步驟:

  1. 在 CIS 主控台中,導覽到帳戶 > 日誌,然後按一下建立

  2. 從可用選項中選擇並設定目的地服務類型:

    IBM Cloud 日誌
    1. 從服務類型選項中選取 IBM Cloud Logs

    2. 下一步

    3. 請輸入執行個體 ID

    4. 選擇實例區域

    5. 請輸入 API 金鑰

      需要設定 IBM Cloud 日誌實例的帳號的 API 金鑰。 您可以使用使用者 API 金鑰或服務 ID API 金鑰。 此密鑰用於為 Logpush 工作產生承載令牌。 API 金鑰可透過使用 更新 Logpush 工作 API 來輪換。

      對於 IBM Cloud 日誌服務,使用者或服務 ID 必須被授予傳送者 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 金鑰可透過使用 更新 Logpush 工作 API 來輪換。

      對於 Cloud Object Storage 服務,使用者或服務 ID 必須被賦予水桶的物件寫入員 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. 選擇所需的 Timestamp 格式頻率設定。

    3. 透過將啟用開關切換為來選擇是否啟用 Logpush 作業。

    4. 選擇要包含在 Logpush 工作中的記錄欄位。

      您可以使用開關選取所有欄位 或展開所有欄位。 您也可以還原為預設設定。

    5. 按一下 「完成」 以建立您的 Logpush 作業。

Logpush 工作已建立,並開始將日誌傳送至設定的目的地。

從 CLI 建立 Logpush 作業

您可以使用 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 工作產生承載令牌。 可透過「更新 Logpush 工作」API 來輪替 API 金鑰。

重要: 必須在「 IBM Cloud Logs」服務中,授予該使用者或服務 ID 「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 工作。 有效值為 truefalse (預設值)。

指令範例

支援目的地的 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 Logs、Cloud Object Storage 或 Splunk 時,您可以使用 Create a Logpush job API 來建立 Logpush job。

使用 API 取得資料集的可用日誌欄位

可在 Logpush Job 的 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"'
    

建立 Logpush 工作以傳送日誌到您的目的地

若要建立一個 Logpush 工作到您的目的地 ( IBM Cloud Logs, Cloud Object Storage, 或 Splunk ),請遵循下列步驟:

  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 日誌實例的 ID。
  • region : IBM Cloud 日誌實例的區域 (例如 us-south )。
  • api_key :需要設定 IBM Cloud Logs 帳戶的 API 金鑰。 您可以使用使用者 API 金鑰或服務 ID API 金鑰。 此密鑰用於為 Logpush 工作產生承載令牌。 可透過「更新 Logpush 工作」API 來輪替 API 金鑰。

重要 :必須在「 IBM Cloud Logs」服務中,授予該使用者或服務 ID 「 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 日誌實例設定的帳戶的 API 金鑰。 您可以使用使用者 API 金鑰或服務 ID API 金鑰。 此密鑰會產生 Logpush 工作的承載令牌。 若要輪替 API 金鑰,請使用「更新 Logpush 工作」API。

重要 :客戶或服務 ID 必須在 Object Storage 儲存桶上擁有「 Object Writer 」IAM 角色。

IBM QRadar 目的地
IBM QRadar
qradar: QRadar HTTP Receiver(資料推送地點)的資訊。
Splunk 目的地
Splunk

splunk:用來辨識推送資料的 Splunk HTTP Event Collector (HEC) 的資訊。 splunk 物件內的欄位:

  • endpoint_url : URL 的 Splunk HEC。
  • channel_id :用於唯一識別日誌推送的隨機 GUID。
  • skip_verify :用於跳過 HTTP Event Collector 證書驗證的布林標誌。 只有在 HEC 使用自簽證書時,才將此設定為 true
  • source_type : Splunk 來源類型 (例如: cloudflare:json )。
  • auth_token : Splunk 授權令牌。
自訂 HTTP 目的地
自訂 HTTP
destination_conf:用於設定推送資料的自訂 HTTP 目的地的資訊。 標頭可指定由 Logpush 使用,查詢參數以 header_ 為前綴 (例如:header_Authorization=XXXX)。

name:Logpush 作業的名稱。

enabled:作業是否啟用。 請選擇 truefalse

logpull_options:設定字串。 例如,fields=RayID,ZoneID&timestamps=rfc3339

dataset:拉取的資料集。 之一 http_requests, dns_logs, range_events, firewall_events

frequency: CIS 將日誌批次傳送至您指定目的地的頻率。 請選擇 highlow

  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}