管理 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 作業,請遵循以下步驟:
-
在 CIS 主控台中,導覽到帳戶 > 日誌,然後按一下建立。
-
從可用選項中選擇並設定目的地服務類型:
- IBM Cloud 日誌
-
-
從服務類型選項中選取 IBM Cloud Logs。
-
按下一步。
-
請輸入執行個體 ID。
-
選擇實例區域。
-
請輸入 API 金鑰。
需要設定 IBM Cloud 日誌實例的帳號的 API 金鑰。 您可以使用使用者 API 金鑰或服務 ID API 金鑰。 此密鑰用於為 Logpush 工作產生承載令牌。 API 金鑰可透過使用 更新 Logpush 工作 API 來輪換。
對於 IBM Cloud 日誌服務,使用者或服務 ID 必須被授予傳送者 IAM 角色。
-
按下一步。
-
- Cloud Object Storage
-
-
選取 Cloud Object Storage 從服務類型選項中選取。
-
按下一步。
-
輸入 Cloud Object Storage 儲存桶 ID、儲存桶名稱、儲存桶區域、儲存桶路徑(可選)和 API 金鑰。
可選:啟用將記錄整理到每日資料夾。
Cloud Object Storage 的目的地值必須是唯一的。 請使用唯一的儲存桶路徑,以避免衝突。
需要設定 Cloud Object Storage 範例的帳號的 API 金鑰。 您可以使用使用者 API 金鑰或服務 ID API 金鑰。 此密鑰用於為 Logpush 工作產生承載令牌。 API 金鑰可透過使用 更新 Logpush 工作 API 來輪換。
對於 Cloud Object Storage 服務,使用者或服務 ID 必須被賦予水桶的物件寫入員 IAM 角色。
-
按下一步。
-
- IBM QRadar
-
- 選擇 IBM QRadar 從服務類型選項中選取。
- 按下一步。
- 輸入 QRadar URL,然後選擇記錄來源連接埠。
- 按下一步。
- Splunk
-
-
選取 Splunk 從服務類型選項中選取。
-
按下一步。
-
輸入 Splunk 原始 HTTP 事件收集器 URL、頻道 ID 和驗證標記。
您可以選擇使用不安全的驗證;但不建議這樣做。
-
按下一步。
-
-
檢視 logpush 工作設定:
-
驗證 Logpush 詳細資訊是否正確。
-
選擇所需的 Timestamp 格式和頻率設定。
-
透過將啟用開關切換為開來選擇是否啟用 Logpush 作業。
-
選擇要包含在 Logpush 工作中的記錄欄位。
您可以使用開關選取所有欄位 或展開所有欄位。 您也可以還原為預設設定。
-
按一下 「完成」 以建立您的 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 日誌 |
|---|
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>
例如:需要設定 Logs 範例的帳號的 API 金鑰。 IBM Cloud 您可以使用使用者 API 金鑰或服務 ID API 金鑰。 此密鑰用於為 Logpush 工作產生承載令牌。 可透過「更新 Logpush 工作」API 來輪替 API 金鑰。 重要: 必須在「 IBM Cloud Logs」服務中,授予該使用者或服務 ID 「Sender」IAM 角色。 |
| Cloud Object Storage |
|---|
cos://<BUCKET_OBJECT_PATH>?region=<REGION>&instance-id=<IBM_ClOUD_OBJECT_STORAGE_INSTANCE_ID>&ibm_api_key=<IBM_API_KEY>
例如: |
| IBM QRadar |
|---|
<QRADAR_URL>:<LOG_SOURCE_PORT>
例如: |
| Splunk |
|---|
splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&header_Authorization=<SPLUNK_AUTH_TOKEN>&sourcetype=<SOURCE_TYPE>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>
例如: |
| 自訂 HTTP |
|---|
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>
例如: |
--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 Logs、Cloud Object Storage 或 Splunk 時,您可以使用 Create a Logpush job API 來建立 Logpush job。
使用 API 取得資料集的可用日誌欄位
可在 Logpush Job 的 logpull_options 中指定日誌欄位,以自訂傳送至目的地的內容。 若要取得 Logpush 資料集的可用日誌欄位,請遵循下列步驟:
- 使用正確的變數設定您的 API 環境。
- 將以下值儲存在 API 命令中使用的變數中:
CRN:服務實例的完整 URL 編碼 CRN。
ZONE_ID: 網域 ID。
DATASET:正在檢查的 Logpush 資料集。 之一 http_requests, range_events, dns_logs, firewall_events。
-
當所有變數都啟動後,建立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 ),請遵循下列步驟:
- 使用正確的變數設定您的 API 環境。
- 將以下值儲存在 API 命令中使用的變數中:
CRN:服務實例的完整 URL 編碼雲端資源名稱 (CRN)。
ZONE_ID: 網域 ID。
--request body:用於建立 Logpush 工作正文的資訊 ( logpush_job_DESTINATION_req ) 其中 DESTINATION 為下列值之一:
| IBM Cloud 日誌 |
|---|
|
重要 :必須在「 IBM Cloud Logs」服務中,授予該使用者或服務 ID 「 Sender」 IAM 角色。
|
| Cloud Object Storage |
|---|
cos:識別推送資料的 Object Storage 桶的資訊。 cos 物件內的欄位為
重要 :客戶或服務 ID 必須在 Object Storage 儲存桶上擁有「 Object Writer 」IAM 角色。 |
| IBM QRadar |
|---|
qradar: QRadar HTTP Receiver(資料推送地點)的資訊。 |
| Splunk |
|---|
|
|
| 自訂 HTTP |
|---|
destination_conf:用於設定推送資料的自訂 HTTP 目的地的資訊。 標頭可指定由 Logpush 使用,查詢參數以 header_ 為前綴 (例如:header_Authorization=XXXX)。 |
name:Logpush 作業的名稱。
enabled:作業是否啟用。 請選擇 true 或 false。
logpull_options:設定字串。 例如,fields=RayID,ZoneID×tamps=rfc3339。
dataset:拉取的資料集。 之一 http_requests, dns_logs, range_events, firewall_events。
frequency: CIS 將日誌批次傳送至您指定目的地的頻率。 請選擇 high 或 low。
-
當所有變數都啟動後,建立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×tamps=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×tamps=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×tamps=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×tamps=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×tamps=rfc3339" }'
{: pre}