Gestione dei lavori Logpush

IBM Cloud® Internet Services I piani di livello Enterprise hanno accesso a registri dettagliati delle richieste HTTP, DNS e Range, nonché agli eventi firewall relativi ai propri domini. Questi log sono utili per il debug e l'analisi, soprattutto se combinati con altre origini dati, come i log in ingresso o del server delle applicazioni all'origine.

Prima di iniziare

Prima di creare un processo Logpush utilizzando la console, controlla le seguenti informazioni e assicurati di soddisfare tutti i prerequisiti:

  • Attualmente, la console CIS supporta le seguenti destinazioni:

    • Log IBM Cloud
    • Cloud Object Storage
    • IBM QRadar
    • Splunk
  • Assicurarsi di abilitare la conservazione dei registri prima di utilizzare Logpush.

  • Se la destinazione non è esplicitamente supportata da CIS, potrebbe essere comunque accessibile da Logpush con una destinazione personalizzata di HTTP. Questo include i server di log personalizzati di HTTP.

    Per evitare errori, assicurarsi che la destinazione possa accettare il caricamento di un file gzippato denominato test.txt.gz, contenente il contenuto compresso {"content":"tests"}.

  • Solo per Splunk: Quando si inviano i log a QRadar o Splunk, CIS verifica l'accessibilità dell'indirizzo IP e della porta e convalida il certificato del ricevitore HTTP. Se tutti i parametri sono validi, il lavoro Logpush viene creato e inizia a inviare gli eventi alla sorgente di registro HTTP Receiver ( QRadar ) o al raccoglitore di eventi HTTP ( Splunk ).

Creazione di un lavoro Logpush nella console

Per creare un lavoro Logpush nella console, procedere come segue:

  1. Nella console CIS, spostarsi su Account > Registri, quindi fare clic su Crea.

  2. Selezionare e configurare i tipi di servizio di destinazione tra le opzioni disponibili:

    Log IBM Cloud
    1. Selezionare IBM Cloud Logs dalle opzioni del tipo di servizio.

    2. Fai clic su Next.

    3. Inserisci l'ID dell'istanza.

    4. Selezionare la regione dell'istanza.

    5. Inserisci la chiave API.

      È necessaria una chiave API per l'account in cui è impostata l'istanza di IBM Cloud Logs. È possibile utilizzare una chiave API utente o una chiave API ID servizio. Questa chiave viene utilizzata per generare un token portatore per il lavoro Logpush. La chiave API può essere ruotata utilizzando l'API Update a Logpush job.

      Per un servizio IBM Cloud Logs, all'utente o all'ID del servizio deve essere concesso il ruolo IAM Sender.

    6. Fai clic su Next.

    Cloud Object Storage
    1. Selezionare Cloud Object Storage tra le opzioni del tipo di servizio.

    2. Fai clic su Next.

    3. Inserire l'ID dell'istanza Cloud Object Storage, il nome del bucket, la regione del bucket, il percorso del bucket (opzionale) e la chiave API.

      Opzionale: Attivare l'opzione Organizza i registri in cartelle giornaliere.

      I valori di destinazione per Cloud Object Storage devono essere unici. Utilizza un percorso unico per i bucket per evitare conflitti.

      È necessaria una chiave API per l'account in cui è stata configurata l'istanza Cloud Object Storage. È possibile utilizzare una chiave API utente o una chiave API ID servizio. Questa chiave viene utilizzata per generare un token portatore per il lavoro Logpush. La chiave API può essere ruotata utilizzando l'API Update a Logpush job.

      Per un servizio Cloud Object Storage, all'utente o all'ID del servizio deve essere concesso il ruolo Object Writer IAM per il bucket.

    4. Fai clic su Next.

    IBM QRadar
    1. Selezionare il tipo di servizio IBM QRadar tra le opzioni del tipo di servizio.
    2. Fai clic su Next.
    3. Immettere QRadar URL e selezionare la porta di origine del registro.
    4. Fai clic su Next.
    Splunk
    1. Selezionare Splunk tra le opzioni del tipo di servizio.

    2. Fai clic su Next.

    3. Immettere il raccoglitore di eventi Splunk raw HTTP URL, l'ID canale e il token di autenticazione.

      È possibile scegliere di utilizzare una verifica non sicura, ma non è consigliabile.

    4. Fai clic su Next.

  3. Esaminare le configurazioni del lavoro di logpush:

    1. Verificare che i dettagli di Logpush siano corretti.

    2. Selezionare il formato del timestamp e le impostazioni di frequenza desiderate.

    3. Scegliere se abilitare il lavoro Logpush spostando l'interruttore Abilitazione su On.

    4. Selezionare i campi di log da includere nel lavoro Logpush.

      È possibile utilizzare i selettori per Selezionare tutti i campi o Espandere tutti i campi. È anche possibile ripristinare le impostazioni predefinite.

    5. Fare clic su Fine per creare il lavoro Logpush.

