Gestion des tâches Logpush

IBM Cloud® Internet Services Les forfaits Enterprise donnent accès à des journaux détaillés des requêtes HTTP, DNS et Range, ainsi qu’aux événements liés au pare-feu pour leurs domaines. Ces journaux sont utiles pour le débogage et l'analyse, en particulier lorsqu'ils sont combinés à d'autres sources de données, telles que les journaux de serveur d'applications ou du trafic entrant sur l'origine.

Avant de commencer

Avant de créer une tâche Logpush à l'aide de la console, consultez les informations suivantes et vérifiez que toutes les conditions préalables sont remplies :

  • Actuellement, la console CIS prend en charge les destinations suivantes :

    • IBM Cloud Logs
    • Cloud Object Storage
    • IBM QRadar
    • Splunk
  • Veillez à activer la conservation des journaux avant d'utiliser Logpush.

  • Si votre destination n'est pas explicitement prise en charge par CIS, elle peut toujours être accessible par Logpush avec une destination Custom HTTP. Cela inclut vos propres serveurs de logs HTTP.

    Pour éviter les erreurs, assurez-vous que la destination peut accepter un téléchargement de fichier gzippé nommé test.txt.gz, contenant le contenu compressé {"content":"tests"}.

  • Pour Splunk uniquement : Lorsque vous envoyez des journaux à QRadar ou Splunk, CIS vérifie l'accessibilité de l'adresse IP et du port et valide le certificat du récepteur HTTP. Si tous les paramètres sont valides, la tâche Logpush est créée et commence à envoyer des événements à la source d'enregistrement HTTP Receiver ( QRadar ) ou au collecteur d'événements HTTP ( Splunk ).

Créer une tâche Logpush dans la console

Pour créer une tâche Logpush dans la console, procédez comme suit :

  1. Dans la console CIS, naviguez vers Compte > Journaux, puis cliquez sur Créer.

  2. Sélectionnez et configurez les types de services de destination parmi les options disponibles :

    IBM Cloud Logs
    1. Sélectionnez IBM Cloud Logs dans les options de type de service.

    2. Cliquez sur Suivant.

    3. Saisissez l'ID de l'instance.

    4. Sélectionnez la région de l'instance.

    5. Saisissez la clé API.

      Une clé API pour le compte où l'instance IBM Cloud Logs est configurée est nécessaire. Vous pouvez utiliser soit une clé API utilisateur, soit une clé API d'identifiant de service. Cette clé est utilisée pour générer un jeton de support pour la tâche Logpush. La clé API peut être renouvelée en utilisant l'API "Update a Logpush job".

      Pour un service IBM Cloud Logs, l'utilisateur ou l'identifiant du service doit se voir attribuer le rôle IAM Sender.

    6. Cliquez sur Suivant.

    Cloud Object Storage
    1. Sélectionnez Cloud Object Storage parmi les options de type de service.

    2. Cliquez sur Suivant.

    3. Saisissez l'ID de l'instance Cloud Object Storage, le nom du seau, la région du seau, le chemin d'accès au seau (facultatif) et la clé API.

      Facultatif : Activer l'option Organiser les journaux dans des dossiers quotidiens.

      Les valeurs de destination pour Cloud Object Storage doivent être uniques. Utilisez un chemin d'accès unique au compartiment pour éviter les conflits.

      Une clé API pour le compte où l'instance Cloud Object Storage est configurée est nécessaire. Vous pouvez utiliser soit une clé API utilisateur, soit une clé API d'identifiant de service. Cette clé est utilisée pour générer un jeton de support pour la tâche Logpush. La clé API peut être renouvelée en utilisant l'API "Update a Logpush job".

      Pour un service Cloud Object Storage, l'utilisateur ou l'identifiant du service doit se voir attribuer le rôle IAM d' auteur d'objets pour le godet.

    4. Cliquez sur Suivant.

    IBM QRadar
    1. Sélectionnez l'option IBM QRadar dans les options de type de service.
    2. Cliquez sur Suivant.
    3. Saisissez l'adresse QRadar URL, puis sélectionnez le port source du journal.
    4. Cliquez sur Suivant.
    Splunk
    1. Sélectionnez Splunk parmi les options de type de service.

    2. Cliquez sur Suivant.

    3. Saisissez le collecteur d'événements Splunk raw HTTP URL, l'ID du canal et le jeton d'authentification.

      Vous pouvez choisir d'utiliser une vérification non sécurisée, mais ce n'est pas recommandé.

    4. Cliquez sur Suivant.

  3. Examinez les configurations de la tâche logpush :

    1. Vérifiez que les informations relatives à Logpush sont correctes.

    2. Sélectionnez le format d'horodatage et les paramètres de fréquence requis.

    3. Choisissez d'activer ou non la tâche Logpush en mettant le commutateur Enablement sur On.

    4. Sélectionnez les champs de journal à inclure dans la tâche Logpush.

      Vous pouvez utiliser les boutons pour sélectionner tous les champs ou développer tous les champs. Vous pouvez également revenir aux paramètres par défaut.

    5. Cliquez sur Terminé pour créer votre tâche Logpush.

La tâche Logpush est créée et commence à envoyer les journaux vers la destination configurée.

Créer une tâche Logpush à partir de l'interface de programmation

Vous pouvez utiliser le ibmcloud cis logpush-job-create Pour créer une tâche Logpush.

Pour créer un travail Logpush pour un domaine spécifique et activer ce travail, exécutez la commande suivante :

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

Où :

-destination: Indique le chemin d'accès à la destination. Les chemins d'accès aux destinations prises en charge sont les suivants :

IBM Cloud Chemin d'accès aux journaux
IBM Cloud Logs
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>

Par exemple, une clé API pour le compte dans lequel l'instance Logs est configurée est requise :
ibmcl://604a309c-585c-4a42-955d-76239ccc1905.ingress.us-south.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=zxzeNQI22dPwxxxxxxxx9jxdtn1EVK

Une clé API pour le compte où l'instance IBM Cloud Logs est configurée est nécessaire. Vous pouvez utiliser soit une clé API utilisateur, soit une clé API d'identifiant de service. Cette clé est utilisée pour générer un jeton de support pour la tâche Logpush. La clé API peut être renouvelée à l'aide de l'API « Mettre à jour une tâche Logpush ».

Important : l'utilisateur ou l'ID de service doit disposer du rôle IAM « Sender » au sein du service « IBM Cloud Logs ».

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

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

IBM QRadar chemin
IBM QRadar
<QRADAR_URL>:<LOG_SOURCE_PORT>

Par exemple :
https://qradar.example.com:8088

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

Par exemple :
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

Chemin d' HTTP s personnalisé
Personnalisé HTTP
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>

Par exemple :
https://logs.example.com?header_Authorization=a64Vxxxxx5Aq

--name: Spécifie le nom de la tâche Logpush.

--fields: Spécifie la liste des champs de journalisation à inclure dans les fichiers journaux. Utilisez des virgules pour séparer plusieurs zones. Utilisez la commande ibmcloud cis logpush-available-fields DNS_DOMAIN_ID --dataset DATASET pour obtenir la liste complète des champs de journalisation disponibles, ou utilisez all pour inclure tous les champs disponibles dans les fichiers journaux.

--enable: Il s'agit du paramètre permettant d'activer ou de désactiver la tâche Logpush. Les valeurs valides sont true et false (valeur par défaut).

Exemples de commande

Exemples de CLI pour les destinations prises en charge :

