GNU/Linux >> Tutoriels Linux >  >> Linux

Comment envoyer des journaux d'application Linux à AWS CloudWatch

AWS CloudWatch est un service de surveillance fourni par le cloud AWS. AWS fournit une surveillance par défaut pour les paramètres de serveur tels que l'utilisation du processeur, l'entrée réseau, la sortie réseau, etc. AWS CloudWatch peut être utilisé pour une surveillance personnalisée telle que l'utilisation du disque et l'utilisation de la mémoire (RAM). Pour une surveillance personnalisée, nous devons suivre certaines étapes pour la faire surveiller.

De la même manière, AWS CloudWatch peut être utilisé pour surveiller les journaux du serveur ou de l'application. Comme il ne s'agit pas d'une fonctionnalité par défaut d'AWS pour des raisons évidentes, nous pouvons la configurer selon nos besoins. Cela dépendra de l'utilisateur des journaux que nous devons envoyer à AWS CloudWatch pour la surveillance.

Non limité aux ressources AWS

Même si AWS CloudWatch est un service AWS, cela ne signifie pas qu'il ne peut être utilisé que pour les instances EC2, il peut également être configuré pour envoyer des journaux d'application ou de serveur à partir des machines virtuelles d'autres fournisseurs de cloud et également à partir des machines virtuelles sur le disque physique. .

Comment envoyer des journaux d'application ou de serveur à AWS CloudWatch

Pour envoyer les journaux d'application ou de serveur à AWS CloudWatch, nous devons installer l'agent CloudWatch sur le serveur respectif. Nous utiliserons l'instance AWS EC2 pour atteindre notre objectif dans ce blog.

Étapes

  1. Rôle approprié à attacher à l'instance pour communiquer avec AWS CloudWatch
  2. Installation de l'agent AWS CloudWatch
  3. Configuration de l'agent AWS CloudWatch
  4. Test des journaux sur le portail AWS CloudWatch

Rôle IAM

Afin d'envoyer les journaux d'application ou de serveur à AWS CloudWatch, nous devons attacher un rôle à l'instance EC2 avec les autorisations appropriées. Le rôle permettra d'apporter des modifications dans AWS CloudWatch.

Il doit contenir les politiques ci-dessous.

  • CréerLogStream
  • DescribeLogStream
  • Créer un groupe de journaux
  • PutLogEvents

Créons un rôle dans AWS IAM.

Accédez à la section IAM de la liste Services sur la console AWS. Si vous n'avez pas encore de compte AWS, créez-en un ici.

Sur le tableau de bord IAM, accédez à Stratégie, puis sur Créer une stratégie.

Sur la page "Créer une politique", sélectionnez "JSON" dans l'onglet et collez la politique JSON ci-dessous en supprimant celle par défaut.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
    ],
      "Resource": [
        "arn:aws:logs:*:*:*"
    ]
  }
 ]
}

Votre politique devrait ressembler à celle ci-dessous. Une fois que vous avez terminé, cliquez sur le bouton "Revoir la politique" en bas de la page.

Sur la page suivante, vous devez fournir le nom de la stratégie.

Une fois cela fait, cliquez sur le bouton "Créer une politique" en bas de la page.

Une fois que vous avez créé une stratégie, vous serez redirigé vers la page de rôle IAM. Comme nous avons déjà créé la stratégie requise, nous allons créer un rôle qui sera attaché à l'instance.

Sur la page "Créer un rôle", sélectionnez "EC2". Comme nous allons attacher le rôle à l'instance EC2.

Cliquez sur le bouton "Suivant :Autorisation" en bas à gauche de la page.

Sur la page suivante, vous serez invité à attacher une stratégie au rôle. Recherchez le nom de la stratégie que vous avez fourni à l'étape précédente. Une fois trouvée, sélectionnez la politique dans la liste.

Une fois cela fait, cliquez sur le bouton "Suivant :Balises" en bas de la page.

Sur la page suivante, il vous sera demandé de donner des balises au rôle. Comme il s'agit d'une étape facultative, je ne donne aucune balise au rôle et j'ai sauté l'étape.

Une fois que vous avez cliqué sur suivant, vous serez invité à donner un nom au rôle.

Votre rôle sera créé dans quelques secondes.

Maintenant que nous avons terminé la configuration requise du côté de l'infrastructure, configurons l'agent AWS CloudWatch sur l'instance EC2.

Pour cette étape, vous avez besoin d'une instance EC2 en cours d'exécution. Connectez-vous à l'instance comme vous le souhaitez. Il existe plusieurs façons de se connecter à l'instance. Vous pouvez les consulter ici.

Si vous avez une instance Amazon Linux, suivez les étapes mentionnées ci-dessous.

Si vous vous connectez à l'instance pour la première fois, assurez-vous d'exécuter la commande de mise à jour ci-dessous.

Vous pouvez suivre les étapes ci-dessous pour Amazon Linux machines.

sudo yum update -y

Une fois la mise à jour terminée, exécutez la commande ci-dessous pour installer les awslogs emballer.

sudo yum install -y awslogs

Une fois le package installé, vous pouvez modifier la région dans /etc/awslogs/awscli.conf dossier.

Maintenant, pour configurer les journaux que vous souhaitez envoyer sur AWS CloudWatch, ouvrez le fichier /etc/awslogs/awslogs.conf  et vérifiez les lignes suivantes.

[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = Amazon-Linux-2

La configuration ci-dessus indique que le chemin du fichier journal de votre système /var/log/messages  va être chargé sur AWS CloudWatch. La configuration ci-dessus créera un groupe de journaux dans AWS CloudWatch avec le nom mentionné dans log_group_name paramètre. De plus, il aura la hiérarchie mentionnée dans le log_stream_name. Pour le temps de tampon, nous pouvons changer la valeur de buffer_duration. La valeur par défaut de buffer_duration est de 5000 ms.

Une fois les modifications effectuées, redémarrez l'application en exécutant la commande ci-dessous. Il redémarrera l'application awslog et l'agent commencera à télécharger les journaux sur AWS CloudWatch.

$ sudo service awslogsd start

Pour installer et configurer l'agent AWS CloudWatch sur RHEL ou CentOS, vous pouvez suivre les étapes ci-dessous.

Exécutez la commande ci-dessous pour télécharger le package.

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

Vous trouverez un fichier avec le nom awslogs-agent-setup.py à l'emplacement actuel. Comme le fichier téléchargé est un script python, vous devez avoir installé python sur votre machine pour l'étape suivante. Assurez-vous qu'un package python est installé, puis exécutez la commande ci-dessous. Vous devez spécifier la région dans la commande ci-dessous. Vous pouvez également modifier la même chose dans la configuration plus tard si vous le souhaitez.

python ./awslogs-agent-setup.py --region ap-south-1

Une fois que vous avez exécuté la commande ci-dessus, il vous demandera certaines entrées. Mentionnez la même chose selon les exigences.

Le script ci-dessus générera le fichier de configuration /var/awslogs/etc/awslogs.conf . Les détails que vous avez fournis dans le script seront enregistrés dans le fichier de configuration.

vous pouvez toujours modifier le fichier de configuration selon vos besoins.

Une fois que vous avez terminé toutes les modifications, redémarrez l'agent en exécutant la commande ci-dessous.

# systemctl start awslogs

Vérifier la configuration configurée

1. Reconnectez-vous à votre compte AWS.

2. Recherchez CloudWatch dans la liste des services.

3. Choisissez le groupe de journaux option dans les menus de gauche.

4. Recherchez la valeur que vous avez fournie dans log_stram_name  paramètre dans la configuration.

5. Vous verrez que les journaux sont poussés du serveur vers AWS CloudWatch.

Conclusion

Vous pouvez configurer n'importe quel fichier journal de votre serveur pour qu'il soit transmis à AWS CloudWatch. Cela peut être configuré pour les serveurs qui ne sont pas sur le cloud AWS. Cela signifie que vous pouvez transférer les journaux de n'importe lequel de vos serveurs hébergés sur Azure, GCP ou tout autre fournisseur de cloud ou même un serveur sur site.


Linux
  1. Comment améliorer le temps de démarrage des applications sous Linux

  2. Comment installer l'application Spotify sur Linux

  3. Comment trouver l'application pour un type MIME sous Linux ?

  4. Comment utiliser SSMTP pour envoyer un e-mail à partir d'un terminal Linux

  5. Comment utiliser journalctl pour analyser les journaux sous Linux

Comment créer un équilibreur de charge d'application sur AWS

Comment créer un événement dans AWS Cloudwatch pour déclencher une fonction Lambda

Comment envoyer des e-mails cryptés sous Linux

Comment activer l'option "Modifier" dans l'application Shutter sous Linux

Comment installer un logiciel Windows sur Linux avec Bottles

Comment envoyer des processus en arrière-plan sous Linux