Comment utiliser un pilote de journal Splunk avec une tâche Amazon ECS dans Fargate ?

Lecture de 5 minute(s)
0

Je souhaite utiliser un pilote de journal Splunk avec une tâche Amazon Elastic Container Service (Amazon ECS) dans AWS Fargate

Brève description

Vous pouvez utiliser le pilote de journal (ou « pilote de journalisation ») Splunk de Docker dans Fargate pour envoyer les journaux de vos conteneurs au collecteur de journaux Enterprise Splunk ou à Splunk Cloud.

Résolution

Configuration de votre environnement Splunk Cloud pour recevoir les journaux Fargate

  1. Utilisez la version Splunk gratuite pour créer un compte Splunk Cloud. Si vous possédez déjà un compte Splunk Cloud, passez à l'étape 2. Pour en savoir plus, voir Essayer Splunk sur le site Web de Splunk.
  2. Connectez-vous à votre compte Splunk Cloud.
    Remarque : après avoir créé un compte, utilisez l'URL, le nom d'utilisateur et le mot de passe de votre cloud Splunk pour vous connecter.
  3. Dans le volet de navigation, choisissez Paramètres.
  4. Dans la section DONNÉES, choisissez Entrées de données.
  5. Dans la section Entrées locales, dans la colonne Actions, choisissez Ajouter.
    Remarque : vous devez créer un jeton HTTP Event Collector (HEC) pour pouvoir envoyer des données et des événements d'application à un déploiement Splunk via les protocoles HTTP et HTTP sécurisé (HTTPS).
  6. Dans Nom, saisissez le nom de votre jeton, puis choisissez Suivant.
  7. Parcourez les autres pages de l'assistant de configuration, puis choisissez Soumettre pour créer le jeton HEC.
    Remarque : vous pouvez conserver les valeurs par défaut.
  8. Testez le nouveau jeton à l'aide de curl ou de Docker.
    Remarque : par défaut, Splunk écoute sur le port 8088 et accepte les événements sur le **chemin **/services/collector.
    curl :
    curl -k  https://prd-p-9l79p.splunkcloud.com:8088/services/collector -H "Authorization: Splunk splunk-token" -d '{"event": "Put this message in Splunk"}'
    Remarque : remplacez splunk-token par le jeton HEC créé précédemment.
    Docker :
    docker run --publish 80:80 --log-driver=splunk --log-opt splunk-token=splunk token --log-opt splunk-url=https://prd-p-u7z1u.splunkcloud.com:8088 --log-opt splunk-insecureskipverify=true --log-opt splunk-sourcetype=docker-test --log-opt splunk-index=main  nginx

Remarque : remplacez splunk-token par le jeton HEC créé précédemment.

Configuration de AWS Secrets Manager pour utiliser le jeton HEC

Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la sectionRésoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

Pour stocker votre jeton HEC dans Secrets Manager afin que Fargate puisse utiliser votre jeton en toute sécurité, exécutez la commande suivante :

aws secretsmanager create-secret --name splunk-token --secret-string token-value

Remarque : remplacez splunk-token par votre token HEC. Remplacez token-value par la valeur de votre jeton.

Configuration d’un rôle d'exécution de tâche avec l'autorisation d'accéder aux secrets

  1. Ouvrez la console Gestion des identités et des accès AWS (AWS IAM).
  2. Dans le volet de navigation, choisissez Rôles.
  3. Dans la liste des rôles, recherchez et sélectionnez ecsTaskExecutionRole.
  4. Choisissez Ajouter une politique en ligne.
  5. Choisissez l'onglet JSON de l'éditeur, puis saisissez la politique suivante :
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "secretsmanager:GetSecretValue",
            "kms:Decrypt"
          ],
          "Resource": [
            "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>",
            "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>"
          ]
        }
      ]
    }
    Remarque : si vous utilisez une clé AWS Key Management Service (AWS KMS) personnalisée pour chiffrer vos secrets, vous devez fournir l'autorisation kms:Decrypt et l’Amazon Resource Name (ARN) de votre clé KMS.
  6. Choisissez Examiner une politique.
  7. Dans le champ Nom, saisissez le nom de votre politique.
  8. Choisissez Créer une politique.

Configuration de la définition de tâche de votre tâche Amazon ECS dans Fargate

  1. Ouvrez la console Amazon ECS.
  2. Dans le volet de navigation, dans la section Amazon ECS, choisissez Définitions de tâches.
  3. Choisissez Créer une définition de tâche.
  4. Choisissez Fargate, puis Étape suivante.
  5. Dans la section Configurer les définitions des tâches et des conteneurs, saisissez un nom pour votre définition de tâche dans le champ Nom de définition de tâche.
  6. Dans le champ Rôle de la tâche, choisissez le rôle que vous avez configuré précédemment.
  7. Dans la section Taille de la tâche, renseignez les valeurs appropriées pour vos tâches dans les champs Mémoire de tâche (Go) et Processeur de tâche (vCPU).
  8. Dans la section Définitions de conteneur, choisissez Ajouter un conteneur.
  9. Choisissez les options adaptées à vos besoins en matière de conteneurs.
  10. Dans la section LOGGING du menu déroulant, sélectionnez l’option Exporter des journaux vers Splunk.
  11. Renseignez les options de clé et de valeur suivantes dans Options du journal :
    Clé : splunk-url
    Valeur : votre point de terminaison Splunk (par exemple : https://prd-p-9l79p.splunkcloud.com:8088/)
    **Clé : ** splunk-insecureskipverify
    Valeur : True
    **Clé : ** splunk-token
    valueFrom : l'ARN secret que vous avez créé précédemment
  12. Choisissez Ajouter.
    Remarque : pour en savoir plus sur le code et les configurations de Splunk, consultez splunk.go sur le site Web de GitHub et Splunk options sur le site Web de Docker.
  13. Pour créer votre définition de tâche, choisissez Créer.
  14. Créez un service Amazon ECS ou exécutez une tâche qui utilise la définition de tâche que vous avez créée précédemment.

Examen de vos journaux dans Splunk Cloud

Avant de consulter vos journaux dans Splunk Cloud, vérifiez que votre tâche est en cours d'exécution.

Remarque : comme vous n'avez pas spécifié splunk-index dans la configuration de vos journaux, ceux-ci seront envoyés par défaut à splunk-index dans l'index principal.

  1. Connectez-vous à votre compte Splunk Cloud.
  2. Dans le menu de navigation, choisissez Rechercher.
  3. Saisissez index="main" dans le champ de recherche.

Remarque : vous pouvez suivre les étapes précédentes pour créer une définition de tâche dans Amazon ECS pour un type de lancement Amazon ElasticCompute Cloud (Amazon EC2). Vous pourrez ensuite utiliser le pilote de journal Splunk depuis n'importe laquelle de vos tâches ECS pour envoyer vos journaux au collecteur de journaux Splunk.

Informations connexes

Rôle IAM d'exécution de tâches Amazon ECS

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