Log Koki - AWS OpsWorks

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Log Koki

penting

AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Support Tim di AWS re:Post atau melalui AWS Dukungan Premium.

Log koki adalah salah satu sumber pemecahan masalah utama Anda, terutama untuk men-debug resep. AWS OpsWorks Stacks menangkap log Chef untuk setiap perintah, dan mempertahankan log untuk 30 perintah terbaru instance. Karena run dalam mode debug, log berisi deskripsi rinci tentang Chef run, termasuk teks yang dikirim ke stdout danstderror. Jika resep gagal, log menyertakan jejak tumpukan Chef.

AWS OpsWorks Tumpukan memberi Anda beberapa cara untuk melihat log Chef. Setelah Anda memiliki informasi log, Anda dapat menggunakannya untuk men-debug resep yang gagal.

catatan

Anda juga dapat melihat ekor log tertentu dengan menggunakan SSH untuk terhubung ke instance dan menjalankan perintah show_log CLI agen. Untuk informasi selengkapnya, lihat Menampilkan Log Chef.

Melihat Log Chef dengan Konsol

Cara termudah untuk melihat log Chef adalah dengan pergi ke halaman detail instance. Bagian Log mencakup entri untuk setiap acara dan perintah Execute Recipes. Berikut ini menunjukkan bagian Log instance, dengan perintah konfigurasi dan penyiapan, yang sesuai dengan peristiwa siklus hidup Konfigurasi dan Pengaturan.

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

Klik tampilkan di kolom Log perintah yang sesuai untuk melihat log Chef yang sesuai. Jika terjadi kesalahan, AWS OpsWorks Stacks secara otomatis membuka log ke kesalahan, yang biasanya di akhir file.

Melihat Log Chef dengan CLI atau API

Anda dapat menggunakan perintah AWS OpsWorks Stacks describe-commandsCLI atau DescribeCommandstindakan API untuk melihat log, yang disimpan di bucket Amazon S3. Berikut ini menunjukkan bagaimana menggunakan CLI untuk melihat salah satu set file log saat ini untuk contoh tertentu. Prosedur untuk menggunakan pada DescribeCommands dasarnya serupa.

