管理 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 作业,请按照以下步骤操作:

  1. 在 CIS 控制台中,导航至账户 > 日志,然后单击创建

  2. 从可用选项中选择并配置目的地服务类型:

    IBM Cloud Logs
    1. 从服务类型选项中选择 IBM Cloud 日志

    2. 单击下一步

    3. 请输入实例 ID

    4. 选择实例所在的区域

    5. 请输入 API 密钥

      需要 IBM Cloud 日志实例所在账户的 API 密钥。 您可以使用用户API密钥或服务ID API密钥。 此密钥用于为Logpush作业生成一个无记名令牌。 API 密钥可通过使用 更新日志推送作业 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 密钥可通过使用 更新日志推送作业 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. 查看日志推送任务配置:

    1. 验证 Logpush 详细信息是否正确。

    2. 选择所需的时间戳格式频率设置。

    3. 选择是否启用Logpush作业,将启用开关切换到“开启” 即可。

    4. 选择要包含在Logpush任务中的日志字段。

      您可以使用切换按钮选择所有字段展开所有字段。 您还可以恢复默认设置。

    5. 点击 “完成” 创建您的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 日志路径
IBM Cloud Logs
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>

例如需要设置 日志实例的账户的 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 日志”服务中,向该用户或服务 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 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数据集的可用日志字段,请按照以下步骤操作:

  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任务,将日志发送到您的目的地

要创建一个目标为( IBM Cloud 日志、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 Logs

ibmcl:用于标识推送数据的 IBM Cloud 日志实例的信息。 ibmcl 对象中的字段包括:

  • instance_id : IBM Cloud 日志实例的ID。
  • region : IBM Cloud 日志实例的区域(例如, us-south )。
  • api_key :需要设置 IBM Cloud 日志实例的帐户的API密钥。 您可以使用用户API密钥或服务ID API密钥。 此密钥用于为Logpush作业生成一个无记名令牌。 可以通过使用 “更新 Logpush 任务”API 来轮换 API 密钥。

重要提示 :必须在“ IBM Cloud 日志”服务中,向该用户或服务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 接收机的信息。
Splunk 目的地
Splunk

splunk:用于识别 Splunk HTTP Event Collector (HEC)的信息,数据将推送到该位置。 splunk 对象中的字段包括:

  • endpoint_url : URL 的 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:工作是否已启用。 truefalse

logpull_options:配置字符串。 例如,fields=RayID,ZoneID&timestamps=rfc3339

dataset:提取的数据集。 http_requests, dns_logs, range_events, firewall_events 中的一个。

frequency: CIS 向您的目标位置发送日志批次的频率。 highlow

  1. 启动所有变量后,创建 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&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}