Il lavoro Logpush viene creato e inizia a inviare i log alla destinazione configurata.

Creazione di un lavoro Logpush dalla CLI

È possibile utilizzare la ibmcloud cis logpush-job-create CLI per creare un lavoro Logpush.

Per creare un lavoro Logpush per un dominio specifico e attivarlo, eseguire il seguente comando:

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

Dove:

-destination: Specifica il percorso della destinazione. I percorsi per le destinazioni supportate sono i seguenti:

IBM Cloud Percorso dei registri
Log IBM Cloud
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>

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

È necessaria una chiave API per l'account in cui è impostata l'istanza di IBM Cloud Logs. È possibile utilizzare una chiave API utente o una chiave API ID servizio. Questa chiave viene utilizzata per generare un token portatore per il lavoro Logpush. È possibile aggiornare la chiave API utilizzando l'API "Aggiorna un'attività Logpush ".

Importante: all'utente o all'ID del servizio deve essere assegnato il ruolo IAM "Sender" nel servizio Logs di IBM Cloud.

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

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

IBM QRadar percorso
IBM QRadar
<QRADAR_URL>:<LOG_SOURCE_PORT>

Ad esempio:
https://qradar.example.com:8088

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

Ad esempio:
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

Percorso di personalizz HTTP
Personalizzato HTTP
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>

Ad esempio:
https://logs.example.com?header_Authorization=a64Vxxxxx5Aq

--name: Indica il nome del processo Logpush.

--fields: Specifica l'elenco dei campi di log da includere nei file di log. Utilizza le virgole per separare più campi. Utilizza il comando ibmcloud cis logpush-available-fields DNS_DOMAIN_ID --dataset DATASET per ottenere un elenco completo dei campi di log disponibili, oppure utilizza all per includere tutti i campi disponibili nei file di log.

--enable: È l'opzione che consente di abilitare o disabilitare il processo Logpush. I valori validi sono true o false (impostazione predefinita).

Esempi di comando

Esempi di CLI per le destinazioni supportate:

Log IBM Cloud
Esempio
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
Esempio
   ```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

Esempio

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

Esempio

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

Esempio

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

Creazione di un lavoro Logpush con l'API

È possibile utilizzare l'API Crea un lavoro Logpush per creare un lavoro Logpush quando si utilizza IBM Cloud Logs, Cloud Object Storage, o Splunk.

Ottenere i campi di log disponibili per un set di dati con l'API

I campi del registro possono essere specificati nel sito logpull_options di un lavoro Logpush per personalizzare l'invio alla destinazione. Per ottenere i campi di log disponibili per un set di dati Logpush, procedere come segue:

  1. Configura il tuo ambiente API con le variabili corrette.
  2. Memorizza i seguenti valori nelle variabili da utilizzare nel comando API:

CRN: Il CRN completo codificato da URL dell'istanza di servizio.

ZONE_ID: L'ID del dominio.

DATASET: Il set di dati Logpush da ispezionare. Uno di http_requests, range_events, dns_logs, firewall_events.

  1. Quando tutte le variabili sono state inizializzate, creare il lavoro 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"'
    

Creare un lavoro Logpush per inviare i log alla propria destinazione

Per creare un lavoro Logpush verso la destinazione ( IBM Cloud Logs, Cloud Object Storage o Splunk ), procedere come segue:

  1. Configura il tuo ambiente API con le variabili corrette.
  2. Memorizza i seguenti valori nelle variabili da utilizzare nel comando API:

CRN: Il nome completo della risorsa cloud (CRN) codificato da URL dell'istanza del servizio.

ZONE_ID: L'ID del dominio.

--request body: Informazioni per creare il corpo del lavoro Logpush ( logpush_job_DESTINATION_req ) dove DESTINATION è uno dei seguenti valori:

IBM Cloud Destinazione dei registri
Log IBM Cloud

ibmcl: Informazioni per identificare l'istanza di IBM Cloud Logs in cui vengono inviati i dati. I campi dell'oggetto ibmcl sono:

  • instance_id: ID dell'istanza di IBM Cloud Logs.
  • region: Regione dell'istanza di IBM Cloud Logs (ad esempio, us-south ).
  • api_key: È necessaria una chiave API per l'account in cui è impostata l'istanza di IBM Cloud Logs. È possibile utilizzare una chiave API utente o una chiave API ID servizio. Questa chiave viene utilizzata per generare un token portatore per il lavoro Logpush. È possibile aggiornare la chiave API utilizzando l'API " Aggiorna un'attività Logpush ".

Importante: all'utente o all'ID del servizio deve essere assegnato il ruolo IAM "Sender" nel servizio Logs di IBM Cloud.

ibmcl_names: Campo opzionale per personalizzare i nomi delle applicazioni e dei sottosistemi usati nei registri di IBM Cloud. I campi dell'oggetto ibmcl_names sono:

  • application_name: Nome dell'applicazione personalizzata per il lavoro.
  • subsystem_name: Nome del sottosistema personalizzato per il lavoro.
Cloud Object Storage destinazione
Cloud Object Storage
cos: Informazioni per identificare il bucket Object Storage in cui vengono spinti i dati. I campi dell'oggetto cos sono

  • bucket_name: Nome del bucket COS in cui vengono inviati i log (esempio: cos-bucket001).
  • region: Regione dell'istanza Cloud Object Storage (ad esempio, us-south).
  • id: ID dell'istanza Cloud Object Storage.
  • ibm_api_key: È richiesta una chiave API per l'account in cui è impostata l'istanza IBM Cloud Logs. È possibile utilizzare una chiave API utente o una chiave API con ID servizio. Questa chiave genera il token portatore per il lavoro Logpush. Per aggiornare la chiave API, utilizza l'API "Aggiorna un processo Logpush ".

Importante: il cliente o l'ID del servizio deve disporre del ruolo IAM "Object Writer " sul bucket " Object Storage ".

IBM QRadar destinazione
IBM QRadar
qradar: Informazioni per identificare il ricevitore QRadar HTTP dove vengono inviati i dati.
Splunk destinazione
Splunk

splunk: Informazioni per identificare il collettore di eventi (HEC) di Splunk HTTP dove vengono inviati i dati. I campi dell'oggetto splunk sono:

  • endpoint_url: URL dell'oggetto Splunk HEC.
  • channel_id: Un GUID casuale per identificare in modo univoco il log push.
  • skip_verify: Flag booleano per saltare la convalida del certificato di HTTP Event Collector. Impostare questo valore su true solo se HEC utilizza un certificato autofirmato.
  • source_type: Il tipo di sorgente Splunk (ad esempio: cloudflare:json ).
  • auth_token: Il token di autorizzazione Splunk.
Destinazione personalizz HTTP
Personalizzato HTTP
destination_conf: Informazioni per configurare la destinazione Custom- HTTP, dove vengono inviati i dati. Le intestazioni possono essere specificate per essere utilizzate da Logpush con parametri di query preceduti da header_ (ad esempio: header_Authorization=XXXX).

name: Il nome del processo Logpush.

enabled: se il lavoro è abilitato. O true o false.

logpull_options: La stringa di configurazione. Ad esempio, fields=RayID,ZoneID&timestamps=rfc3339.

dataset: il set di dati estratto. Uno di http_requests, dns_logs, range_events, firewall_events.

frequency: La frequenza con cui CIS invia i batch di log alla destinazione specificata. O high o low.

  1. Quando tutte le variabili sono state inizializzate, creare il lavoro Logpush:

    Log 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"
       }'
    

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