Untuk menggunakan AWS OpsWorks Stacks untuk melihat log Chef instance
  1. Buka halaman detail instance dan salin nilai OpsWorksID-nya.

  2. Gunakan nilai ID untuk menjalankan perintah describe-commands CLI, sebagai berikut:

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

    Perintah mengembalikan objek JSON dengan objek tertanam untuk setiap perintah yang telah dieksekusi AWS OpsWorks Stacks pada instance, dengan yang terbaru pertama. TypeParameter berisi jenis perintah untuk setiap objek tertanam, configure perintah, dan setup perintah dalam contoh ini.

    { "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. Salin LogUrl nilai ke browser Anda untuk melihat log.

Jika instance memiliki lebih dari beberapa perintah, Anda dapat menambahkan parameter describe-commands untuk memfilter perintah mana yang disertakan dalam objek respons. Untuk informasi selengkapnya, lihat mendeskripsikan perintah.

Melihat Log Chef pada Instance

catatan

Topik di bagian ini berlaku untuk Chef 12. Untuk informasi tentang lokasi log Chef untuk Chef 11.10 dan rilis yang lebih lama, lihat Pemecahan Masalah Chef 11.10 dan Versi Sebelumnya untuk Linux.

Instans Linux

AWS OpsWorks Stacks menyimpan log Chef setiap instance di /var/chef/runs direktorinya. (Untuk contoh Linux, direktori ini juga menyertakan kantong data terkait, disimpan sebagai file berformat JSON.) Anda memerlukan hak istimewa sudo untuk mengakses direktori ini. Log untuk setiap proses berada dalam file bernama chef.log di dalam subdirektori run individual.

AWS OpsWorks Stacks menyimpan log internalnya di /var/log/aws/opsworks folder instance. Informasi ini biasanya tidak terlalu membantu untuk tujuan pemecahan masalah. Namun, log ini berguna untuk dukungan AWS OpsWorks Stacks, dan Anda mungkin diminta untuk menyediakannya jika Anda mengalami masalah dengan layanan. Log Linux juga terkadang dapat memberikan data pemecahan masalah yang berguna.

Instans Windows

Log Agen

Pada instance Windows, OpsWorks log disimpan di ProgramData jalur seperti berikut ini. Nomor tersebut termasuk stempel waktu.

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

Secara default, ProgramData adalah folder tersembunyi. Untuk menampilkannya, navigasikan ke Opsi Folder. Di bawah View, pilih opsi untuk menampilkan file tersembunyi.

Contoh berikut menunjukkan log agen pada 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
Log Koki

Pada instance Windows, log Chef disimpan di ProgramData jalur seperti berikut ini. Nomor tersebut termasuk stempel waktu.

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

Direktori ini hanya berisi output dari Chef run pertama (OpsWorks dimiliki).

Contoh berikut menunjukkan log Chef yang OpsWorks dimiliki pada 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
Log Chef Pengguna

Log untuk menjalankan Chef Anda dapat ditemukan dalam file bernama logfile.txt dalam folder yang dinamai sesuai perintah Chef bernomor, seperti pada diagram berikut.

C: /koki ------------- runs --- command-12345 attribs.json client.rb logfile.txt

Menafsirkan Log Chef

Awal log sebagian besar berisi logging Chef internal.

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

Bagian dari file ini sangat berguna bagi para ahli Chef. Perhatikan bahwa daftar run hanya mencakup dua resep, meskipun sebagian besar perintah melibatkan lebih banyak lagi. Kedua resep ini menangani tugas memuat dan mengeksekusi semua resep bawaan dan kustom lainnya.

Bagian yang paling menarik dari file biasanya di bagian akhir. Jika run berakhir dengan sukses, Anda akan melihat sesuatu seperti berikut:

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

Anda dapat menggunakan agen CLI untuk menampilkan ekor log selama atau setelah dijalankan. Untuk informasi selengkapnya, lihat Menampilkan Log Chef.

Jika resep gagal, Anda harus mencari output tingkat Kesalahan, yang akan berisi pengecualian diikuti oleh jejak tumpukan Chef, seperti berikut ini:

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

Akhir file adalah jejak tumpukan Chef. Anda juga harus memeriksa output tepat sebelum pengecualian, yang sering berisi kesalahan sistem seperti package not available yang juga dapat berguna dalam menentukan penyebab kegagalan. Dalam hal ini, daemon MySQL gagal memulai.

Kesalahan Log Chef Umum

Berikut ini adalah beberapa kesalahan log Chef yang umum, dan cara mengatasinya.

Log tidak dapat ditemukan

Pada awal menjalankan Chef, instance menerima URL Amazon S3 yang telah ditetapkan sebelumnya yang memungkinkan Anda melihat log di halaman web saat Chef run selesai. Karena URL ini kedaluwarsa setelah dua jam, tidak ada log yang diunggah ke situs Amazon S3 jika Chef menjalankan membutuhkan waktu lebih dari dua jam, bahkan jika tidak ada masalah yang terjadi selama Chef menjalankan. Perintah untuk membuat log berhasil, tetapi log hanya dapat dilihat pada instance, bukan pada URL yang telah ditentukan sebelumnya.

Log berakhir tiba-tiba

Jika log Chef berakhir tiba-tiba tanpa menunjukkan keberhasilan atau menampilkan informasi kesalahan, Anda mungkin mengalami status memori rendah yang mencegah Chef menyelesaikan log. Pilihan terbaik Anda adalah mencoba lagi dengan contoh yang lebih besar.

Buku masak atau resep yang hilang

Jika Chef run menemukan buku masak atau resep yang tidak ada dalam cache buku masak, Anda akan melihat sesuatu seperti berikut:

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?

Entri ini menunjukkan bahwa mycookbook buku masak tidak ada dalam cache buku masak. Dengan Chef 11.4, Anda juga dapat mengalami kesalahan ini jika Anda tidak mendeklarasikan dependensi dengan benar. metadata.rb

AWS OpsWorks Stacks menjalankan resep dari cache buku masak instance. Ini mengunduh buku masak dari repositori Anda ke cache ini saat instance dimulai. Namun, AWS OpsWorks Stacks tidak secara otomatis memperbarui cache pada instance online jika Anda kemudian memodifikasi buku masak di repositori Anda. Jika Anda telah memodifikasi buku masak Anda atau menambahkan buku masak baru sejak memulai instance, ambil langkah-langkah berikut:

  1. Pastikan bahwa Anda telah melakukan perubahan Anda ke repositori.

  2. Jalankan perintah tumpukan Update Cookbooks untuk memperbarui cache buku masak dengan versi terbaru dari repositori.

Kegagalan perintah lokal

Jika execute sumber daya Chef gagal menjalankan perintah yang ditentukan, Anda akan melihat sesuatu seperti berikut:

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

Gulir ke atas di log dan Anda akan melihat perintah stderr dan stdout output, yang akan membantu Anda menentukan mengapa perintah gagal.

Kegagalan Package

Jika instalasi paket gagal, Anda akan melihat sesuatu seperti berikut:

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

Gulir ke atas di log dan Anda akan melihat output STDOUT dan STDERROR perintah, yang akan membantu Anda menentukan mengapa instalasi paket gagal.