IBM Cloud Logs
Exemple
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 :
Exemple

   ```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

Exemple

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

Exemple

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
Personnalisé HTTP

Exemple

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

Créer une tâche Logpush avec l'API

Vous pouvez utiliser l'API Create a Logpush job pour créer une tâche Logpush lorsque vous utilisez IBM Cloud Logs, Cloud Object Storage, ou Splunk.

Obtenir les champs de journalisation disponibles pour un ensemble de données avec l'API

Les champs du journal peuvent être spécifiés dans le site logpull_options d'un travail Logpush pour personnaliser ce qui est envoyé à la destination. Pour obtenir les champs de journalisation disponibles pour un jeu de données Logpush, procédez comme suit :

  1. Configurez l'environnement de votre API avec les variables appropriées.
  2. Stockez les valeurs suivantes dans les variables destinées à être utilisées dans la commande d'API :

CRN: CRN complet codé en URL de l'instance de service.

ZONE_ID: L'ID de domaine.

DATASET: L'ensemble de données Logpush en cours d'inspection. Un des éléments suivants : http_requests, range_events, dns_logs, firewall_events.

  1. Lorsque toutes les variables sont initiées, créez le travail 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"'
    

Création d'une tâche Logpush pour envoyer les logs vers votre destination

Pour créer une tâche Logpush vers votre destination ( IBM Cloud Logs, Cloud Object Storage, ou Splunk ), procédez comme suit :

  1. Configurez l'environnement de votre API avec les variables appropriées.
  2. Stockez les valeurs suivantes dans les variables destinées à être utilisées dans la commande d'API :

CRN: Le nom complet de la ressource cloud (CRN) de l'instance de service, codé sur URL.

ZONE_ID: L'ID de domaine.

--request body: Informations pour créer le corps du travail de Logpush ( logpush_job_DESTINATION_req ) où DESTINATION est l'une des valeurs suivantes :

IBM Cloud Destination des journaux
IBM Cloud Logs

ibmcl: Informations permettant d'identifier l'instance IBM Cloud Logs dans laquelle les données sont envoyées. Les champs de l'objet ibmcl sont les suivants :

  • instance_id: ID de l'instance IBM Cloud Logs.
  • region: Région de l'instance IBM Cloud Logs (par exemple, us-south ).
  • api_key: Une clé API pour le compte où l'instance IBM Cloud Logs est configurée est nécessaire. Vous pouvez utiliser soit une clé API utilisateur, soit une clé API d'identifiant de service. Cette clé est utilisée pour générer un jeton de support pour la tâche Logpush. La clé API peut être renouvelée à l'aide de l'API « Mettre à jour une tâche Logpush ».

Important: l'utilisateur ou l'ID de service doit se voir attribuer le rôle IAM « Sender » au sein du service « IBM Cloud Logs ».

ibmcl_names: Champ facultatif permettant de personnaliser les noms d'application et de sous-système utilisés dans les journaux IBM Cloud. Les champs de l'objet ibmcl_names sont les suivants :

  • application_name: Nom de l'application personnalisée pour le travail.
  • subsystem_name: Nom du sous-système personnalisé pour le travail.
Cloud Object Storage destination
Cloud Object Storage
cos: Informations permettant d'identifier le compartiment Object Storage dans lequel les données sont transférées. Les champs de l'objet cos sont les suivants

  • bucket_name: Nom du seau COS dans lequel les journaux sont envoyés (exemple : cos-bucket001).
  • region: Région de l'instance Cloud Object Storage (par exemple, us-south).
  • id: ID de l'instance Cloud Object Storage.
  • ibm_api_key: Une clé API pour le compte où l'instance IBM Cloud Logs est configurée est requise. Vous pouvez utiliser une clé d'interface de programmation utilisateur ou une clé d'interface de programmation d'ID de service. Cette clé génère le jeton de support pour la tâche Logpush. Pour renouveler la clé API, utilisez l'API « Mettre à jour une tâche Logpush ».

Important: le client ou l'ID du service doit disposer du rôle IAM « Object Writer » sur le compartiment « Object Storage ».

IBM QRadar destination
IBM QRadar
qradar: Informations permettant d'identifier le récepteur QRadar HTTP où les données sont transmises.
Splunk destination
Splunk

splunk: Informations permettant d'identifier le Splunk HTTP Event Collector (HEC) où les données sont transmises. Les champs de l'objet splunk sont les suivants :

  • endpoint_url: URL de l'objet Splunk HEC.
  • channel_id: Un GUID aléatoire pour identifier de manière unique la poussée du journal.
  • skip_verify: Indicateur booléen permettant d'ignorer la validation du certificat de HTTP Event Collector. Ne définissez cette valeur à true que si le CEH utilise un certificat auto-signé.
  • source_type: Le type de source Splunk (par exemple : cloudflare:json ).
  • auth_token: Le jeton d'autorisation Splunk.
HTTP s personnalisées destination
Personnalisé HTTP
destination_conf: Informations permettant de configurer la destination Custom HTTP, où les données sont transmises. Les en-têtes peuvent être spécifiés pour être utilisés par Logpush avec des paramètres de requête préfixés par header_ (par exemple : header_Authorization=XXXX).

name: Le nom du travail de connexion.

enabled: Indique si le travail est activé. Les valeurs admises sont true ou false.

logpull_options: La chaîne de configuration. Par exemple, fields=RayID,ZoneID&timestamps=rfc3339.

dataset: fichier extrait. Un des éléments suivants : http_requests, dns_logs, range_events, firewall_events.

frequency: fréquence à laquelle CIS envoie des lots de journaux à votre destination. Les valeurs admises sont high ou low.

  1. Lorsque toutes les variables sont initiées, créez le travail 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"
       }'
    

    Personnalisé 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}