管理 Logpush 作业
IBM Cloud® Internet Services 企业级方案可访问其域名的 HTTP、DNS和Range请求的详细日志,以及防火墙事件记录。 这些日志有助于调试和分析,尤其是在与其他数据源(如原点的入口或应用服务器日志)相结合时。
准备工作
在通过控制台创建 Logpush 作业之前,请查看以下信息并满足所有先决条件:
-
目前,CIS 控制台支持以下目标:
- IBM Cloud Logs
- Cloud Object Storage
- IBM QRadar
- Splunk
-
在使用Logpush之前,请务必 启用日志保留功能。
-
如果 CIS 不明确支持您的目的地,Logpush 仍可通过自定义 HTTP 目的地访问该目的地。 这包括您自己定制的 HTTP 日志服务器。
为避免出错,请确保目的地可以接受名为
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 Logs
-
-
从服务类型选项中选择 IBM Cloud 日志。
-
单击下一步。
-
请输入实例 ID。
-
选择实例所在的区域。
-
请输入 API 密钥。
需要 IBM Cloud 日志实例所在账户的 API 密钥。 您可以使用用户API密钥或服务ID API密钥。 此密钥用于为Logpush作业生成一个无记名令牌。 API 密钥可通过使用 更新日志推送作业 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 密钥可通过使用 更新日志推送作业 API 进行轮换。
对于 Cloud Object Storage 服务,用户或服务 ID 必须被授予桶的对象写入器 IAM 角色。
-
单击下一步。
-
- IBM QRadar
-
- 从服务类型选项中选择 IBM QRadar 从服务类型选项中选择
- 单击下一步。
- 输入 QRadar URL,然后选择日志源端口。
- 单击下一步。
- Splunk
-
-
从服务类型选项中选择 Splunk 服务类型选项。
-
单击下一步。
-
输入 Splunk 原始 HTTP 事件收集器 URL、通道 ID 和验证令牌。
您可以选择使用不安全的验证方式,但并不推荐这样做。
-
单击下一步。
-
-
查看日志推送任务配置:
-
验证 Logpush 详细信息是否正确。
-
选择所需的时间戳格式和频率设置。
-
选择是否启用Logpush作业,将启用开关切换到“开启” 即可。
-
选择要包含在Logpush任务中的日志字段。
您可以使用切换按钮选择所有字段或展开所有字段。 您还可以恢复默认设置。
-
点击 “完成” 创建您的Logpush任务。
-
创建 Logpush 作业,并开始向配置的目标发送日志。
从命令行界面创建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 Logs |
|---|
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>
例如需要设置 日志实例的账户的 API 密钥。 IBM Cloud 您可以使用用户API密钥或服务ID API密钥。 此密钥用于为Logpush作业生成一个无记名令牌。 可以通过使用 “更新 Logpush 任务”API 来轮换 API 密钥。 重要提示: 必须在“ IBM Cloud 日志”服务中,向该用户或服务 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 Logs
- 示例
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数据集的可用日志字段,请按照以下步骤操作:
- 使用正确的变量设置 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任务,将日志发送到您的目的地
要创建一个目标为( IBM Cloud 日志、Cloud Object Storage 或 Splunk )的 Logpush 作业,请按照以下步骤操作:
- 使用正确的变量设置 API 环境。
- 在变量中存储以下值,以便在 API 命令中使用:
CRN:服务实例的完整 URL 编码云资源名称(CRN)。
ZONE_ID: 域名 ID。
--request body:创建Logpush作业正文的信息( logpush_job_DESTINATION_req ),其中 DESTINATION 为以下值之一:
| IBM Cloud Logs |
|---|
|
重要提示 :必须在“ IBM Cloud 日志”服务中,向该用户或服务ID授予 “Sender” IAM角色。
|
| Cloud Object Storage |
|---|
cos:用于识别 Object Storage 数据推送桶的信息。 cos 对象中的字段有
重要提示 :客户或服务 ID 必须在 Object Storage 存储桶上拥有 “Object Writer ”IAM 角色。 |
| IBM QRadar |
|---|
qradar: QRadar HTTP 接收机的信息。 |
| 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 Logs
-
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}