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.
Journaux de Chef
Important
Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post
Les journaux Chef sont l'une de vos principales ressources de dépannage, en particulier pour le débogage de recettes. AWS OpsWorks Stacks capture le journal Chef pour chaque commande et conserve les journaux des 30 commandes les plus récentes d'une instance. Etant donné que l'exécution est en mode débogage, le journal contient une description détaillée de l'exécution de Chef, y compris le texte qui est envoyé à stdout
et stderror
. Si une recette échoue, le journal inclut la trace de la pile de Chef.
AWS OpsWorks Stacks vous propose plusieurs façons de consulter les journaux Chef. Une fois que vous disposez des informations du journal, vous pouvez les utiliser pour déboguer les recettes ayant échoué.
Note
Vous pouvez aussi afficher la queue d'un journal spécifié en utilisant SSH pour vous connecter à l'instance et en exécutant la commande show_log
de l'interface de ligne de commande de l'agent. Pour plus d’informations, consultez Affichage des journaux de Chef.
Rubriques
Affichage d'un journal de Chef avec la console
La façon la plus simple pour afficher un journal de Chef consiste à accéder à la page des détails de l'instance. La section Logs inclut une entrée pour chaque événement et la commande Execute Recipes. Voici la section Logs d'une instance avec les commandes configure et setup qui correspondent à aux événements de cycle de vie Configure et Setup.
Cliquez sur show dans la colonne Log de la commande appropriée pour afficher le journal de Chef correspondant. En cas d'erreur, AWS OpsWorks Stacks ouvre automatiquement le journal de l'erreur, qui se trouve généralement à la fin du fichier.
Affichage d'un journal de Chef avec l'API ou l'interface de ligne de commande
Vous pouvez utiliser la describe-commands
commande AWS OpsWorks Stacks CLI ou l'action DescribeCommands
API pour consulter les journaux, qui sont stockés dans un compartiment Amazon S3. Voici comment utiliser l'interface de ligne de commande pour afficher l'un des fichiers journaux en cours pour une instance spécifiée. La procédure d'utilisation de DescribeCommands
est globalement similaire.
Pour utiliser les AWS OpsWorks Stacks pour afficher les journaux Chef d'une instance
-
Ouvrez la page de détails de l'instance et copiez sa valeur OpsWorksd'ID.
-
Utilisez la valeur d'ID pour exécuter la commande d'interface de ligne de commande
describe-commands
, comme suit :aws opsworks describe-commands --instance-id 67bf0da2-29ed-4217-990c-d895d51812b9
La commande renvoie un objet JSON avec un objet intégré pour chaque commande exécutée par AWS OpsWorks Stacks sur l'instance, la plus récente en premier. Le paramètre
Type
contient le type de commande pour chaque objet intégré, une commandeconfigure
et une commandesetup
dans cet exemple.{ "Commands": [ { "Status": "successful", "CompletedAt": "2013-10-25T19:38:36+00:00", "InstanceId": "67bf0da2-29ed-4217-990c-d895d51812b9", "AcknowledgedAt": "2013-10-25T19:38:24+00:00", "LogUrl": "https://s3.amazonaws.com/prod_stage-log/logs/b6c402df-5c23-45b2-a707-ad20b9c5ae40?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE &Expires=1382731518&Signature=YkqS5IZN2P4wixjHwoC3aCMbn5s%3D&response-cache-control=private&response-content-encoding=gzip&response-content- type=text%2Fplain", "Type": "configure", "CommandId": "b6c402df-5c23-45b2-a707-ad20b9c5ae40", "CreatedAt": "2013-10-25T19:38:11+00:00", "ExitCode": 0 }, { "Status": "successful", "CompletedAt": "2013-10-25T19:31:08+00:00", "InstanceId": "67bf0da2-29ed-4217-990c-d895d51812b9", "AcknowledgedAt": "2013-10-25T19:29:01+00:00", "LogUrl": "https://s3.amazonaws.com/prod_stage-log/logs/2a90e862-f974-42a6-9342-9a4f03468358?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE &Expires=1382731518&Signature=cxKYHO8mCCd4MvOyFb6ywebeQtA%3D&response-cache-control=private&response-content-encoding=gzip&response-content- type=text%2Fplain", "Type": "setup", "CommandId": "2a90e862-f974-42a6-9342-9a4f03468358", "CreatedAt": "2013-10-25T19:26:01+00:00", "ExitCode": 0 } ] }
-
Copiez la valeur
LogUrl
dans votre navigateur pour afficher le journal.
Si l'instance a plus de quelques commandes, vous pouvez ajouter des paramètres à describe-commands
pour filtrer les commandes à inclure dans l'objet de réponse. Pour plus d'informations, consultez describe-commands.
Affichage d'un journal de Chef sur une instance
Note
Les rubriques de cette section s'appliquent à Chef 12. Pour plus d'informations sur l'emplacement des journaux de Chef pour Chef 11.10 et les versions antérieures, consultez Résolution des problèmes de Chef 11.10 et des versions antérieures pour Linux.
Instances Linux
AWS OpsWorks Stacks stocke les journaux Chef de chaque instance dans son /var/chef/runs
répertoire. Pour les instances Linux, ce répertoire inclut également les conteneurs de données associés, stockés sous forme de fichiers au format JSON. Vous avez besoin de privilèges sudo pour accéder à ce répertoire. Le journal de chaque exécution se trouve dans un fichier nommé chef.log
dans le sous-répertoire de l'exécution concernée.
AWS OpsWorks Stacks stocke ses journaux internes dans le /var/log/aws/opsworks
dossier de l'instance. Les informations sont rarement utiles pour le dépannage. Cependant, ces journaux sont utiles au support de AWS OpsWorks Stacks, et il se peut que l'on vous demande de les fournir si vous rencontrez un problème avec le service. Les journaux Linux peuvent également fournir des données de dépannage utiles dans certains cas.
instances Windows
Journaux de l'agent
Sur les instances Windows, les OpsWorks journaux sont stockés dans un ProgramData
chemin tel que le suivant. Le nombre inclut un horodatage.
C:\ProgramData\OpsWorksAgent\var\logs\
number
Note
Par défaut, ProgramData
est un dossier masqué. Pour l'afficher, accédez à Folder Options (Options du dossier). Sous Afficher, sélectionnez l'option d'affichage des fichiers masqués.
L'exemple suivant montre les journaux de l'agent sur une instance Windows.
Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 5/24/2015 11:59 PM 127277 command.20150524.txt -a--- 5/25/2015 11:59 PM 546772 command.20150525.txt -a--- 5/26/2015 11:59 PM 551514 command.20150526.txt -a--- 5/27/2015 9:43 PM 495181 command.20150527.txt -a--- 5/24/2015 11:59 PM 24353 keepalive.20150524.txt -a--- 5/25/2015 11:59 PM 106232 keepalive.20150525.txt -a--- 5/26/2015 11:59 PM 106208 keepalive.20150526.txt -a--- 5/27/2015 8:54 PM 92593 keepalive.20150527.txt -a--- 5/24/2015 7:19 PM 3891 service.20150524.txt -a--- 5/27/2015 8:54 PM 1493 service.20150527.txt -a--- 5/24/2015 11:59 PM 112549 wire.20150524.txt -a--- 5/25/2015 11:59 PM 501501 wire.20150525.txt -a--- 5/26/2015 11:59 PM 499640 wire.20150526.txt -a--- 5/27/2015 8:54 PM 436870 wire.20150527.txt
Journaux de Chef
Pour les instances Windows, les journaux de Chef sont stockés dans un chemin ProgramData
comme suit. Le nombre inclut un horodatage.
C:\ProgramData\OpsWorksAgent\var\commands\
number
Note
Ce répertoire contient uniquement la sortie de la première exécution (OpsWorks possédée) de Chef.
L'exemple suivant montre les journaux Chef OpsWorks détenus sur une instance Windows.
Mode LastWriteTime Name ---- ------------- ---- d---- 5/24/2015 7:23 PM configure-7ecb5f47-7626-439b-877f-5e7cb40ab8be d---- 5/26/2015 8:30 PM configure-8e74223b-d15d-4372-aeea-a87b428ffc2b d---- 5/24/2015 6:34 PM configure-c3980a1c-3d08-46eb-9bae-63514cee194b d---- 5/26/2015 8:32 PM grant_remote_access-70dbf834-1bfa-4fce-b195-e50e85402f4c d---- 5/26/2015 10:30 PM revoke_remote_access-1111fce9-843a-4b27-b93f-ecc7c5e9e05b d---- 5/24/2015 7:21 PM setup-754ec063-8b60-4cd4-b6d7-0e89d7b7aa78 d---- 5/26/2015 8:27 PM setup-af5bed36-5afd-4115-af35-5766f88bc039 d---- 5/24/2015 6:32 PM setup-d8abeffa-24d4-414b-bfb1-4ad07319f358 d---- 5/24/2015 7:13 PM shutdown-c7130435-9b5c-4a95-be17-6b988fc6cf9a d---- 5/26/2015 8:25 PM sync_remote_users-64c79bdc-1f6f-4517-865b-23d2def4180c d---- 5/26/2015 8:48 PM update_custom_cookbooks-2cc59a94-315b-414d-85eb-2bdea6d76c6a
Journaux Chef utilisateur
Les journaux de vos exécutions de Chef sont disponibles dans les fichiers nommés logfile.txt
dans un dossier nommé conformément à la commande Chef numérotée, comme illustré ci-après.
C : /chef runs
command-12345
attribs.json
client.rb
logfile.txt
Interprétation d'un journal Chef
Le début du journal contient principalement la journalisation interne de Chef.
# Logfile created on Thu Oct 17 17:25:12 +0000 2013 by logger.rb/1.2.6 [2013-10-17T17:25:12+00:00] INFO: *** Chef 11.4.4 *** [2013-10-17T17:25:13+00:00] DEBUG: Building node object for php-app1.localdomain [2013-10-17T17:25:13+00:00] DEBUG: Extracting run list from JSON attributes provided on command line [2013-10-17T17:25:13+00:00] INFO: Setting the run_list to ["opsworks_custom_cookbooks::load", "opsworks_custom_cookbooks::execute"] from JSON [2013-10-17T17:25:13+00:00] DEBUG: Applying attributes from json file [2013-10-17T17:25:13+00:00] DEBUG: Platform is amazon version 2013.03 [2013-10-17T17:25:13+00:00] INFO: Run List is [recipe[opsworks_custom_cookbooks::load], recipe[opsworks_custom_cookbooks::execute]] [2013-10-17T17:25:13+00:00] INFO: Run List expands to [opsworks_custom_cookbooks::load, opsworks_custom_cookbooks::execute] [2013-10-17T17:25:13+00:00] INFO: Starting Chef Run for php-app1.localdomain [2013-10-17T17:25:13+00:00] INFO: Running start handlers [2013-10-17T17:25:13+00:00] INFO: Start handlers complete. [2013-10-17T17:25:13+00:00] DEBUG: No chefignore file found at /opt/aws/opsworks/releases/20131015111601_209/cookbooks/chefignore no files will be ignored [2013-10-17T17:25:13+00:00] DEBUG: Cookbooks to compile: ["gem_support", "packages", "opsworks_bundler", "opsworks_rubygems", "ruby", "ruby_enterprise", "dependencies", "opsworks_commons", "scm_helper", :opsworks_custom_cookbooks] [2013-10-17T17:25:13+00:00] DEBUG: Loading cookbook gem_support's library file: /opt/aws/opsworks/releases/20131015111601_209/cookbooks/gem_support/libraries/current_gem_version.rb [2013-10-17T17:25:13+00:00] DEBUG: Loading cookbook packages's library file: /opt/aws/opsworks/releases/20131015111601_209/cookbooks/packages/libraries/packages.rb [2013-10-17T17:25:13+00:00] DEBUG: Loading cookbook dependencies's library file: /opt/aws/opsworks/releases/20131015111601_209/cookbooks/dependencies/libraries/current_gem_version.rb [2013-10-17T17:25:13+00:00] DEBUG: Loading cookbook opsworks_commons's library file: /opt/aws/opsworks/releases/20131015111601_209/cookbooks/opsworks_commons/libraries/activesupport_blank.rb [2013-10-17T17:25:13+00:00] DEBUG: Loading cookbook opsworks_commons's library file: /opt/aws/opsworks/releases/20131015111601_209/cookbooks/opsworks_commons/libraries/monkey_patch_chefgem_resource.rb ...
Cette partie du fichier est utile essentiellement pour les experts de Chef. Notez que la liste d'exécution inclut uniquement deux recettes, même si la plupart des commandes en impliquent bien plus. Ces deux recettes gèrent la tâche de chargement et d'exécution de toutes les autres recettes intégrées et personnalisées.
La partie la plus intéressante du fichier est généralement à la fin. Si une exécution se termine avec succès, vous devriez voir quelque chose de similaire à ce qui suit :
... [Tue, 11 Jun 2013 16:00:50 +0000] DEBUG: STDERR: [Tue, 11 Jun 2013 16:00:50 +0000] DEBUG: ---- End output of /sbin/service mysqld restart ---- [Tue, 11 Jun 2013 16:00:50 +0000] DEBUG: Ran /sbin/service mysqld restart returned 0 [Tue, 11 Jun 2013 16:00:50 +0000] INFO: service[mysql]: restarted successfully [Tue, 11 Jun 2013 16:00:50 +0000] INFO: Chef Run complete in 84.07096 seconds [Tue, 11 Jun 2013 16:00:50 +0000] INFO: cleaning the checksum cache [Tue, 11 Jun 2013 16:00:50 +0000] DEBUG: removing unused checksum cache file /var/chef/cache/checksums/chef-file--tmp-chef-rendered-template20130611-4899-8wef7e-0 [Tue, 11 Jun 2013 16:00:50 +0000] DEBUG: removing unused checksum cache file /var/chef/cache/checksums/chef-file--tmp-chef-rendered-template20130611-4899-1xpwyb6-0 [Tue, 11 Jun 2013 16:00:50 +0000] DEBUG: removing unused checksum cache file /var/chef/cache/checksums/chef-file--etc-monit-conf [Tue, 11 Jun 2013 16:00:50 +0000] INFO: Running report handlers [Tue, 11 Jun 2013 16:00:50 +0000] INFO: Report handlers complete [Tue, 11 Jun 2013 16:00:50 +0000] DEBUG: Exiting
Note
Vous pouvez utiliser l'interface de ligne de commande de l'agent pour afficher la queue du journal pendant ou après l'exécution. Pour plus d’informations, consultez Affichage des journaux de Chef.
En cas d'échec d'une recette, vous devez rechercher une sortie de niveau ERROR, qui contient une exception suivie d'une trace de la pile de Chef, comme indiqué ci-après :
... Please report any problems with the /usr/scripts/mysqlbug script! [ OK ] MySQL Daemon failed to start. Starting mysqld: [FAILED]STDERR: 130611 15:07:55 [Warning] The syntax '--log-slow-queries' is deprecated and will be removed in a future release. Please use '--slow-query-log'/'--slow-query-log-file' instead. 130611 15:07:56 [Warning] The syntax '--log-slow-queries' is deprecated and will be removed in a future release. Please use '--slow-query-log'/'--slow-query-log-file' instead. ---- End output of /sbin/service mysqld start ---- /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/mixin/command.rb:184:in `handle_command_failures' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/mixin/command.rb:131:in `run_command' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/provider/service/init.rb:37:in `start_service' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/provider/service.rb:60:in `action_start' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource.rb:406:in `send' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource.rb:406:in `run_action' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/runner.rb:53:in `run_action' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/runner.rb:89:in `converge' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/runner.rb:89:in `each' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/runner.rb:89:in `converge' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource_collection.rb:94:in `execute_each_resource' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource_collection/stepable_iterator.rb:116:in `call_iterator_block' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource_collection/stepable_iterator.rb:85:in `step' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource_collection/stepable_iterator.rb:104:in `iterate' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/resource_collection.rb:92:in `execute_each_resource' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/runner.rb:84:in `converge' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/client.rb:268:in `converge' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/client.rb:158:in `run' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/application/solo.rb:190:in `run_application' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/application/solo.rb:181:in `loop' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/application/solo.rb:181:in `run_application' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/../lib/chef/application.rb:62:in `run' /opt/aws/opsworks/releases/20130605160141_122/vendor/bundle/ruby/1.8/gems/chef-0.9.15.5/bin/chef-solo:25 /opt/aws/opsworks/current/bin/chef-solo:16:in `load' /opt/aws/opsworks/current/bin/chef-solo:16
La fin du fichier est la trace de la pile de Chef. Vous devez également examiner la sortie juste avant l'exception, car elle contient souvent une erreur système comme package
not available
qui peut également être utile pour déterminer la cause de l'échec. Dans ce cas, le daemon MySQL n'a pas pu démarrer.
Erreurs courantes dans le journal de Chef
Voici quelques erreurs courantes qui apparaissent dans le journal de Chef et comment les traiter.
- Impossible de trouver le journal
-
Au début d'une exécution de Chef, les instances reçoivent une URL Amazon S3 présignée qui vous permet de consulter le journal sur une page Web lorsque l'exécution de Chef est terminée. Comme cette URL expire au bout de deux heures, aucun journal n'est chargé sur le site Amazon S3 si une exécution de Chef prend plus de deux heures, même si aucun problème n'est survenu pendant l'exécution de Chef. La commande de création d'un journal a réussi, mais le journal peut être vu uniquement sur l'instance, pas au niveau de l'URL présignée.
- Fin brutale du journal
-
Si un journal de Chef se termine brutalement sans indiquer la réussite ni afficher des informations d'erreur, vous avez probablement rencontré un état de faible mémoire qui a empêché Chef de remplir le journal. La meilleure solution consiste à essayer de nouveau avec une plus grande instance.
- Livre de recettes ou recette manquant
-
Si l'exécution de Chef doit gérer un livre de recettes ou une recette qui ne sont pas dans le cache du livre de recettes, vous verrez quelque chose de similaire à ce qui suit :
DEBUG: Loading Recipe mycookbook::myrecipe via include_recipe ERROR: Caught exception during execution of custom recipe: mycookbook::myrecipe: Cannot find a cookbook named mycookbook; did you forget to add metadata to a cookbook?
Cette entrée indique que le livre de recettes
mycookbook
n'est pas dans le cache de livre de recettes. Avec Chef 11.4, vous pouvez également rencontrer cette erreur si vous ne déclarez pas les dépendances correctement dansmetadata.rb
.AWS OpsWorks Stacks exécute des recettes à partir du cache du livre de recettes de l'instance. Il télécharge les livres de recettes du référentiel vers le cache lorsque l'instance démarre. Cependant, AWS OpsWorks Stacks ne met pas automatiquement à jour le cache d'une instance en ligne si vous modifiez ultérieurement les livres de recettes de votre référentiel. Si vous avez modifié vos livres de recettes ou si vous en avez ajouté de nouveaux depuis le début de l'instance, procédez comme suit :
-
Assurez-vous que vous avez validé vos modifications dans le référentiel.
-
Exécutez la commande de pile Update Cookbooks (Mettre à jour les livres de recettes) pour mettre à jour le cache du livre de recettes avec la version la plus récente du référentiel.
-
- Échec de la commande locale
-
Si une ressource
execute
de Chef ne parvient pas à exécuter la commande spécifiée, vous verrez quelque chose de similaire à ce qui suit :DEBUG: ---- End output of ./configure --with-config-file-path=/ returned 2 ERROR: execute[PHP: ./configure] (/root/opsworks-agent/site-cookbooks/php-fpm/recipes/install.rb line 48) had an error: ./configure --with-config-file-path=/
Faites défiler le journal vers le haut et vous devriez voir la sortie
stderr
etstdout
de la commande, ce qui vous aidera à déterminer pourquoi la commande a échoué. - Échec du package
-
En cas d'échec d'une installation de package, vous verrez quelque chose de similaire à ce qui suit :
ERROR: package[zend-server-ce-php-5.3] (/root/opsworks-agent/site-cookbooks/zend_server/recipes/install.rb line 20) had an error: apt-get -q -y --force-yes install zend-server-ce-php-5.3=5.0.4+b17 returned 100, expected 0
Faites défiler le journal vers le haut et vous devriez voir la sortie STDOUT et STDERROR de la commande, ce qui vous aidera à déterminer pourquoi l'installation du package a échoué.