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

Cara menggunakan Docker untuk analisis log kontena dan pemantauan pengecualian

WBOY
WBOYasal
2023-11-07 14:09:241031semak imbas

Cara menggunakan Docker untuk analisis log kontena dan pemantauan pengecualian

Docker ialah teknologi kontena popular yang boleh membungkus aplikasi dan kebergantungannya ke dalam bekas untuk dijalankan sebagai unit aplikasi mudah alih tunggal. Teknologi ini membolehkan pembangun menggunakan dan mengurus aplikasi dengan mudah dalam persekitaran yang berbeza. Dalam aplikasi praktikal, analisis log dan pemantauan pengecualian bekas Docker sangat diperlukan. Artikel ini akan memperkenalkan cara menggunakan Docker untuk analisis log dan pemantauan pengecualian bekas, termasuk aspek berikut:

  1. Log kontena Docker
  2. Gunakan arahan log Docker untuk melihat log
  3. Gunakan Logstash untuk pengumpulan dan analisis log
  4. Gunakan Pengindeksan dan penyimpanan Data Elasticsearch
  5. Menggunakan Kibana untuk visualisasi data

Mula-mula kita perlu memahami log tentang bekas Docker.

1. Log kontena Docker

Log kontena docker merekodkan maklumat operasi dalam bekas, termasuk: maklumat output aplikasi, maklumat ralat, log akses, log sistem, dsb. Maklumat ini sangat penting untuk operasi dan penyelenggaraan aplikasi, penjejakan, pengendalian pengecualian, dsb., jadi kami perlu mengumpul dan menganalisis log bekas Docker.

2. Gunakan arahan log Docker untuk melihat log

Docker menyediakan arahan log, yang boleh digunakan untuk melihat output maklumat log oleh bekas. Menggunakan arahan log, kita boleh melihat maklumat output masa nyata dengan mudah bagi bekas yang sedang berjalan dan mengeluarkan maklumat ini ke konsol atau menyimpannya ke fail. Berikut ialah contoh penggunaan arahan log untuk melihat log kontena:

// 查看容器ID为xxx的日志
docker logs xxx

// 查看容器ID为xxx的日志,输出到控制台并实时更新
docker logs -f xxx 

// 查看容器ID为xxx的最近10条日志
docker logs --tail 10 xxx 

Dengan menggunakan arahan log, pembangun boleh melihat maklumat keluaran masa nyata kontena dengan mudah dan menentukan masalah dengan cepat, tetapi kaedah ini sesuai untuk bekas pada satu hos , apabila saiz kontena bertambah, ia menjadi sukar untuk melihat log secara manual, jadi alatan pengumpulan log perlu digunakan untuk mengumpul dan menganalisis log secara automatik.

3. Gunakan Logstash untuk pengumpulan dan analisis log

Logstash ialah alat sumber terbuka untuk mengumpul, menapis, menukar dan menghantar log Data dikumpulkan melalui pemalam input, diproses dan ditukar oleh penapis, dan kemudian output pemalam akan memproses data Data dihantar ke destinasi, seperti Elasticsearch, Kafka, Amazon S3, dll. Dalam koleksi log bekas Docker, kami boleh menggunakan Logstash sebagai alat untuk mengumpul dan menganalisis log. Berikut ialah contoh penggunaan Logstash untuk pengumpulan dan analisis log:

1. Pasang Logstash

Muat turun Logstash dari laman web rasmi dan nyahzip fail untuk digunakan. Perintah untuk memulakan Logstash adalah seperti berikut:

cd logstash-7.15.1/bin
./logstash -f logstash.conf

2. Konfigurasikan Logstash

Untuk menggunakan Logstash sebagai alat pengumpulan log untuk bekas, kita perlu mengkonfigurasi pemalam masukan dan pemalam keluaran dalam Logstash. Berikut ialah contoh fail konfigurasi logstash.conf:

input {
  docker {
    endpoint => "unix:///var/run/docker.sock"
    container_id => "ALL"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
}

output {
  elasticsearch {
    hosts => "localhost:9200"
  }
  stdout {
    codec => "json_lines"
  }
}

Fail konfigurasi di atas bermakna kami perlu mengumpul maklumat log daripada semua bekas docker, menapis dan menghuraikan data melalui penapis grok, dan akhirnya mengeluarkan data yang diproses ke Elasticsearch.

4. Gunakan Elasticsearch untuk pengindeksan dan penyimpanan data

Elasticsearch ialah enjin carian sumber terbuka teragih yang boleh digunakan untuk mencari pelbagai jenis dokumen. Dalam koleksi log bekas Docker, kami akan menggunakan Elasticsearch sebagai indeks dan penyimpanan data. Berikut ialah contoh penggunaan Elasticsearch untuk pengindeksan dan penyimpanan data:

1 Pasang Elasticsearch

Muat turun Elasticsearch dari tapak web rasmi dan nyahzip fail untuk digunakan. Perintah untuk memulakan Elasticsearch adalah seperti berikut:

cd elasticsearch-7.15.1/bin
./elasticsearch

2. Konfigurasikan Elasticsearch

Konfigurasikan nama dan nama nod gugusan ES dengan mengubah suai fail elasticsearch.yml. Berikut ialah contoh fail konfigurasi elasticsearch.yml yang mudah:

cluster.name: docker-cluster
node.name: es-node1
network.host: 0.0.0.0

Konfigurasi di atas bermakna kami mencipta gugusan bernama docker-cluster, dengan nama nod ialah es-node1 dan perkhidmatan ES terikat pada semua antara muka rangkaian yang tersedia .

3. Buat indeks

Dalam Elasticsearch, kita perlu membuat indeks untuk data dahulu dan nyatakan medan dalam data. Kod sampel adalah seperti berikut:

PUT /logstash-test
{
  "mappings": {
    "properties": {
      "host": {
        "type": "keyword"
      },
      "message": {
        "type": "text"
      },
      "path": {
        "type": "text"
      },
      "verb": {
        "type": "keyword"
      }
    }
  }
}

Kod di atas mencipta indeks bernama "logstash-test" dalam Elasticsearch dan mentakrifkan medan dan jenis medan yang disertakan dalam indeks.

5. Gunakan Kibana untuk paparan visualisasi data

Kibana ialah alat visualisasi data sumber terbuka yang boleh digunakan untuk memaparkan data yang diperoleh daripada Elasticsearch. Semasa proses pengumpulan log bekas Docker, kami akan menggunakan Kibana untuk paparan visualisasi data. Berikut ialah contoh penggunaan Kibana untuk paparan visualisasi data:

1 Pasang Kibana

Muat turun Kibana di tapak web rasmi dan nyahzip fail untuk digunakan. Perintah untuk memulakan Kibana adalah seperti berikut:

cd kibana-7.15.1/bin
./kibana

2. Tetapan templat indeks

Di Kibana, kita perlu menyediakan templat indeks. Templat indeks mengandungi definisi medan data dan maklumat analisis pertanyaan. Kod sampel adalah seperti berikut:

PUT _index_template/logstash-template
{
  "index_patterns": ["logstash-*"],
  "template": {
    "mappings": {
      "properties": {
        "@timestamp": { "type": "date" },
        "@version": { "type": "keyword" },
        "message": { "type": "text" },
        "path": { "type": "text" }
      }
    }
  }
}

Kod di atas bermaksud mencipta templat indeks bernama "logstash-template" dan menerapkannya pada indeks yang namanya bermula dengan "logstash-*".

3. Visualisasi data

Dalam panel pemalam Kibana, anda boleh memilih untuk menetapkan dan mengurus templat visual. Kami boleh mencipta pelbagai jenis carta visual dengan mudah melalui panel, seperti carta garisan, carta bar, carta pai, dsb.

Ringkasnya, artikel ini memperkenalkan cara menggunakan Docker untuk analisis log kontena dan pemantauan pengecualian, dan memberikan contoh kod khusus. Docker sendiri menyediakan arahan log untuk melihat log bekas, tetapi melihat log secara manual menjadi lebih sukar apabila skala kontena meningkat. Dengan menggunakan alatan seperti Logstash, Elasticsearch dan Kibana, kami secara automatik boleh mengumpul dan menganalisis log kontena dan memaparkan status berjalan kontena, yang sangat membantu untuk operasi aplikasi dan penyelenggaraan dan pengendalian kerosakan.

Atas ialah kandungan terperinci Cara menggunakan Docker untuk analisis log kontena dan pemantauan 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