تكنولوجيا

كيفية مراقبة سجلات حاوية Docker – CloudSavvy IT

يقوم Docker تلقائيًا بتجميع الإخراج القياسي للحاوية وتدفقات الخطأ (stdout/stderr) إلى موجز السجل الذي يحتفظ به Docker daemon. يمكنك بسهولة مراقبة السجلات لفهم ما يحدث في الحاوية.

يحتوي السجل على المخرجات التي تراها في الجهاز عند الاتصال بالحاوية بشكل تفاعلي (-it). السجل متاح فقط عندما تصدر العملية الأمامية في الحاوية بعض المخرجات بالفعل.يجب عليك التأكد من أن الحاوية تسجل الخطأ إلى stderr لذلك يمكن لأوامر Docker كشفها.

يمكنك عرض سجل الحاوية في أي وقت خلال دورة حياة الحاوية. يمكنك دفق السجلات في الوقت الحقيقي أثناء تشغيل الحاوية. بالنسبة للحاويات التي تم إيقافها ، يمكنك الوصول إلى جميع السجلات التي تم التقاطها قبل الإنهاء.

عرض سجلات الحاوية

لعرض سجل الحاوية ، استخدم docker logs أمر:

docker logs my-container

في حين أن my-container واسم أو معرف الحاوية التي تريد التحقق منها.يمكنك استخدامها docker ps -a احصل على معرف واسم الحاوية الخاصة بك.

هذا logs يقوم الأمر بطباعة إخراج السجل بالكامل للحاوية إلى الجهاز الطرفي. لن يكون الإخراج مستمرًا.إذا كنت ترغب في متابعة تدفق السجلات الجديدة ، يرجى إضافة --stick to بمناسبة الأمر.هذا يعادل استخدام tail -f مع ملفات الدخول العادية على الكمبيوتر.

محتوى العرض المخصص

هذا docker logs يدعم الأمر العديد من العلامات التي يمكن استخدامها لضبط مخرجاتها:

  • – الطابع الزمني -عرض الطابع الزمني الكامل في بداية كل سطر سجل.
  • -حتى --because – تتيح لك هذه العلامات تسجيل الصفوف في فترة زمنية محددة. إما أن تمرر ختم الوقت الكامل (2021-04-30T20:00:00Z) أو وقت نسبي ودود (على سبيل المثال 1h = قبل ساعة واحدة).
  • -ذيل -احصل على العدد المحدد من الصفوف من السجل. --tail 10 سيتم عرض الأسطر العشرة الأخيرة من سجل الحاوية.
  • -تفاصيل -هذه علامة خاصة تضيف المزيد من المعلومات إلى إخراج السجل بناءً على الخيارات التي تم تمريرها إلى برنامج تشغيل التسجيل. سنلقي نظرة على برنامج تشغيل التسجيل في القسم التالي.يتم عرض القيم النموذجية على شكل --details بما في ذلك ملصقات الحاويات ومتغيرات البيئة.

يمكنك دمج هذه العلامات للحصول على السجلات بالتنسيق المطلوب.هذا right untilو considering that مع tail إذا كنت تستخدمه ، فلن يتم تفعيل الشعار stick to باستمرار تدفق بيانات السجل.

سائق Docker Logging

يستخدم Docker أحد برامج تشغيل التسجيل العديدة لجمع سجلات الحاوية وتخزينها. يمكنك إعداد برامج تشغيل تسجيل نشطة على أساس كل حاوية.عندما لا يتم تحديد برنامج تشغيل التسجيل ، يستخدم Docker ملفات json-file سائق.

يخزن برنامج التشغيل سجل الحاوية في ملف JSON. هذا التنسيق سهل إلى حد ما للقراءة من قبل الأشخاص ويمكن استخدامه بسهولة بواسطة أدوات الجهات الخارجية.إذا كنت لا تريد الوصول إلى ملفات السجل مباشرة ، فانتقل إلى area سيوفر لك برنامج التشغيل بعض مساحة التخزين. يستخدم تنسيق تخزين سجل مخصص.

تتضمن برامج تشغيل السجل المضمنة الأخرى syslog (اكتب ل syslog برنامج خفي يعمل على جهاز الكمبيوتر الخاص بك) ، journald (استخدم الجري journald مثيل) و fluentd (استعمال fluentd الشيطان). يمكن أيضًا استخدام برنامج التشغيل في Amazon CloudWatch و Google Cloud Platform و Home windows Occasion Tracking وغيرها من حلول مراقبة السجلات.

يدعم Docker برامج تشغيل تسجيل الطرف الثالث من خلال المكونات الإضافية. يمكنك العثور على برنامج التشغيل على Docker Hub.لتثبيت برنامج تشغيل المكون الإضافي ، قم بتشغيل docker plugin install plugin-identify.يمكنك بعد ذلك الرجوع إليه على أنه برنامج تشغيل تسجيل باسم plugin-identify.

حدد برنامج تشغيل التسجيل

يمكنك تحديد برنامج تشغيل التسجيل عن طريق تمرير الحاوية --log-driver وضع علامة باسم docker run:

docker operate --log-driver systemd my-impression:most current

