Logs do Chef - AWS OpsWorks

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Logs do Chef

Importante

O AWS OpsWorks Stacks serviço chegou ao fim da vida útil em 26 de maio de 2024 e foi desativado para clientes novos e existentes. É altamente recomendável que os clientes migrem suas cargas de trabalho para outras soluções o mais rápido possível. Se você tiver dúvidas sobre migração, entre em contato com a AWS Support equipe no AWS re:POST ou por meio do Premium AWS Support.

Os registros do Chef são um dos seus principais recursos de solução de problemas, especialmente para receitas de depuração. AWS OpsWorks O Stacks captura o registro do Chef para cada comando e retém os registros dos 30 comandos mais recentes de uma instância. Como a execução está no modo de depuração, o log contém uma descrição detalhada da execução do Chef, incluindo o texto que é enviado para stdout e stderror. Se uma receita falhar, o log do Chef inclui o rastreamento de pilha.

AWS OpsWorks O Stacks oferece várias maneiras de visualizar os registros do Chef. Com as informações do log, você pode usá-las para depurar receitas com falha.

nota

Também é possível visualizar a parte final do log ao usar SSH para se conectar à instância e executar o comando show_log do agente de CLI. Para ter mais informações, consulte Exibição de logs do Chef.

Exibir um Log do Chef com o Console

A maneira mais simples de visualizar um log do Chef é acessar a página de detalhes da instância. A seção Logs inclui uma entrada para cada evento e o comando Executar receitas. As informações a seguir mostram a seção Logs de uma instância com os comandos configure e setup, que correspondem aos eventos de ciclo de vida Configurar e Configuração.

Logs section showing configure and setup commands with timestamps and durations.

Clique em show na coluna Log do comando apropriado para visualizar o log do Chef correspondente. Se ocorrer um erro, o AWS OpsWorks Stacks abrirá automaticamente o registro do erro, que geralmente está no final do arquivo.

Exibir um Log do Chef com CLI ou API

Você pode usar o comando AWS OpsWorks Stacks describe-commandsCLI ou DescribeCommandsa ação da API para visualizar os registros, que são armazenados em um bucket do Amazon S3. As informações a seguir mostram como usar a CLI para visualizar qualquer arquivo do conjunto atual de arquivos de logs de uma instância especificada. O procedimento para usar DescribeCommands é essencialmente semelhante.

