Les serveurs cloud ne doivent pas nécessairement être basés sur Linux: les charges de travail des serveurs Windows peuvent s'exécuter dans AWS et sont compatibles avec la plupart des services intégrés qu'Amazon propose, y compris leurs outils de surveillance CloudWatch, bien que vous deviez installer l'agent manuellement.
L'exécution de serveurs dans un centre de données sur site peut signifier avoir une solution de surveillance d'infrastructure qui fonctionne avec chaque serveur. Cette solution consomme souvent autant de ressources que l'application qu'elle est censée surveiller!
Dans le cloud Amazon Web Services (AWS), la même surveillance et journalisation robustes existent sans avoir à se soucier de provisionner des ressources supplémentaires ou de configurer l'accès. La solution d’AWS à ce problème est CloudWatch.
CloudWatch est un service AWS qui capture les journaux et les métriques du serveur à partir de diverses sources. CloudWatch collecte des informations à partir de ressources telles que les instances EC2 (Elastic Compute Cloud) ou les serveurs sur site. Il les consolide ensuite en un emplacement central dans AWS.
À la fin de ce didacticiel, vous serez en mesure d'installer l'agent AWS CloudWatch sur une instance Windows EC2 et de le configurer pour envoyer des journaux dans CloudWatch.
Conditions préalables
Pour suivre, vous aurez besoin des éléments suivants:
- Un compte AWS
- Une instance Windows Server EC2 64 bits OU un serveur sur site exécutant Server 2008 ou version ultérieure
- Le fichier de clés associé à l'instance (Instances EC2 uniquement)
Connexion à une instance Windows EC2
La première étape de la configuration de CloudWatch consiste à installer l'agent CloudWatch. L'agent est ce qui renvoie à AWS les informations que votre serveur génère. Avant de pouvoir le faire, vous devez d'abord vous connecter à votre instance Windows EC2.
Pour vous connecter à une instance Windows EC2, vous devez obtenir deux informations dans la section EC2 de votre Console AWS pour l'instance Windows à laquelle vous souhaitez vous connecter: le nom DNS public et le fichier de clé associé à l'instance.
Une fois que vous les avez, accédez au service EC2 à partir de la console AWS, cliquez avec le bouton droit sur l'instance, puis sélectionnez «Obtenir le mot de passe Windows». Une fois ici, vous serez invité à entrer le fichier de clé, et si vous avez le bon, il vous amènera à l'écran ci-dessous.
Si vous ou un autre administrateur avez déjà modifié ce mot de passe, ou si vous n'avez pas accès au fichier de clé, cliquez avec le bouton droit sur l'instance, sélectionnez «Terminer» et recommencez. Il n'y a pas de clés de récupération une fois qu'elles sont perdues, et même Amazon ne peut pas les récupérer pour vous.
Cela étant dit, si vous pouvez récupérer le mot de passe Windows, copiez-le et enregistrez-le pour plus tard dans un gestionnaire de mots de passe. Maintenant, ouvrez un client de bureau distant et connectez-vous au serveur en utilisant le nom DNS public antérieur avec les informations d'identification ci-dessus. Si vous avez tout fait correctement, vous devriez voir une vue familière: le bureau du serveur Windows.
Installation de l'agent CloudWatch
Maintenant que vous avez RDP dans l'instance, vous pouvez commencer à installer l'agent CloudWatch. Pour ce faire, Amazon met à votre disposition un .msi installateur à utiliser. Par la documentation CloudWatch, vous pouvez voir sous Lien de téléchargement sous chaque architecture, il existe deux URL différentes: une régionale et une générale. Soit fonctionnera pour ce tutoriel.
Commencez par ouvrir une fenêtre PowerShell sur votre instance EC2 et entrez les commandes ci-dessous. La première commande télécharge le programme d'installation de CloudWatch dans le profil utilisateur local et la seconde exécute le programme d'installation.
Invoke-WebRequest -Uri https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi -OutFile $ env: USERPROFILE Downloads amazon-cloudwatch-agent.msi -UseBasicParsing
Invoke-Item $ env: USERPROFILE Downloads amazon-cloudwatch-agent.msi
Une fois le programme d'installation exécuté, vous remarquerez qu'un nouveau service Windows pour CloudWatch est installé sur le serveur. Ce service permet à CloudWatch de s'exécuter en arrière-plan en collectant les informations dont il a besoin.
Confirmez que le service a été installé et ne fonctionne pas en utilisant le Get-Service
applet de commande dans la capture d'écran ci-dessous. Ne le démarrez pas encore, vous devez d'abord le configurer, ce que vous ferez dans la section suivante.
Configuration de CloudWatch
Maintenant que l'agent CloudWatch est installé, vous devez lui dire quoi signaler. En plus de métriques présélectionnées, Amazon vous permet de créer mesures personnalisées, envoyer des journaux et même signaler des événements à partir de l'Observateur d'événements Windows. Il serait très coûteux en calcul de tout renvoyer tout le temps et de faire beaucoup de bruit. En définissant une configuration, vous pouvez indiquer à AWS les éléments importants et les éléments à surveiller.
Amazon utilise un Fichier de configuration JSON pour diriger l'agent sur lequel les journaux et les mesures à collecter. Si vous êtes déjà familiarisé avec la création de ces fichiers ou si vous avez reçu un fichier prédéfini par votre organisation, vous pouvez l'utiliser. Si la création de fichiers de configuration n'est pas quelque chose que vous connaissez, Amazon fournit également un assistant pour commencer.
Pour démarrer l'assistant, vous devez l'exécuter à partir du répertoire d'installation de CloudWatch. Revenez à la console PowerShell et entrez Invoke-Item "C: Program Files Amazon AmazonCloudWatchAgent amazon-cloudwatch-agent-config-wizard.exe"
Cette commande lancera l'assistant dans une session interactive et après avoir répondu à quelques questions, elle générera un fichier JSON avec la configuration.
Par défaut, l'assistant enregistre le fichier de configuration dans le profil utilisateur sous le nom config.json, mais il est également possible de les enregistrer dans le AWS Systems Manager. Systems Manager vous permettra d'avoir la même configuration versionnée et facilement accessible à plusieurs instances à la fois, mais nécessite que la configuration AWS soit effectuée pour chacune de ces instances.
Voici un exemple de fichier de configuration généré par l'assistant. Votre fichier peut être un peu différent; le fichier ci-dessous n'est qu'un exemple de base.
{
"journaux": {
"logs_collected": {
"des dossiers": {
"collect_list": (
{
"file_path": "C: \ ENTER \ PATH \ HERE \ log.txt",
"log_group_name": "log.txt",
"log_stream_name": "{instance_id}"
}
)
},
"windows_events": {
"collect_list": (
{
"event_format": "xml",
"event_levels": (
"AVERTISSEMENT",
"ERREUR",
"CRITIQUE"
),
"nom_événement": "Système",
"log_group_name": "Système",
"log_stream_name": "{instance_id}"
}
)
}
}
},
"statistiques": {
"append_dimensions": {
"AutoScalingGroupName": "$ {aws: AutoScalingGroupName}",
"ImageId": "$ {aws: ImageId}",
"InstanceId": "$ {aws: InstanceId}",
"InstanceType": "$ {aws: InstanceType}"
},
"metrics_collected": {
"LogicalDisk": {
"la mesure": (
"% Espace libre"
),
"metrics_collection_interval": 60,
"Ressources": (
"*"
)
},
"Mémoire": {
"la mesure": (
"% D'octets validés en cours d'utilisation"
),
"metrics_collection_interval": 60
},
"statsd": {
"metrics_aggregation_interval": 60,
"metrics_collection_interval": 10,
"adresse_service": ": 8125"
}
}
}
}
Démarrage de l'agent CloudWatch
Maintenant que le service a été installé et que la configuration a été définie, vous pouvez démarrer l'agent. À l'intérieur de votre console PowerShell ouverte, accédez au répertoire CloudWatch en exécutant cd "C: Program Files Amazon AmazonCloudWatchAgent"
puis exécutez la commande ci-dessous pour démarrer l'agent CloudWatch avec le fichier de configuration que vous venez de créer sur une instance EC2. Cette commande prendra le fichier de configuration généré par l'assistant et démarrera le service avec ces paramètres.
. amazon-cloudwatch-agent-ctl.ps1 -a fetch-config -m EC2 -c fichier: $ env: USERPROFILE config.json -s
Si vous réexécutez maintenant le Get-Service
applet de commande antérieure, vous verrez que le service d'agent CloudWatch est maintenant en cours d'exécution, comme illustré ci-dessous.
De plus, si vous accédez à Page CloudWatch dans la console AWS, dans la section "Métriques" à gauche, sélectionnez l'onglet "Toutes les métriques", puis allez sous Tous> EC2> Métriques par instance, vous verrez vos métriques d'instance rapporter à CloudWatch comme indiqué ci-dessous.
Conclusion
Vous devriez maintenant pouvoir configurer AWS CloudWatch sur les instances Windows EC2. Avec quelques petites modifications apportées aux commandes, le même processus fonctionnera également pour les serveurs sur site. De là, vous pouvez configurer alarmes pour vous alerter en cas de problème, groupes de journaux pour agréger les journaux d'applications de vos serveurs et automatiser l'installation de l'agent CloudWatch à l'aide de PowerShell.