Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Démarrage rapide : installez l'agent CloudWatch Logs à l'aide de AWS OpsWorks et Chef
Vous pouvez installer l'agent CloudWatch Logs et créer des flux de journaux à l'aide de AWS OpsWorks and Chef, un outil tiers d'automatisation des systèmes et de l'infrastructure cloud. Chef utilise des « recettes », que vous écrivez pour installer et configurer des logiciels sur votre ordinateur, et des « livres de recettes » pour exécuter les tâches de configuration et de distribution de stratégie. Pour plus d'informations, consultez Chef
Les exemples de recettes Chef ci-dessous montrent comment surveiller un fichier journal sur chaque EC2 instance. Les recettes utilisent le nom de la pile en tant que groupe de journaux et le nom d'hôte de l'instance en tant que nom de flux de journaux. Pour surveiller plusieurs fichiers journaux, vous devez étendre les recettes afin de créer plusieurs groupes de journaux et flux de journaux.
Étape 1 : Créer des recettes personnalisées
Créez un référentiel pour stocker vos recettes. AWS OpsWorks supporte Git et Subversion, ou vous pouvez stocker une archive dans Amazon S3. La structure du référentiel de votre livre de recettes est décrite dans Référentiels de livre de recette dans le Guide de l'utilisateur AWS OpsWorks . Les exemples ci-dessous supposent que le nom du livre de recettes est logs
. La recette install.rb installe l'agent Logs. CloudWatch Vous pouvez également télécharger l'exemple du livre de recettes (CloudWatchLogs-Cookbooks.zip
Créez un fichier nommé metadata.rb contenant le code suivant :
#metadata.rb name 'logs' version '0.0.1'
Créez le fichier de configuration CloudWatch des journaux :
#config.rb template "/tmp/cwlogs.cfg" do cookbook "logs" source "cwlogs.cfg.erb" owner "root" group "root" mode 0644 end
Téléchargez et installez l'agent CloudWatch Logs :
# install.rb directory "/opt/aws/cloudwatch" do recursive true end remote_file "/opt/aws/cloudwatch/awslogs-agent-setup.py" do source "https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py" mode "0755" end execute "Install CloudWatch Logs agent" do command "/opt/aws/cloudwatch/awslogs-agent-setup.py -n -r
region
-c /tmp/cwlogs.cfg" not_if { system "pgrep -f aws-logs-agent-setup" } end
Note
Dans l'exemple ci-dessus, remplacez region
par l'un des suivants : us-east-1, us-west-1, us-west-2, ap-southeast-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1 ou sa-east-1.
Si l'installation de l'agent échoue, assurez-vous que le package python-dev
est installé. Si ce n'est pas le cas, utilisez la commande suivante, puis réessayez d'installer l'agent :
sudo apt-get -y install python-dev
Cette recette utilise un fichier de modèle cwlogs.cfg.erb que vous pouvez modifier pour spécifier plusieurs attributs, par exemple les fichiers à conserver. Pour obtenir plus d’informations sur ces attributs, consultez CloudWatch Référence de l'agent de journalisation.
[general] # Path to the AWSLogs agent's state file. Agent uses this file to maintain # client side state across its executions. state_file = /var/awslogs/state/agent-state ## Each log file is defined in its own section. The section name doesn't ## matter as long as its unique within this file. # #[kern.log] # ## Path of log file for the agent to monitor and upload. # #file = /var/log/kern.log # ## Name of the destination log group. # #log_group_name = kern.log # ## Name of the destination log stream. # #log_stream_name = {instance_id} # ## Format specifier for timestamp parsing. # #datetime_format = %b %d %H:%M:%S # # [<%= node[:opsworks][:stack][:name] %>] datetime_format = [%Y-%m-%d %H:%M:%S] log_group_name = <%= node[:opsworks][:stack][:name].gsub(' ','_') %> file = <%= node[:cwlogs][:logfile] %> log_stream_name = <%= node[:opsworks][:instance][:hostname] %>
Le modèle obtient le nom de la pile et le nom de l'hôte en référençant les attributs correspondants dans la configuration de la pile et dans le déploiement JSON. L'attribut qui spécifie le fichier à enregistrer est défini dans le fichier d'attributs .rb par défaut du livre de recettes cwlogs (.rb). logs/attributes/default
default[:cwlogs][:logfile] = '/var/log/aws/opsworks/opsworks-agent.statistics.log'
Étape 2 : créer une AWS OpsWorks pile
Ouvrez la AWS OpsWorks console à l'adresse https://console.aws.amazon.com/opsworks/
. -
Sur le OpsWorks tableau de bord, choisissez Ajouter une pile pour créer une AWS OpsWorks pile.
-
Sur l'écran Add stack, choisissez Chef 11 stack.
-
Pour Stack name, saisissez un nom de pile.
-
Pour Use custom Chef Cookbooks, choisissez Yes.
-
Pour Repository type, sélectionnez le type de référentiel que vous utilisez. Si vous utilisez l'exemple ci-dessus, choisissez Http Archive.
-
Pour Repository URL, saisissez le référentiel dans lequel vous avez enregistré le livre de recettes créé lors de l'étape précédente. Si vous utilisez l'exemple ci-dessus, saisissez
https://s3.amazonaws.com/aws-cloudwatch/downloads/CloudWatchLogs-Cookbooks.zip
. -
Choisissez Add Stack pour créer la pile.
Étape 3 : Étendre votre rôle IAM
Pour utiliser CloudWatch Logs avec vos AWS OpsWorks instances, vous devez étendre le rôle IAM utilisé par vos instances.
-
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le volet de navigation, choisissez Policies, puis Create Policy.
-
Sur la page Create Policy (Créer une politique), sous Create Your Own Policy (Créer votre propre politique), choisissez Select (Sélectionner). Pour plus d'informations sur la création de politiques personnalisées, consultez la section Politiques IAM pour Amazon EC2 dans le guide de l' EC2 utilisateur Amazon.
-
Sur la page Review Policy, tapez un nom pour la stratégie dans Policy Name.
-
Pour Policy Document, collez la stratégie suivante :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
-
Choisissez Create Policy (Créer une politique).
-
Dans le volet de navigation, choisissez Rôles, puis dans le volet de contenu, pour Nom du rôle, sélectionnez le nom du rôle d'instance utilisé par votre AWS OpsWorks pile. Vous pouvez identifier le rôle utilisé par votre pile dans les paramètres de la pile (la valeur par défaut est
aws-opsworks-ec2-role
).Note
Choisissez le nom du rôle, et non pas la case à cocher.
-
Dans l'onglet Permissions, sous Managed Policies, choisissez Attach Policy.
-
Sur la page Attach Policy, dans l'en-tête de la table (à côté de Filter et Search), choisissez Policy Type, Customer Managed Policies.
-
Pour Customer Managed Policies (Politiques gérées par le client), sélectionnez la politique IAM que vous avez créée ci-dessus et cliquez sur Attach Policy (Attacher une politique).
Pour plus d'informations sur les utilisateurs et les politiques, consultez Utilisateurs et groupes IAM et Gestion des politiques IAM dans le Guide de l'utilisateur IAM.
Étape 4 : Ajouter une couche
Ouvrez la AWS OpsWorks console à l'adresse https://console.aws.amazon.com/opsworks/
. -
Choisissez Layers dans le volet de navigation.
-
Dans le volet de contenu, sélectionnez une couche, puis choisissez Add layer.
-
OpsWorksDans l'onglet Type de couche, sélectionnez Personnaliser.
-
Dans les champs Name et Short name, saisissez le nom long et le nom court de la couche, puis choisissez Add layer.
-
Dans l'onglet Recettes, sous Custom Chef Recipes, plusieurs rubriques (Configuration, Configuration, Déploiement, Annulation du déploiement et Arrêt) correspondent aux AWS OpsWorks événements du cycle de vie. AWS OpsWorks déclenche ces événements à ces moments clés du cycle de vie de l'instance, qui exécute les recettes associées.
Note
Si les en-têtes ci-dessus ne sont pas visibles, sous Custom Chef Recipes, choisissez edit.
-
Entrez logs::config, logs::install à côté de Setup, choisissez + pour l'ajouter à la liste, puis cliquez sur Save.
AWS OpsWorks exécute cette recette sur chacune des nouvelles instances de cette couche, juste après le démarrage de l'instance.
Étape 5 : Ajouter une instance
La couche contrôle uniquement la façon de configurer des instances. Vous devez maintenant ajouter des instances à la couche et les démarrer.
Ouvrez la AWS OpsWorks console à l'adresse https://console.aws.amazon.com/opsworks/
. -
Dans le volet de navigation, choisissez Instances, puis sous votre couche, cliquez sur + Instance.
-
Acceptez les paramètres par défaut et choisissez Add Instance pour ajouter l'instance à la couche.
-
Dans de la colonne Actions de la ligne, cliquez sur start pour démarrer l'instance.
AWS OpsWorks lance une nouvelle EC2 instance et configure CloudWatch Logs. L'état de l'instance devient En ligne lorsqu'elle est prête.
Étape 6 : Afficher vos journaux
Vous devriez voir le groupe de journaux et le flux de journaux nouvellement créés dans la CloudWatch console après quelques instants d'exécution de l'agent.
Pour de plus amples informations, veuillez consulter Affichage des données journal envoyées à CloudWatch Logs.