Para usar as AWS OpsWorks pilhas para visualizar os registros do Chef de uma instância
  1. Abra a página de detalhes da instância e copie seu valor de OpsWorksID.

  2. Use o valor da ID para executar o comando de CLI describe-commands da seguinte forma:

    aws opsworks describe-commands --instance-id 67bf0da2-29ed-4217-990c-d895d51812b9

    O comando retorna um objeto JSON com um objeto incorporado para cada comando que o AWS OpsWorks Stacks executou na instância, com o mais recente primeiro. O parâmetro Type contém o tipo de comando de cada objeto integrado, além dos comandos configure e setup neste exemplo.

    { "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 } ] }
  3. Copie o valor de LogUrl para o navegador a fim de exibir o log.

Se a instância tiver mais de alguns comandos, você pode adicionar parâmetros para describe-commands a fim de filtrar quais comandos estão incluídos no objeto da resposta. Para obter mais informações, consulte describe-commands.

Exibir um Log do Chef em uma instância

nota

Os tópicos desta seção se aplicam ao Chef 12. Para obter mais informações sobre a localização dos logs do Chef para Chef 11.10 e versões anteriores, consulte Solução de problemas do Chef 11.10 e versões anteriores para Linux.

Instâncias do Linux

AWS OpsWorks O Stacks armazena os registros do Chef de cada instância em seu /var/chef/runs diretório. (para instâncias do Linux, este diretório também inclui os recipientes de dados associados, armazenados como arquivos formatados para JSON.) Você precisa de privilégios de sudo para acessar esse diretório. O log de cada execução está em um arquivo chamado chef.log no subdiretório da execução individual.

AWS OpsWorks O Stacks armazena seus registros internos na /var/log/aws/opsworks pasta da instância. Em geral, as informações não são muito úteis para fins de solução de problemas. No entanto, esses registros são úteis para o suporte do AWS OpsWorks Stacks, e você pode ser solicitado a fornecê-los se encontrar algum problema com o serviço. Às vezes, os logs do Linux também podem fornecer dados de solução de problemas úteis.

Instâncias do Windows

Logs de agente

Nas instâncias do Windows, os OpsWorks registros são armazenados em um ProgramData caminho como o seguinte. O número inclui um carimbo de data e hora.

C:\ProgramData\OpsWorksAgent\var\logs\number
nota

Por padrão, ProgramData é uma pasta oculta. Para exibi-la, vá até Folder Options. Em View, selecione a opção de mostrar arquivos ocultos.

O exemplo a seguir mostra os logs de agente em uma instância do 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
Logs do Chef

Em instâncias do Windows, os logs do Chef são armazenados em um caminho ProgramData, como o seguinte. O número inclui um carimbo de data e hora.

C:\ProgramData\OpsWorksAgent\var\commands\number
nota

Este diretório contém apenas a saída da primeira execução (de OpsWorks propriedade) do Chef.

O exemplo a seguir mostra registros OpsWorks próprios do Chef em uma instância do 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
Logs do Chef do usuário

Os logs de execuções do Chef podem ser encontradas em arquivos chamados logfile.txt, em uma pasta como mesmo nome do comando numerado do Chef, como mostrado no diagrama a seguir.

C:/chef └── runs └── command-12345 ├── attribs.json ├── client.rb └── logfile.txt

Interpretar o log do Chef

Em grande parte, o início do log contém registros internos do 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 ...

Esta parte do arquivo é útil principalmente para especialistas do Chef. Observe que a lista de execução inclui apenas duas receitas, mesmo quando a maioria dos comandos envolvem mais recursos. Essas duas receitas processam a tarefa de carregar e executar todas as outras receitas internas e personalizadas.

A parte mais interessante do arquivo é geralmente no final. Se uma execução termina com sucesso, você deve visualizar algo como o seguinte:

... [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
nota

Você pode usar a CLI do agente para exibir a parte final do log durante ou após a execução. Para ter mais informações, consulte Exibição de logs do Chef.

Se uma receita falhar, você deve procurar uma saída de nível de ERRO, que conterá uma exceção seguida por um rastreamento de pilha do Chef, como o seguinte:

... 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

O final do arquivo é o rastreamento de pilha do Chef. Você também deve examinar a saída antes da exceção, o que, muitas vezes, contém um erro do sistema, como package not available, que também pode ser útil para determinar a causa. Neste caso, o daemon MySQL falhou ao iniciar.

Erros comuns do log do Chef

Veja a seguir alguns dos erros comuns de log do Chef e como solucioná-los.

Não foi possível encontrar o log

No início de uma execução do Chef, as instâncias recebem um URL Amazon S3 pré-designado que permite visualizar o log em uma página da Web quando a execução do Chef for concluída. Como esse URL expira após duas horas, não há log carregados no site Amazon S3 se uma execução do Chef demora mais de duas horas, mesmo se não houver nenhum problema durante a execução do Chef. O comando para criar um log foi bem-sucedido, mas o log pode ser visualizado apenas na instância, não no URL pré-designado.

Log encerrado repentinamente

Se um log de Chef for encerrado repentinamente sem indicar sucesso ou exibir informações de erro, você provavelmente encontrou um estado de memória baixa que impediu o Chef de concluir o log. Sua melhor opção é tentar novamente com uma instância maior.

Livro de receitas ou receita ausente

Se a execução do Chef encontrar um livro de receitas ou receita que não está no cache do livro de receitas, você verá algo como o seguinte:

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?

Esta entrada indica que o livro de receitas mycookbook não está no cache de receitas. Com o Chef 11.4, você também pode encontrar esse erro se você não declarar dependências corretamente em metadata.rb.

AWS OpsWorks O Stacks executa receitas do cache do livro de receitas da instância. Ele baixa livros de receitas do repositório para o cache quando a instância é iniciada. No entanto, o AWS OpsWorks Stacks não atualizará automaticamente o cache em uma instância on-line se você modificar posteriormente os livros de receitas em seu repositório. Se você tiver modificado os livros de receitas ou adicionado novos livros de receitas desde o início da instância, siga estas etapas:

  1. Certifique-se de confirmar suas alterações no repositório.

  2. Execute o comando da pilha Atualizar livros de receitas para atualizar o cache do livro de receitas com a versão mais recente do repositório.

Falha de comando local

Se um recurso do Chef execute falhar ao executar o comando especificado, você visualizará algo como:

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=/

Role para cima no logo para visualizar a saída stderr e stdout do comando, que devem ajudar você a determinar o motivo da falha do comando.

Falha de pacote

Em caso de falha de pacote de instalação, você verá algo como:

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

Role para cima no log e você deve visualizar as saídas STDOUT e STDERROR do comando, que devem ajudar a determinar o motivo da falha de instalação do pacote.