Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan Docker untuk analisis log kontena dan penyelesaian masalah pengecualian

Cara menggunakan Docker untuk analisis log kontena dan penyelesaian masalah pengecualian

WBOY
WBOYasal
2023-11-07 15:49:511566semak imbas

Cara menggunakan Docker untuk analisis log kontena dan penyelesaian masalah pengecualian

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:

1 Semak 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:

rreee

2 . Tapis log berdasarkan kata kunci#🎜 🎜#

Apabila melihat log kontena, kami boleh menapis log berdasarkan kata kunci untuk memahami dengan lebih tepat status berjalan kontena. Gunakan arahan berikut untuk menapis log berdasarkan kata kunci:

docker logs --tail 10 [CONTAINER ID]

Sebagai contoh, cari log yang mengandungi "ralat":

docker logs [CONTAINER ID] | grep [KEYWORD]

3 🎜 #

Docker akan menyimpan log bekas ke fail pada hos. Kami boleh mengeluarkan log bekas ke fail untuk analisis seterusnya. Gunakan arahan berikut untuk mengeluarkan log bekas ke fail:

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

Jika anda ingin menjalankan analisis log kontena yang lebih mendalam, anda boleh menggunakan beberapa alatan pihak ketiga. Contohnya, gunakan ELK (Elasticsearch + Logstash + Kibana) untuk analisis log. Berikut ialah pengenalan ringkas tentang cara menggunakan ELK untuk analisis log kontena.

4.1 Pasang ELK

Kita boleh menggunakan Docker untuk memasang ELK Langkah-langkah khusus adalah seperti berikut:

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

Dalam Logstash, input, penapis dan output perlu ditetapkan. Berikut ialah fail konfigurasi Logstash mudah untuk memasukkan log kontena ke dalam Elasticsearch:

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

Selepas melengkapkan konfigurasi di atas, kami boleh melihat log kontena dan menganalisisnya. Dalam panel Kibana, pilih halaman "Temui" untuk melihat semua maklumat log.

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

Kita boleh menggunakan arahan berikut untuk melihat 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

Setelah menyemak status kontena, kita boleh masukkan bekas untuk debugging. Gunakan arahan berikut untuk memasuki bekas:

docker ps -a

Antaranya, CONTAINER ID merujuk kepada ID bekas.

3 Lihat log dan analisis

Selepas memasuki bekas, kami boleh melihat log bekas dan menjalankan analisis penyahpepijatan berdasarkan maklumat log. Arahan khusus adalah seperti berikut:

docker exec -it [CONTAINER ID] /bin/bash

4 Gunakan alatan untuk analisis

Apabila menyelesaikan masalah anomali bekas, kami boleh menggunakan beberapa alatan untuk membantu. Sebagai contoh, pasang alat Nyahpepijat dalam bekas untuk memudahkan penyahpepijatan kami. Berikut ialah contoh:

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn