Dengan populariti dan aplikasi teknologi kontena, Docker telah menjadi bahagian yang amat diperlukan dalam banyak perusahaan. Dalam menggunakan Docker untuk pembangunan dan penggunaan, analisis log kontena dan penyelesaian masalah pengecualian adalah sangat penting. Artikel ini akan memperkenalkan cara menggunakan Docker untuk analisis log kontena dan penyelesaian masalah pengecualian, serta contoh kod terperinci.
1 Pengenalan kepada log Docker
Log Docker merujuk kepada output bekas, termasuk output standard dan output ralat di dalam bekas, output boleh dilalui melalui stdout dan stderr Tulis ke konsol. Docker menangkap output ini dan menyimpannya ke fail pada mesin hos.
Dalam Docker, setiap bekas mempunyai log sendiri Anda boleh menggunakan arahan Docker untuk melihat log bekas:
docker logs [CONTAINER ID]
di mana ID KONTAINER merujuk kepada ID bekas.
2. Gunakan Docker untuk analisis log kontena
Menggunakan Docker untuk analisis log kontena boleh membantu kami memahami status berjalan kontena, mencari masalah sedia ada dan membaikinya. Berikut ialah langkah khusus untuk menggunakan Docker untuk menganalisis log kontena:
Pertama, kita perlu menyemak log kontena untuk menentukan sama ada terdapat. pengecualian dalam bekas. Gunakan arahan Docker untuk melihat log bekas:
docker logs [CONTAINER ID]
Jika anda ingin melihat 10 log bekas terbaru, anda boleh menggunakan arahan berikut:
rreeedocker logs --tail 10 [CONTAINER ID]
docker logs [CONTAINER ID] | grep [KEYWORD]
docker logs [CONTAINER ID] | grep error
Sebagai contoh, keluarkan log bekas ke fail "container.log":
docker logs [CONTAINER ID] > [LOG FILE]
4 alatan pihak ketiga untuk analisis log
4.1 Pasang ELK
docker logs [CONTAINER ID] > container.log
Dalam arahan di atas, sebp/. elk ditarik imej dan memulakan bekas bernama "elk". Kita boleh mengakses panel Kibana melalui alamat http://localhost:5601/.
4.2 Konfigurasikan Logstash
docker pull sebp/elk docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk
Dalam fail konfigurasi di atas, input bernama "docker" ditakrifkan dan laluan input ialah /var All .log files di bawah /lib/docker/containers/. Dalam penapis, gunakan corak grok untuk memadankan log dan tukar cap masa kepada format masa ISO8601. Dalam Output, keluarkan log ke Elasticsearch.
4.3 Lihat log kontena
3 Gunakan Docker untuk menyelesaikan masalah pengecualian kontena
Ia juga sangat penting untuk menyelesaikan masalah pengecualian kontena dalam Docker. Keabnormalan dalam bekas boleh menyebabkan aplikasi gagal berjalan seperti biasa, malah menyebabkan keseluruhan sistem ranap. Berikut menerangkan cara menggunakan Docker untuk menyelesaikan masalah anomali kontena.
1. Lihat status bekas
input { file { type => "docker" path => "/var/lib/docker/containers/*/*.log" exclude => "*.gz" } } filter { if [type] == "docker" { grok { match => { "message" => "[%{TIMESTAMP_ISO8601:timestamp}] %{LOGLEVEL:loglevel} %{GREEDYDATA:message}" } overwrite => [ "message" ] } date { match => [ "timestamp", "ISO8601" ] timezone => "UTC" } } } output { stdout { codec => rubydebug } elasticsearch { hosts => ["localhost:9200"] index => "docker-%{+YYYY.MM.dd}" document_type => "docker" } }
Arahan ini akan menyenaraikan semua bekas dan statusnya.
2. Masukkan bekas untuk debugging
docker ps -a
Antaranya, CONTAINER ID merujuk kepada ID bekas.
3 Lihat log dan analisis
docker exec -it [CONTAINER ID] /bin/bash
4 Gunakan alatan untuk analisis
docker logs [CONTAINER ID]
Dalam arahan di atas, bekas bernama "nginx-debug" pertama kali dibuat dan beberapa konfigurasi dilakukan. Kita boleh menggunakan bekas ini untuk nyahpepijat.
4. Ringkasan
Apabila menggunakan Docker untuk analisis log kontena dan penyelesaian masalah pengecualian, kami boleh menggunakan arahan Docker untuk melihat dan menganalisis, atau kami boleh menggunakan alatan pihak ketiga untuk membantu Kami menjalankan analisis yang lebih mendalam tentang log kontena dan pengecualian penyelesaian masalah. Saya berharap kandungan di atas akan membantu anda apabila menggunakan Docker untuk pembangunan dan penggunaan Pada masa yang sama, artikel ini juga menyediakan contoh kod terperinci untuk memudahkan pembaca memahami dan mempelajari teknologi yang berkaitan.
Atas ialah kandungan terperinci Cara menggunakan Docker untuk analisis log kontena dan penyelesaian masalah pengecualian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!