Rumah >pembangunan bahagian belakang >Golang >Apakah cara terbaik untuk mendapatkan log kontena Docker ke Elasticsearch?
Cara terbaik untuk mendapatkan log kontena Docker ke Elasticsearch ialah menggunakan Filebeat. Filebeat ialah pengumpul data fail log ringan yang boleh menghantar log kontena Docker ke Elasticsearch dalam masa nyata untuk pengindeksan dan penyimpanan. Dengan mengkonfigurasi input docker Filebeat dan output elasticsearch, anda boleh mengimport log kontena Docker dengan mudah ke dalam Elasticsearch. Pada masa yang sama, Filebeat juga menyediakan pelbagai pilihan penapisan dan penghuraian, yang boleh memproses dan mengubah log mengikut keperluan. Kaedah ini bukan sahaja mudah dan mudah digunakan, tetapi juga sangat cekap Ia adalah pilihan terbaik untuk mendapatkan log kontena Docker.
Saya mempunyai aplikasi go yang berjalan dalam bekas yang melakukan banyak pembalakan:
log.Println("Something happened!")
Memandangkan saya boleh ssh ke pelayan yang sedang berjalan, saya boleh melaksanakan docker logs -f [id]
来查看 stderr
output dan semuanya baik.
Tetapi sekarang saya mahu log masuk ke elasticsearch.
Apakah cara terbaik? Saya telah melihat banyak kaedah yang rumit.
Salah satu cara ialah menggunakan format log gelf dan logstash, tetapi satu-satunya pemformat gelf go yang saya dapati adalah sangat lama.
Atau log ke fail dan gunakan filebeat. Tetapi saya tidak mahu melangkau langkah fail itu?
Saya akan cuba menyediakan Fluentd menggunakan docker:
https://www.php.cn/link/39799c18791e8d7eb29704fc5bc04ac8
https://docs.docker.com/config/containers/logging/fluent/
Kemudian biarkan bendalir menolak ke elasticsearch:
https://www.php.cn/link/e0330da43b4d33f4ef9247ad260074f4
Atas ialah kandungan terperinci Apakah cara terbaik untuk mendapatkan log kontena Docker ke Elasticsearch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!