AWS Fargate dans EKS permet de bénéficier dʼune expérience entièrement gérée pour lʼexécution des workloads Kubernetes. Kinesis Data Firehose peut être utilisé avec le routeur de logs Fluent Bit dʼEKS pour recueillir des logs dans Datadog. Ce guide permet de comparer le transfert de logs via Kinesis Data Firehose avec les logs CloudWatch, et fournit un exemple dʼapplication Fargate dʼEKS pour envoyer des logs à Datadog via Kinesis Data Firehose.
Voici les principales différences entre lʼutilisation du transfert de logs via Kinesis Data Firehose et CloudWatch.
Métadonnées et tags : les métadonnées, comme lʼespace de nommage et lʼID de conteneur Kubernetes, sont accessibles sous forme dʼattributs structurés lors de lʼenvoi de logs avec Kinesis Data Firehose.
Coûts dʼAWS : les coûts dʼAWS peuvent varier pour des cas dʼutilisation individuels, mais lʼingestion Kinesis Data Firehose est généralement moins onéreuse quʼune ingestion similaire avec Cloudwatch Log.
Les outils de ligne de commande suivants : kubectl, aws.
Un cluster EKS avec un profil Fargate et le rôle dʼexécution de pod Fargate. Dans ce guide, le cluster est nommé fargate-cluster, avec un profil Fargate nommé fargate-profile, appliqué à lʼespace de nommage fargate-namespace. Si vous ne possédez pas ces ressources, référez-vous à Démarrer avec Amazon EKS pour créer le cluster et à Commencer à utiliser AWS Fargate avec Amazon EKS pour créer le profil Fargate et le rôle dʼexécution de pod.
Les étapes suivantes décrivent le processus permettant dʼenvoyer des logs depuis un exemple dʼapplication déployé sur un cluster EKS via Fluent Bit et un flux de diffusion Kinesis Data Firehose à Datadog. Pour obtenir une cohésion optimale avec les tags standards Kubernetes dans Datadog, suivez les instructions incluses pour remapper les attributs sélectionnés en clés de tags
Créez la ConfigMap Kubernetes suivante pour Fluent Bit en tant que aws-logging-configmap.yaml. Remplacez le nom de votre flux de diffusion.
apiVersion:v1kind:ConfigMapmetadata:name:aws-loggingnamespace:aws-observabilitydata:filters.conf:| [FILTER]
Name kubernetes
Match kube.*
Merge_Log On
Buffer_Size 0
Kube_Meta_Cache_TTL 300sflb_log_cw:'true'output.conf:| [OUTPUT]
Name kinesis_firehose
Match kube.*
region <REGION>
delivery_stream <YOUR-DELIVERY-STREAM-NAME>
Utilisez kubectl pour appliquer le manifeste ConfigMap.
kubectl apply -f aws-logging-configmap.yaml
Créez une stratégie IAM et joignez-la au rôle dʼexécution de pod pour permettre au routeur de logs exécuté dans AWS Fargate dʼécrire dans Kinesis Data Firehose. Vous pouvez utiliser lʼexemple ci-dessous, en remplaçant lʼARN dans le champ Resource par lʼARN de votre flux de diffusion, ainsi quʼen indiquant votre région et votre ID de compte.
Les logs de cette configuration requièrent que des attributs soient remappés pour être totalement cohérents avec les tags Kubernetes standards dans Datadog.
Une fois que ce pipeline est créé, les logs émis par lʼexemple dʼapp portent un tag, comme décrit ici, avec les attributs de logs remappés en tags Kubernetes :