


Cara menggunakan Docker untuk pemantauan aplikasi dan pengurusan log
Docker telah menjadi teknologi penting dalam aplikasi moden, tetapi menggunakan Docker untuk pemantauan aplikasi dan pengurusan log adalah satu cabaran. Dengan peningkatan berterusan fungsi rangkaian Docker, seperti Penemuan Perkhidmatan dan Pengimbangan Beban, kami semakin memerlukan sistem pemantauan aplikasi yang lengkap, stabil dan cekap.
Dalam artikel ini, kami akan memperkenalkan secara ringkas penggunaan Docker untuk pemantauan aplikasi dan pengurusan log serta memberikan contoh kod khusus.
Gunakan Prometheus untuk pemantauan aplikasi
Prometheus ialah sumber terbuka, alat pemantauan perkhidmatan dan amaran berasaskan model Tarik yang dibangunkan oleh SoundCloud. Ia ditulis dalam bahasa Go dan digunakan secara meluas dalam penyelesaian perkhidmatan mikro dan persekitaran awan. Sebagai alat pemantauan, ia boleh memantau CPU, memori, rangkaian dan cakera Docker, dsb., dan juga menyokong penukaran data berbilang dimensi, pertanyaan fleksibel, penggera dan fungsi visualisasi, membolehkan anda bertindak balas dengan cepat dan membuat keputusan dengan cepat.
Satu lagi perkara yang perlu diambil perhatian ialah Prometheus perlu membuat sampel melalui mod Tarik, iaitu, mengakses antara muka /metrics dalam aplikasi yang dipantau untuk mendapatkan data pemantauan. Oleh itu, apabila memulakan imej aplikasi yang dipantau, anda perlu terlebih dahulu mengkonfigurasi IP dan port yang boleh mengakses Prometheus ke dalam antara muka /metrics. Di bawah ialah aplikasi Node.js yang mudah.
const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hello World!') }) app.get('/metrics', (req, res) => { res.send(` # HELP api_calls_total Total API calls # TYPE api_calls_total counter api_calls_total 100 `) }) app.listen(3000, () => { console.log('Example app listening on port 3000!') })
Dalam kod ini, kami mengembalikan penunjuk pemantauan api_calls_total melalui antara muka /metrics.
Seterusnya, muat turun imej Docker Prometheus daripada tapak web rasmi dan buat fail docker-compose.yml, dan dalam fail ini, kami memperoleh data aplikasi Node.js.
version: '3' services: node: image: node:lts command: node index.js ports: - 3000:3000 prometheus: image: prom/prometheus:v2.25.2 volumes: - ./prometheus:/etc/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.retention.time=15d' ports: - 9090:9090
Dalam fail docker-compose.yml, kami mentakrifkan dua perkhidmatan, satu ialah perkhidmatan Node yang menjalankan aplikasi Node.js, dan satu lagi ialah perkhidmatan Prometheus untuk pemantauan. Antaranya, port yang diterbitkan oleh perkhidmatan Node ialah port 3000. Melalui pemetaan port, antara muka /metrics aplikasi Node boleh diakses melalui IP dan port 3000 dalam docker-compose.yml. Prometheus boleh mengakses data penunjuk pemantauan yang sepadan melalui port 9090.
Akhir sekali, dalam fail prometheus.yml, kita perlu menentukan sumber data yang hendak diperolehi.
global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'node-exporter' static_configs: - targets: ['node:9100'] - job_name: 'node-js-app' static_configs: - targets: ['node:3000']
Dalam fail ini, kami mentakrifkan penunjuk semua aplikasi Node.js yang akan dikumpulkan, dengan parameter sasaran ialah alamat IP aplikasi Node.js dan nombor portnya yang sepadan. Di sini, kami menggunakan nod dan port 3000.
Akhir sekali, jalankan arahan docker-compose up untuk memulakan keseluruhan aplikasi dan perkhidmatan pemantauannya, dan lihat metrik ahli dalam Prometheus.
Gunakan ElasticSearch dan Logstash untuk pengurusan log
Dalam Docker, data log aplikasi diedarkan dalam bekas Docker yang berbeza. Jika anda ingin mengurus log ini di tempat terpusat, anda boleh menggunakan ElasticSearch dan Logstash dalam ELK untuk mengurus log secara berpusat, menjadikannya lebih mudah untuk memantau dan menganalisis sumber komputer.
Sebelum anda bermula, anda perlu memuat turun imej Docker Logstash dan ElasticSearch dan mencipta fail docker-compose.yml.
Dalam fail ini, kami mentakrifkan tiga perkhidmatan, antaranya bls ialah perkhidmatan API yang digunakan untuk mensimulasikan log perniagaan Selepas setiap respons, log akan direkodkan ke fail stdout dan log. Perkhidmatan logstash dibina daripada imej Docker yang disediakan secara rasmi oleh Logstash dan digunakan untuk mengumpul, menapis dan menghantar log. Perkhidmatan ElasticSearch digunakan untuk menyimpan dan mendapatkan semula log.
version: '3' services: bls: image: nginx:alpine volumes: - ./log:/var/log/nginx - ./public:/usr/share/nginx/html:ro ports: - "8000:80" logging: driver: "json-file" options: max-size: "10m" max-file: "10" logstash: image: logstash:7.10.1 volumes: - ./logstash/pipeline:/usr/share/logstash/pipeline environment: - "ES_HOST=elasticsearch" depends_on: - elasticsearch elasticsearch: image: elasticsearch:7.10.1 environment: - "http.host=0.0.0.0" - "discovery.type=single-node" volumes: - ./elasticsearch:/usr/share/elasticsearch/data
Dalam fail konfigurasi, kami memetakan laluan dalam bekas ke sistem fail log hos. Pada masa yang sama, melalui pilihan pembalakan, saiz volum dan kuantiti log ditakrifkan untuk mengehadkan storan yang diduduki oleh log.
Dalam fail konfigurasi logstash, kami mentakrifkan saluran paip baharu bernama nginx_pipeline.conf
, yang digunakan untuk mengendalikan pengumpulan, penapisan dan penghantaran log nginx. Sama seperti cara ELK berfungsi, logstash akan memproses log yang diterima berdasarkan keadaan berbeza dan menghantarnya ke kelompok Elasticsearch yang telah dibuat. Dalam fail konfigurasi ini, kami mentakrifkan logik pemprosesan berikut: nginx_pipeline.conf
,该文件用于处理nginx日志的收集、过滤和传输。与ELK的工作原理相同,logstash将根据不同的条件,对接收到的日志进行处理,并将其发送到已经创建的 Elasticsearch 集群中。在该配置文件中,我们定义了如下处理逻辑:
input { file { path => "/var/log/nginx/access.log" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } output { elasticsearch { hosts => [ "${ES_HOST}:9200" ] index => "nginx_log_index" } }
在该配置文件中,我们定义了一个name为file的输入,表示要从本地Log文件中读取数据。接着,我们引入了使用grok库来解析符合特定模板的日志的filter。最后,我们定义了输出,其将数据传输到 Elasticsearch 集群的地址,同时将检索和报告通过环境变量ES_HOST
rrreee
ES_HOST
. Akhirnya, selepas melengkapkan keseluruhan konfigurasi ELK seperti di atas, kami akan mendapat sistem pengurusan log yang cekap Setiap log akan dihantar ke tempat berpusat dan disepadukan, membolehkan operasi carian, penapisan dan visualisasi mudah. 🎜Atas ialah kandungan terperinci Cara menggunakan Docker untuk pemantauan aplikasi dan pengurusan log. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Jawapan: Perkhidmatan mikro PHP digunakan dengan HelmCharts untuk pembangunan tangkas dan kontena dengan DockerContainer untuk pengasingan dan kebolehskalaan. Penerangan terperinci: Gunakan HelmCharts untuk menggunakan perkhidmatan mikro PHP secara automatik untuk mencapai pembangunan tangkas. Imej Docker membenarkan lelaran pantas dan kawalan versi perkhidmatan mikro. Piawaian DockerContainer mengasingkan perkhidmatan mikro dan Kubernetes mengurus ketersediaan dan kebolehskalaan bekas. Gunakan Prometheus dan Grafana untuk memantau prestasi dan kesihatan perkhidmatan mikro, serta mencipta penggera dan mekanisme pembaikan automatik.

Penjelasan dan Panduan Pemasangan Terperinci untuk Pinetwork Nodes Artikel ini akan memperkenalkan ekosistem pinetwork secara terperinci - nod pi, peranan utama dalam ekosistem pinetwork, dan menyediakan langkah -langkah lengkap untuk pemasangan dan konfigurasi. Selepas pelancaran Rangkaian Ujian Blockchain Pinetwork, nod PI telah menjadi bahagian penting dari banyak perintis yang aktif mengambil bahagian dalam ujian, bersiap sedia untuk pelepasan rangkaian utama yang akan datang. Jika anda tidak tahu kerja pinet, sila rujuk apa itu picoin? Berapakah harga untuk penyenaraian? Penggunaan PI, perlombongan dan analisis keselamatan. Apa itu Pinetwork? Projek Pinetwork bermula pada tahun 2019 dan memiliki syiling pi cryptocurrency eksklusifnya. Projek ini bertujuan untuk mewujudkan satu yang semua orang boleh mengambil bahagian

Terdapat banyak cara untuk memasang DeepSeek, termasuk: Menyusun dari Sumber (untuk pemaju berpengalaman) menggunakan pakej yang dikompilasi (untuk pengguna Windows) menggunakan bekas docker (untuk yang paling mudah, tidak perlu bimbang tentang keserasian) Dokumen rasmi dengan berhati -hati dan menyediakannya sepenuhnya untuk mengelakkan masalah yang tidak perlu.

Jawapan: Gunakan PHPCI/CD untuk mencapai lelaran pantas, termasuk menyediakan saluran paip CI/CD, ujian automatik dan proses penggunaan. Sediakan saluran paip CI/CD: Pilih alat CI/CD, konfigurasikan repositori kod dan tentukan saluran paip binaan. Ujian automatik: Tulis ujian unit dan penyepaduan dan gunakan rangka kerja ujian untuk memudahkan ujian. Kes praktikal: Menggunakan TravisCI: Pasang TravisCI, tentukan saluran paip, dayakan saluran paip dan lihat hasilnya. Laksanakan penyampaian berterusan: pilih alatan pengerahan, tentukan saluran paip pengerahan dan automatik penggunaan. Faedah: Meningkatkan kecekapan pembangunan, mengurangkan ralat dan memendekkan masa penghantaran.

Gunakan aplikasi Java EE menggunakan bekas Docker: Cipta Fail Docker untuk mentakrifkan imej, bina imej, jalankan bekas dan petakan port, dan kemudian akses aplikasi dalam penyemak imbas. Contoh aplikasi JavaEE: REST API berinteraksi dengan pangkalan data, boleh diakses pada localhost selepas penggunaan melalui Docker.

1. Mula-mula, selepas membuka antara muka, klik butang ikon sambungan di sebelah kiri 2. Kemudian, cari lokasi bar carian di halaman sambungan yang dibuka 3. Kemudian, masukkan perkataan Docker dengan tetikus untuk mencari pemalam sambungan 4 . Akhir sekali, pilih pemalam sasaran dan klik kanan Hanya klik butang pasang di sudut bawah

Pemantauan kontena perkhidmatan mikro PHP dan pemantauan pengurusan log: Gunakan Prometheus dan Grafana untuk memantau penggunaan sumber, bilangan permintaan dan kependaman. Pengurusan log: Gunakan ELKStack (ElasticSearch, Logstash, Kibana) untuk mengumpul, menghuraikan dan memvisualisasikan log. Gunakan ejen Filebeat untuk menghantar log ke ElasticSearch.

Punca dan penyelesaian untuk kesilapan Apabila menggunakan PECL untuk memasang sambungan dalam persekitaran Docker Apabila menggunakan persekitaran Docker, kami sering menemui beberapa sakit kepala ...
