Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Docker menyemak di mana fail log berada

Docker menyemak di mana fail log berada

PHPz
PHPzasal
2023-05-13 14:12:3711105semak imbas

Docker ialah platform kontena sumber terbuka yang sangat popular, yang menyediakan penyelesaian yang lebih cekap, boleh dipercayai dan selamat untuk penggunaan dan pengurusan aplikasi. Walau bagaimanapun, apabila menggunakan Docker untuk penempatan dan operasi serta penyelenggaraan, kami sering perlu menanyakan fail log semasa proses menjalankan bekas untuk lebih memahami status sistem berjalan, penyelesaian masalah, operasi dan penyahpepijatan penyelenggaraan, dsb. Jadi, di manakah fail log dalam Docker disimpan? Artikel ini akan memberi anda pengenalan terperinci kepada kaedah Docker untuk melihat fail log dan langkah berjaga-jaga yang berkaitan.

1. Lokasi storan lalai bagi fail log Docker

Dalam Docker, setiap bekas akan menjana fail log yang sepadan. Fail log ini disimpan dalam sistem fail bekas secara lalai. Khususnya, Docker mengubah hala output standard kontena (stdout) dan ralat standard (stderr) kepada output standard kontena dan fail ralat standard secara lalai. Fail log ini biasanya terletak dalam direktori berikut:

/var/lib/docker/containers/$CONTAINER_ID/$CONTAINER_ID-json.log

di mana $CONTAINER_ID mewakili pengecam unik bagi bekas .

Mengenai penyimpanan log Docker, terdapat beberapa perkara penting:

  1. Fail log disimpan dalam bekas secara lalai, bukan pada hos Ini kerana Docker menggunakan virtualisasi kontena secara lalai Untuk menjalankan aplikasi dengan cara yang standard, bekas ialah persekitaran terpencil yang merangkumi sistem fail dan ruang prosesnya sendiri.
  2. Fail log biasanya disimpan dalam format JSON Fail ini termasuk cap waktu setiap baris log, tahap log, ID kontena, kandungan log dan maklumat lain.
  3. Fail log tidak dibersihkan secara automatik secara lalai, jadi jika kami tidak memadamkan fail ini secara aktif, ia akan terus menduduki ruang cakera bekas, menyebabkan ruang cakera berkurangan secara beransur-ansur semasa bekas sedang berjalan.

2. Gunakan Docker CLI untuk melihat fail log kontena

Dalam proses menggunakan Docker untuk pengurusan kontena, kami boleh menggunakan alat baris arahan Docker CLI untuk melihat fail log kontena . Di bawah, kami akan memperkenalkan beberapa arahan CLI Docker asas untuk melaksanakan fungsi melihat log kontena.

  1. log buruh pelabuhan [PILIHAN] BEKAS

Fungsi arahan ini adalah untuk mencetak semua maklumat log bekas yang ditentukan. Antaranya, pilihan PILIHAN boleh menjadi:

-a, --semua: paparan maklumat log semua bekas

-t, --cap masa: paparan cap masa

-f , --follow: Contohnya, kaedah tailf digunakan untuk mengeluarkan log, iaitu log paparan sentiasa disegarkan

--tail=: Bilangan baris log yang ditentukan adalah output bermula dari penghujung daripada fail log. Lalai ialah semua log ($ docker logs -tail all)

--since=: Log output direkodkan selepas masa yang ditentukan, seperti "2019-01-01", atau cap waktu

--until=: Log keluaran direkodkan sebelum masa yang ditentukan Penggunaan log khusus

adalah seperti berikut:

$ docker log CONTAINER_ID

Arahan ini akan memaparkan semua maklumat log bekas yang ditentukan, dengan CONTAINER_ID ialah pengecam unik bekas itu. Jika anda ingin memaparkan N baris terakhir maklumat log bekas, anda boleh menggunakan arahan berikut:

$ log docker --tail N CONTAINER_ID

Jika kita perlu memantau yang sebenar -output log masa bagi bekas pada bila-bila masa, kita boleh menambah pilihan -f Atas:

$ log docker -f CONTAINER_ID

  1. docker inspect [OPTIONS] CONTAINER

Fungsi arahan ini adalah untuk mendapatkan bekas yang ditentukan Maklumat terperinci, termasuk laluan fail log kontena, status berjalan, alamat IP, pemetaan port dan maklumat lain yang berkaitan. Melalui arahan ini, kita boleh mendapatkan laluan storan lalai bagi fail log bekas, seperti yang ditunjukkan di bawah:

$ docker inspect --format='{{.LogPath}}' CONTAINER_ID

In Selain melihat bekas Selain laluan fail log, arahan ini juga boleh melihat maklumat lain yang berkaitan Penggunaan khusus adalah seperti berikut:

$ docker inspect CONTAINER_ID

3. alatan pihak untuk melihat log Docker

Selain alat CLI Docker, anda juga boleh menggunakan alatan pihak ketiga untuk melihat log Docker dengan lebih mudah. Di sini kami memperkenalkan dua alat tontonan log Docker yang popular:

  1. Karang Docker

Karang Docker ialah alat orkestrasi kontena yang disediakan secara rasmi oleh Docker, menyediakan karang docker Fail yang boleh dikonfigurasikan. yml untuk menentukan cara aplikasi berbilang bekas digubah dan dijalankan. Menggunakan Docker Compose untuk penempatan memudahkan anda memulakan berbilang bekas pada satu masa dan mengumpul serta mengurus log pada masa yang sama.

Apabila menggunakan aplikasi menggunakan Docker Compose, anda boleh melihat log kontena melalui arahan log docker-compose. Penggunaan khusus adalah seperti berikut:

$ log karang pelabuhan [SERVICES...]

Antaranya, SERVICES ialah nama perkhidmatan yang ditentukan Secara lalai, log semua perkhidmatan akan dipaparkan.

  1. ELK Stack

ELK merujuk kepada gabungan tiga perisian sumber terbuka Elasticsearch + Logstash + Kibana, yang boleh bekerjasama untuk mengumpul, menganalisis dan menggambarkan log. Data log dalam Docker boleh dikumpul melalui Logstash, dan kemudian data log boleh dipindahkan ke Elasticsearch untuk pengindeksan dan mendapatkan semula, dan akhirnya data boleh dipaparkan secara visual melalui antara muka Kibana.

Menggunakan ELK Stack untuk pengumpulan dan visualisasi log Docker memerlukan langkah berikut:

(1) Pasang Docker

(2) Pasang Docker Compose

( 3) Muat turun fail imej ELK Stack: docker pull sebp/elk

(4) Gunakan fail docker-compose.yml untuk memulakan perkhidmatan ELK Stack:

versi: '3.7'
perkhidmatan:
elasticsearch:

rreee

kibana :

image: sebp/elk
ports:
  - "9200:9200"
volumes:
  - ./elasticsearch.yml:/etc/elasticsearch/elasticsearch.yml

logstash:

image: sebp/elk
ports:
  - "5601:5601"
links:
  - elasticsearch

(5) Tentukan laluan log Docker dalam fail konfigurasi Logstash:

input {
fail {

image: sebp/elk
volumes:
  - ./logstash:/etc/logstash/conf.d
links:
  - elasticsearch

}
}

tapis {
jika [taip] == "docker" {

}
}

output {
elasticsearch {

path => ["/var/lib/docker/containers/*/*.log"]
type => "docker"
codec => "json"

}
}

(6) Mulakan semula perkhidmatan Logstash, dan kemudian cari dan paparkan fail log Docker melalui antara muka Kibana.

Ringkasnya, artikel ini memperincikan kaedah melihat fail log dalam Docker, termasuk arahan CLI Docker, alatan pihak ketiga seperti Docker Compose dan ELK Stack. Dengan bantuan alat ini, kami boleh memantau dan menyahpepijat maklumat log bekas Docker dengan lebih mudah untuk memastikan operasi normal aplikasi.

Atas ialah kandungan terperinci Docker menyemak di mana fail log berada. 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