Comment puis-je transférer les journaux de flux VPC vers Splunk avec Amazon Kinesis Firehose ?

Lecture de 7 minute(s)
0

Je souhaite améliorer l'intégration de mes données AWS avec Splunk lorsque je les transmets de sources AWS vers un cluster Splunk.

Résolution

Remarque : Kinesis Data Firehose ne prend pas en charge les équilibreurs de type Application Load Balancer ou Network Load Balancer. Vous devez donc utiliser un équilibreur de type Classic Load Balancer à la place. N'oubliez pas d'autoriser les sessions permanentes basées sur la durée en désactivant l'expiration des cookies. Pour en savoir plus sur la résolution des problèmes de flux de diffusion avec les terminaux Splunk, reportez-vous à Données non transmises à Splunk.

Conditions préalables

Création d'un flux de diffusion Kinesis Data Firehose

1.    Créez votre flux de diffusion. Dans Source, sélectionnez Direct PUT.

2.    Dans Destination, sélectionnez Splunk.

3.    Saisissez le nom du flux de diffusion.

Configuration de la transformation des enregistrements avec AWS Lambda

1.    Configurez la transformation des enregistrements. Remarque : sous Transformer les enregistrements source avec AWS Lambda, sélectionnez Activé pour la Transformation d'enregistrement. CloudWatch envoie les journaux sous forme de fichiers .gzip compressés. Ces fichiers doivent ensuite être extraits par Amazon Kinesis avant de pouvoir être utilisés.

2.    Pour la Fonction Lambda, sélectionnez Créer une nouvelle.

3.    Dans la fenêtre Sélectionner un plan Lambda, dans Plan Lambda, sélectionnez Kinesis Firehose CloudWatch Logs Processor.

4.    Sélectionnez le nouvel onglet qui s'ouvre dans votre navigateur pour créer la nouvelle fonction Lambda :
Dans Nom, saisissez le nom de la fonction Lambda.
Dans Rôle, sélectionnez Créer un rôle personnalisé.

5.     Sélectionnez le nouvel onglet qui s'ouvre dans votre navigateur pour créer un nouveau rôle AWS Identity and Access Management (IAM). Vérifiez que le Nom du rôle est bien lambda_basic_execution.

6.    Sélectionnez Autoriser pour créer le rôle, puis revenez à la page de configuration de la fonction Lambda.

7.    Sélectionnez Créer une fonction.

8.    Pour éviter l'expiration de la fonction, prolongez le délai d'expiration à 1 minuteau lieu des 3 secondes par défaut.

9.    Sélectionnez Enregistrer.

Finalisation du flux de diffusion de Kinesis Data Firehose

1.    Ouvrez la console Amazon Kinesis.

2.    Dans le volet de navigation, sélectionnez Data Firehose.

3.    Pour votre flux de diffusion, sélectionnez la fonction Lambda, puis le nom de votre nouvelle fonction AWS Lambda dans la liste déroulante.

4.    Dans Paramètres de destination, saisissez les informations de Splunk HEC, y compris le point de terminaison Splunk HEC que vous avez créé.
Remarque : vous devez mettre fin au point de terminaison Splunk HEC avec un certificat SSL valide. Utilisez le nom d'hôte DNS correspondant pour vous connecter à votre point de terminaison HEC. Le format du point de terminaison du cluster est https://YOUR-ENDPOINT.splunk.com:8088.

5.    Dans Type de point de terminaison Splunk, sélectionnez Point de terminaison brut, puis saisissez le jeton d'authentification.

6.    Sélectionnez Suivant.

7.    (Facultatif) Sélectionnez un compartiment Amazon Simple Storage Service (Amazon S3) existant ou créez-en un nouveau pour sauvegarder les événements en échec ou tous les événements. Veillez à configurer les paramètres Amazon S3 comme les conditions de la mémoire tampon, les paramètres de compression et de chiffrement, ainsi que les options de journalisation des erreurs dans l'assistant de diffusion des flux.

8.    Sous Rôle IAM, sélectionnez Créer un nouveau.

9.    Dans l'onglet qui s'ouvre, saisissez un nom de rôle, puis sélectionnez Autoriser.

10.    Sélectionnez Suivant.

11.    Sélectionnez Créer un flux de diffusion.

Configuration des journaux de flux Amazon VPC