يمكنك تغيير برنامج تشغيل التسجيل الافتراضي بشكل عام عن طريق تحديث تكوين Docker daemon. تحرير (أو إنشاء) /etcetera/docker/daemon.json.اقامة log-driver مفتاح تسجيل اسم السائق. سيستخدم Docker برنامج التشغيل هذا لجميع الحاويات التي لم يتم إنشاؤها --log-driver لافتة.


    "log-driver": "systemd"

يأتي العديد من برامج تشغيل التسجيل مع خيارات التكوين الخاصة بهم.هذه تستخدم --log-opts شعار الحاوية ، أو log-opts في daemon.json.هذا مثال متعلق بالقيمة الافتراضية json-file سائق. بمجرد أن يصبح ملف السجل أكبر من 8 ميجابايت ، فإنه سيوجه Docker لتدوير ملف السجل. يتم الاحتفاظ بخمسة ملفات فقط في أي وقت.

docker operate

docker run --log-driver json-file --log-opts max-measurement=8M --log-opts max-file=5

/and so on/docker/daemon.json


    "log-driver": "json-file",
    "log-opts": 
        "max-measurement": "8M",
        "max-file": 5
    

وضع نقل السائق

يمكن تسليم السجلات في وضع الحظر أو عدم الحظر. يمنع Docker عمليات التسليم افتراضيًا. سيتم إرسال السجلات من الحاوية إلى السائق على الفور. هذا يضمن شحن السجل ، ولكن قد يؤثر على الأداء. سينتظر التطبيق حتى اكتمال كتابة السجل. إذا كان برنامج تشغيل التسجيل مشغولاً ، فقد يتسبب ذلك في تأخيرات كبيرة.

في وضع عدم الحظر ، يكتب Docker السجلات إلى مخزن الذاكرة المؤقت. لا تحتاج الحاوية إلى الانتظار حتى يكمل برنامج تشغيل التسجيل كتابتها. يمكن أن يؤدي ذلك إلى تحسين الأداء بشكل كبير على أجهزة الكمبيوتر النشطة ذات سرعات التخزين البطيئة.

تتمثل المقايضة في وضع عدم الحظر في إمكانية فقد السجلات. يمكن أن يحدث هذا عندما يتم إصدار السجل بشكل أسرع من قدرة برنامج التشغيل على معالجة السجل. قد يكون المخزن المؤقت في الذاكرة ممتلئًا ، مما يؤدي إلى مسح السجلات المخزنة مؤقتًا قبل تسليمها إلى السائق.

يمكنك ضبط mode خيارات التسجيل ، أو --log-opts أو daemon.json.يمكنك استخدام الأمر التالي لتعيين حجم المخزن المؤقت لسجل الذاكرة max-buffer-dimensions خيارات. إذا كان لديك ما يكفي من ذاكرة الوصول العشوائي المتاحة ، فإن تعيينها على قيمة أعلى يمكن أن يقلل من خطر فقدان السجلات.

docker run --log-choose manner=non-blocking --log-opt max-buffer-size=8M my-image:latest

توثيق أفضل الممارسات

يجب استخدام الحاوية الخاصة بك مع نظام تسجيل Docker قدر الإمكان.إرسال السجلات إلى stdout مع stderr اسمح لـ Docker والأدوات الأخرى بتجميعها بطريقة موحدة.

لا يحتاج إخراج السجل إلى تضمين طابع زمني. سيقوم برنامج تشغيل تسجيل Docker بتسجيل وقت وقوع الحدث تلقائيًا.

في بعض الأحيان قد يكون لديك متطلبات تسجيل معقدة ، docker logs لا يمكن إرضاء المرء. إذا كان الأمر كذلك ، فقد تحتاج إلى تنفيذ حل التسجيل الخاص بك في الحاوية. يمكنك استخدام وحدات تخزين Docker لتخزين السجلات مباشرة على نظام الملفات أو الاتصال بخدمات API الخارجية.

تتطلب بعض الحزم حاوية تسجيل مخصصة ليتم وضعها بجوار حاوية التطبيق. تقرأ حاوية التسجيل (تسمى غالبًا “sidecar”) ملفات السجل المؤقتة التي تم إنشاؤها بواسطة حاوية التطبيق في وحدة تخزين Docker المشتركة. يعالج الملف الجانبي تجميع هذه السجلات في تنسيق يمكن تحميله إلى خدمة مراقبة السجل.

على الرغم من صعوبة الإعداد والتوسيع ، إلا أن هذه الطريقة قد تكون مفيدة لعمليات النشر الأكثر تعقيدًا. عادةً ما يمنعك من الحصول على راحة أوامر التسجيل المضمنة في Docker على الفور.

التعميم

يحتوي Docker على مجموعة من وظائف مراقبة السجل العامة التي يوفرها برنامج تشغيل السجل. يمكن لكل حاوية استخدام برنامج تشغيل فريد للتسجيل ، مما يسمح لك بتخزين السجلات بتنسيق يناسب متطلبات كل تطبيق.

يتضمن السجل كل شيء ينبعث من تيار الإخراج القياسي للحاوية.يمكنك استخدامها echoو printو console.log() أو لغة مكافئة للغة البرمجة الخاصة بك لإضافة السطر إليها docker logs انتاج.سيتم الاحتفاظ بالسجل حتى يتم حذف الحاوية الخاصة بك docker rm.

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى