Les meilleurs manettes et jougs pour «Microsoft Flight Simulator» – Review Geek
20 août 2020
Comment personnaliser l'écran Apple CarPlay
20 août 2020

Logo AWS

L'agrégation et l'analyse de journaux est un domaine énorme, avec des piles de produits entières construites autour de lui pour le rendre plus facile. Le service CloudWatch d'AWS collecte automatiquement les métriques d'utilisation, mais il peut également être configuré pour agréger les journaux de vos instances EC2.

Pourquoi agréger les journaux en premier lieu?

Supposons que vous exécutiez un serveur Web tel que nginx. Chaque fois que quelqu'un se connecte à votre site Web, une nouvelle ligne dans un fichier journal est créée contenant des détails sur la visite. Cette information peut être très utile; par exemple, nginx enregistre les données suivantes pour chaque requête:

  • Adresse IP de l'utilisateur qui se connecte
  • Nom d'utilisateur, si vous utilisez l'authentification de base (vide la plupart du temps)
  • Heure de la demande
  • La demande elle-même (par exemple, "GET /index.php?url=abc")
  • Code d'état renvoyé
  • Octets envoyés, à l'exclusion des en-têtes HTTP (utile pour suivre la taille réelle du trafic)
  • Le référent HTTP (c'est-à-dire le site d'où provient l'utilisateur)
  • Agent utilisateur du navigateur de l'utilisateur

Alors qu'une suite d'analyse comme Google Analytics fournit également beaucoup de ces informations, les fichiers journaux sont créés automatiquement et mis à jour en temps réel. Si vous souhaitez connaître le trafic que vous recevez d'une plage d'adresses IP particulière ou quelles sont vos principales sources de référence, l'interrogation de vos fichiers journaux peut renvoyer des résultats très rapidement. (Elasticsearch est bon pour cela; AWS le propose en tant que service géré qui fonctionne bien avec CloudWatch Logs.)

Maintenant, disons que vous avez beaucoup de serveurs Web – tout à coup, le problème devient un peu plus compliqué que la simple recherche d'un seul fichier journal. Même avec seulement deux serveurs, vous n'obtiendrez pas de résultats précis à moins que les journaux ne soient regroupés en un seul endroit. C’est là que la fonctionnalité de streaming de journaux de CloudWatch est utile.

Comment configurer les journaux CloudWatch

Pour connecter une instance EC2 à CloudWatch Logs, vous devez installer l'agent de journaux qui gère l'envoi des journaux à CloudWatchFirst, et vous devez configurer un nouveau rôle IAM pour que l'agent fonctionne en tant que.

Ce rôle doit être associé à votre instance, donc à partir du Console de gestion EC2 faites un clic droit sur votre instance et choisissez "Paramètres de l'instance"> "Joindre / Remplacer le rôle IAM":

paramètres d'instance> attacher / remplacer le rôle IAM

Si c'est la première fois que vous procédez ainsi, choisissez de créer un nouveau rôle dans la console IAM. Créez un nouveau rôle, puis choisissez «EC2» comme service qui utilise le rôle.

Ensuite, ajoutez des autorisations au rôle. Créez une nouvelle autorisation et collez-la dans le JSON suivant:

{
  "Version": "17/10/2012",
  "Déclaration": (
    {
      "Effet": "Autoriser",
      "Action": (
        "logs: CreateLogGroup",
        "journaux: CreateLogStream",
        "logs: PutLogEvents",
        "logs: DescribeLogStreams"
    ),
      "Ressource": (
        "arn: aws: logs: *: *: *"
    )
  }
 )
}

Une fois que cela est fait, revenez à l'onglet de création de rôle et sélectionnez l'autorisation nouvellement créée.

L'onglet de création de rôle dans lequel une autorisation nouvellement créée peut être sélectionnée.

Donnez un nom au rôle et vous devriez être prêt à partir. Revenez à la console EC2 et appuyez sur Actualiser dans la liste déroulante des rôles. Vous devriez voir le rôle d'agent de journaux.

Une fois les autorisations supprimées, vous pouvez installer l'agent. Si vous utilisez Amazon Linux, choisissez le package disponible sur Miam:

sudo yum installer -y awslogs

Si vous utilisez Debian / Ubuntu, vous devez télécharger le programme d’installation à la place:

curl https://s3.amazonaws.com//aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

Ensuite, exécutez le programme d'installation en spécifiant la région:

sudo python ./awslogs-agent-setup.py --region us-east-1

Ici, vous configurez les fichiers journaux traités par l'agent de journalisation. Par défaut, il envoie / var / log / syslog, qui enregistre de nombreuses actions système. Vous pouvez ajouter plusieurs fichiers journaux ici. Chaque fichier journal est agrégé dans un groupe (dont le nom est défini par défaut sur l'emplacement du journal) et reçoit un horodatage.

configuration de l'agent de journalisation

Les journaux des instances individuelles sont séparés par ID d'instance, mais vous pouvez afficher un flux total pour chaque groupe de journaux comprenant toutes les instances envoyant des journaux à ce groupe. Une fois que vous avez configuré l'agent, les journaux commencent à s'afficher dans CloudWatch immédiatement (environ cinq secondes).

visionneuse de journaux cloudwatch

À partir de là, vous pouvez utiliser la barre de recherche de la visionneuse de journaux pour effectuer des recherches simples et utiliser l'outil Insights intégré de CloudWatch pour interroger vos journaux.

cloudwatch insights

Si vous souhaitez plus de puissance de recherche ou si vous souhaitez visualiser des éléments avec Kibana, vous pouvez utiliser le service Elasticsearch hébergé d'AWS, qui s'intègre bien à CloudWatch Logs.

//]]>