Gerenciamento de trabalhos do Logpush

IBM Cloud® Internet Services Os planos de nível empresarial têm acesso a registros detalhados de solicitações de HTTP, DNS e Range, bem como a eventos de firewall relacionados aos seus domínios. Esses logs são úteis para depuração e análise de dados, especialmente quando combinados com outras origens de dados, como logs do ingresso ou do servidor de aplicativos na origem.

Antes de Iniciar

Antes de criar uma tarefa Logpush usando o console, analise as informações a seguir e verifique se todos os pré-requisitos estão atendidos:

  • Atualmente, o console CIS suporta os seguintes destinos:

    • IBM Cloud Logs
    • Cloud Object Storage
    • IBM QRadar
    • Splunk
  • Certifique-se de ativar a retenção de registros antes de usar o Logpush.

  • Se o seu destino não for explicitamente compatível com CIS, ele ainda poderá ser acessado pelo Logpush com um destino personalizado HTTP. Isso inclui seus próprios servidores de registro HTTP personalizados.

    Para evitar erros, certifique-se de que o destino possa aceitar um upload de arquivo compactado com o nome test.txt.gz, contendo o conteúdo compactado {"content":"tests"}.

  • Somente para Splunk: Quando você envia logs para QRadar ou Splunk, CIS verifica o endereço IP e a porta quanto à acessibilidade e valida o certificado do receptor HTTP. Se todos os parâmetros forem válidos, o trabalho do Logpush será criado e começará a enviar eventos para a fonte de registro do receptor HTTP ( QRadar ) ou para o coletor de eventos HTTP ( Splunk ).

Criação de um trabalho do Logpush no console

Para criar um trabalho do Logpush no console, siga estas etapas:

  1. No console CIS, navegue até Account > Logs e clique em Create.

  2. Selecione e configure os tipos de serviço de destino entre as opções disponíveis:

    IBM Cloud Logs
    1. Selecione IBM Cloud Logs nas opções de tipo de serviço.

    2. Clique em Avançar.

    3. Insira o ID da instância.

    4. Selecione a região da instância.

    5. Insira a chave da API.

      É necessária uma chave de API para a conta em que a instância do IBM Cloud Logs está configurada. Você pode usar tanto uma chave de API de usuário quanto uma chave de API de ID de serviço. Essa chave é usada para gerar um token de portador para o trabalho do Logpush. A chave da API pode ser girada usando a API Update a Logpush job.

      Para um serviço de registros IBM Cloud, o usuário ou ID de serviço deve receber a função IAM de remetente.

    6. Clique em Avançar.

    Cloud Object Storage
    1. Selecione Cloud Object Storage entre as opções de tipo de serviço.

    2. Clique em Avançar.

    3. Digite o ID da instância Cloud Object Storage, o nome do bucket, a região do bucket, o caminho do bucket (opcional) e a chave de API.

      Opcional: Ative a opção Organizar registros em pastas diárias.

      Os valores de destino para Cloud Object Storage devem ser exclusivos. Use um caminho exclusivo para o bucket a fim de evitar conflitos.

      É necessária uma chave de API para a conta em que a instância Cloud Object Storage está configurada. Você pode usar tanto uma chave de API de usuário quanto uma chave de API de ID de serviço. Essa chave é usada para gerar um token de portador para o trabalho do Logpush. A chave da API pode ser girada usando a API Update a Logpush job.

      Para um serviço Cloud Object Storage, o ID do usuário ou do serviço deve receber a função de IAM Object Writer para o bucket.

    4. Clique em Avançar.

    IBM QRadar
    1. Selecione o IBM QRadar nas opções de tipo de serviço.
    2. Clique em Avançar.
    3. Digite o endereço QRadar URL e selecione a porta de origem do registro.
    4. Clique em Avançar.
    Splunk
    1. Selecione Splunk entre as opções de tipo de serviço.

    2. Clique em Avançar.

    3. Digite o coletor de eventos Splunk raw HTTP URL, a ID do canal e o token de autenticação.

      Você pode optar por usar uma verificação insegura; no entanto, isso não é recomendado.

    4. Clique em Avançar.

  3. Revise as configurações do trabalho de logpush:

    1. Verifique se os detalhes do Logpush estão corretos.

    2. Selecione o formato de carimbo de data/hora e as configurações de frequência necessários.

    3. Escolha se deseja ativar o trabalho do Logpush, alternando a chave Ativação para Ligado.

    4. Selecione os campos de log a serem incluídos na tarefa do Logpush.

      Você pode usar os botões para Selecionar todos os campos ou Expandir todos os campos. Você também pode reverter para as configurações padrão.

    5. Clique em Done (Concluído ) para criar o trabalho do Logpush.