Remarque : si vous disposez d'un journal de flux Amazon VPC, passez à la section Créer un abonnement Amazon CloudWatch Logs. Si vous ne disposez pas d'un journal de flux VPC, procédez comme suit :

1.    Ouvrez la console CloudWatch.

2.    Dans le volet de navigation, sélectionnez Journaux.

3.    Dans Actions, sélectionnez Créer un groupe de journaux.

4.    Saisissez un nom du groupe de journaux.

5.    Sélectionnez Créer un groupe de journaux.

6.    Ouvrez la console Amazon VPC.

7.    Dans le volet de navigation, sous Virtual Private Cloud, sélectionnez Vos VPC.

8.    Dans le volet de contenu, sélectionnez votre VPC.

9.    Sélectionnez la vue des Journaux de flux.

10.    Sélectionnez Créer un journal de flux :

  • Dans Filtrer, sélectionnez Tout.
  • Dans Groupe de journaux de destination, sélectionnez celui que vous venez de créer.
  • Sélectionnez un rôle IAM qui permet à votre Amazon VPC de publier des journaux sur CloudWatch. Si vous ne disposez pas d'un rôle IAM approprié, sous Rôle IAM, sélectionnez Configurer les autorisations, puis Créer un nouveau rôle IAM. Conservez les paramètres par défaut.
  • Sélectionnez Autoriser pour créer et associer le rôle VPCFlowLogs au groupe de journaux de destination.

11.    Sélectionnez Créer.

12.    Établissez un flux en temps réel entre le groupe de journaux et votre flux de diffusion :

Remarque : si des erreurs surviennent lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez bien une version récente de l'interface.

Créer un abonnement Amazon CloudWatch Logs

1.    Accordez l'accès à CloudWatch pour pouvoir publier votre flux Kinesis Data Firehose avec les autorisations de rôle appropriées.

2.    Ouvrez l'interface de la ligne de commande AWS (AWS CLI).

3.    Utilisez le fichier JSON suivant pour créer votre politique de confiance (telle queTrustPolicyForCwlToFireHose.json). Remplacez YOUR-RESOURCE-REGION par la région AWS de votre ressource.

{
  "Statement": {
    "Effect": "Allow",
    "Principal": { "Service": "logs.YOUR-RESOURCE-REGION.amazonaws.com" },
    "Action": "sts:AssumeRole"
  }
}

4.    Exécutez la commande suivante pour créer le rôle avec les autorisations de la politique de confiance :

$ aws iam create-role --role-name CWLtoKinesisFirehoseRole --assume-role-policy-document file://TrustPolicyForCWLToFireHose.json

5.    Utilisez le fichier JSON suivant pour créer votre politique IAM (telle que PermissionPolicyForCWLToFireHose.json). Remplacez YOUR-AWS-ACCT-NUM par votre numéro de compte AWS, YOUR-RESOURCE-REGION par la région de votre ressource et FirehoseSplunkDeliveryStream par le nom de votre flux.

{
    "Statement":[
      {
        "Effect":"Allow",
        "Action":["firehose:PutRecord"],
        "Resource":["arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"]
      },
      {
        "Effect":"Allow",
        "Action":["iam:PassRole"],
        "Resource":["arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"]
      }
    ]
}

6.    Exécutez la commande suivante pour associer la politique IAM au rôle :

$ aws iam put-role-policy
    --role-name CWLtoKinesisFirehoseRole
    --policy-name Permissions-Policy-For-CWL
    --policy-document file://PermissionPolicyForCWLToFireHose.json

7.    Exécutez la commande suivante pour créer un filtre d'abonnement. Remplacez YOUR-AWS-ACCT-NUM par votre numéro de compte AWS, YOUR-RESOURCE-REGION par la région de votre ressource et FirehoseSplunkDeliveryStream par le nom de votre flux.

$ aws logs put-subscription-filter
   --log-group-name " /vpc/flowlog/FirehoseSplunk"
   --filter-name "Destination"
   --filter-pattern ""
   --destination-arn "arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"
   --role-arn "arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"

Pour en savoir plus sur les filtres d'abonnement, reportez-vous à Exemple 3 : filtres d'abonnement avec Amazon Kinesis Data Firehose.

Informations connexes

Optimisez l'ingestion de données dans Splunk avec Amazon Kinesis Data Firehose

Paramètres de destination

Contrôle des accès avec Amazon Kinesis Data Firehose

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an