O trabalho do Logpush é criado e começa a enviar os registros para o destino configurado.

Criação de um trabalho do Logpush na CLI

Você pode usar a ibmcloud cis logpush-job-create CLI para criar um trabalho do Logpush.

Para criar uma tarefa de Logpush para um domínio específico e ativar a tarefa, execute o comando a seguir:

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

Em que:

-destination: Especifica o caminho para o destino. Os caminhos para os destinos compatíveis são os seguintes:

IBM Cloud Caminho dos registros
IBM Cloud Logs
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>

Por exemplo:
ibmcl://604a309c-585c-4a42-955d-76239ccc1905.ingress.us-south.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=zxzeNQI22dPwxxxxxxxx9jxdtn1EVK

É necessária uma chave de API para a conta em que a instância do IBM Cloud Logs está configurada. Você pode usar tanto uma chave de API de usuário quanto uma chave de API de ID de serviço. Essa chave é usada para gerar um token de portador para o trabalho do Logpush. A chave da API pode ser atualizada por meio da API “Atualizar uma tarefa do Logpush ”.

Importante: É necessário que o usuário ou o ID do serviço tenha a função IAM “Remetente” concedida no serviço de registros do IBM Cloud.

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

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

IBM QRadar caminho
IBM QRadar
<QRADAR_URL>:<LOG_SOURCE_PORT>

Por exemplo:
https://qradar.example.com:8088

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

Por exemplo:
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

Caminho personalizado para HTTP
Personalizado HTTP
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>

Por exemplo:
https://logs.example.com?header_Authorization=a64Vxxxxx5Aq

--name: Especifica o nome da tarefa do Logpush.

--fields: Especifica a lista de campos de log a serem incluídos nos arquivos de log. Use vírgulas para separar diversos campos. Use o comando ibmcloud cis logpush-available-fields DNS_DOMAIN_ID --dataset DATASET para obter uma lista completa dos campos de log disponíveis ou use all para incluir todos os campos disponíveis nos arquivos de log.

--enable: É o sinalizador para ativar ou desativar a tarefa do Logpush. Os valores válidos são true ou false (padrão).

Exemplos de comando

Exemplos de CLI para os destinos compatíveis:

IBM Cloud Logs
Exemplo
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
Exemplo
   ```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

Exemplo

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

Exemplo

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
Personalizado HTTP

Exemplo

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

Criação de um trabalho do Logpush com a API

Você pode usar a API Create a Logpush job para criar um trabalho de Logpush ao usar IBM Cloud Logs, Cloud Object Storage ou Splunk.

Obtenção dos campos de registro disponíveis para um conjunto de dados com a API

Os campos de registro podem ser especificados no site logpull_options de um trabalho de Logpush para personalizar o que é enviado ao destino. Para obter os campos de registro disponíveis para um conjunto de dados do Logpush, siga estas etapas:

  1. Configure seu ambiente de API com as variáveis corretas.
  2. Armazene os valores a seguir nas variáveis a serem usadas no comando da API:

CRN: o CRN completo codificado por url da instância de serviço.

ZONE_ID: o ID de domínio.

DATASET: O conjunto de dados do Logpush que está sendo inspecionado. Uma das opções http_requests, range_events, dns_logs, firewall_events.

  1. Quando todas as variáveis forem iniciadas, crie a tarefa 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"'
    

Criação de um trabalho do Logpush para enviar logs ao seu destino

Para criar um trabalho de Logpush para o seu destino ( IBM Cloud Logs, Cloud Object Storage ou Splunk ), siga estas etapas:

  1. Configure seu ambiente de API com as variáveis corretas.
  2. Armazene os valores a seguir nas variáveis a serem usadas no comando da API:

CRN: O nome completo do recurso de nuvem (CRN) codificado em URL da instância de serviço.

ZONE_ID: o ID de domínio.

--request body: Informações para criar o corpo do trabalho do Logpush ( logpush_job_DESTINATION_req ) em que DESTINATION é um dos seguintes valores:

IBM Cloud Destino dos registros
IBM Cloud Logs

ibmcl: Informações para identificar a instância do IBM Cloud Logs para a qual os dados são enviados. Os campos do objeto ibmcl são:

  • instance_id: ID da instância do IBM Cloud Logs.
  • region: Região da instância de registros IBM Cloud (por exemplo, us-south ).
  • api_key: É necessária uma chave de API para a conta em que a instância do IBM Cloud Logs está configurada. Você pode usar tanto uma chave de API de usuário quanto uma chave de API de ID de serviço. Essa chave é usada para gerar um token de portador para o trabalho do Logpush. A chave da API pode ser atualizada por meio da API “Atualizar uma tarefa do Logpush ”.

Importante: O usuário ou o ID do serviço deve ter a função IAM “Remetente” atribuída no serviço de registros do IBM Cloud.

ibmcl_names: Campo opcional para personalizar os nomes de aplicativos e subsistemas usados em IBM Cloud Logs. Os campos do objeto ibmcl_names são:

  • application_name: Nome do aplicativo personalizado para o trabalho.
  • subsystem_name: Nome do subsistema personalizado para o trabalho.
Cloud Object Storage destino
Cloud Object Storage
cos: Informações para identificar o bucket do Object Storage para o qual os dados são enviados. Os campos do objeto cos são:

  • bucket_name: Nome do seu bucket COS para onde os registros são enviados (exemplo: cos-bucket001).
  • region: Região da instância Cloud Object Storage (por exemplo, us-south).
  • id: ID da instância Cloud Object Storage.
  • ibm_api_key: É necessária uma chave de API para a conta em que a instância de registros IBM Cloud está configurada. Use uma chave de API do usuário ou uma chave de API do ID de serviço. Essa chave gera o token de portador para o trabalho do Logpush. Para alternar a chave da API, use a API “Atualizar uma tarefa do Logpush ”.

Importante: O cliente ou o ID do serviço deve ter a função IAM “Object Writer” no bucket Object Storage.

IBM QRadar destino
IBM QRadar
qradar: Informações para identificar o QRadar HTTP Receiver para onde os dados são enviados.
Splunk destino
Splunk

splunk: Informações para identificar o Splunk HTTP Event Collector (HEC) para onde os dados são enviados. Os campos do objeto splunk são:

  • endpoint_url: URL do Splunk HEC.
  • channel_id: Um GUID aleatório para identificar exclusivamente o push de registro.
  • skip_verify: Sinalizador booleano para ignorar a validação do certificado do HTTP Event Collector. Defina isso como true somente quando o HEC estiver usando um certificado autoassinado.
  • source_type: O tipo de fonte Splunk (por exemplo: cloudflare:json ).
  • auth_token: O token de autorização Splunk.
Destino personalizado HTTP
Personalizado HTTP
destination_conf: Informações para configurar o destino do HTTP personalizado para onde os dados são enviados. Os cabeçalhos podem ser especificados para serem usados pelo Logpush com parâmetros de consulta prefixados por header_ (por exemplo: header_Authorization=XXXX).

name: o nome da tarefa logpush.

enabled: se a tarefa está ativada. true ou false.

logpull_options: a sequência de configuração. Por exemplo, fields=RayID,ZoneID&timestamps=rfc3339.

dataset: o conjunto de dados que é extraído. Uma das opções http_requests, dns_logs, range_events, firewall_events.

frequency: a frequência na qual o CIS envia lotes de logs para o seu destino. high ou low.

  1. Quando todas as variáveis forem iniciadas, crie a tarefa 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"
       }'
    

    Personalizado 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}