كيفية إعادة توجيه سجلات حاوية عامل الميناء إلى الأيائل?

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

أساسا لدي صورة عامل الميناء التي أقوم بتشغيل باستخدام عامل الميناء يؤلف ، هذه الحاوية لا يسجل أي شيء محليا (وهو يتألف من خدمات مختلفة ولكن أيا منها لوغستاش أو أيا كان) ولكن أرى تسجيل الدخول من خلال docker logs -tf imageName أو docker-compose logs. منذ أن بدأت الحاويات مع يؤلف لا أستطيع الاستفادة (أو على الأقل أنا لا أعرف كيف) من --logs-driver خيار عامل الميناء.

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

شكرا مقدما,

التحيات

الحل:

بفضل ماديدي يمكنني تحقيق حل مشكلتي بالطريقة التالية ، أذكر أنني استخدمت الأساسية الأيائل كومة في الحاويات التي اقترح ماديدي في منصبه.

أولا أقوم بتحديث docker-compose.yml ملف الحاوية الخاصة بي لإضافة إدخالات لمرجع التسجيل كما أخبرني ماديدي ، قمت بتضمين إدخال لكل خدمة ، يبدو مقتطف من تكوين عامل الإرساء الخاص بي كما يلي

   version: '2'    services:      mosquitto:        image: ansi/mosquitto        ports:          - "1883:1883" # Public access to MQTT          - "12202:12202"  #mapping logs        logging:            driver: gelf           options:              gelf-address: udp://localhost:12202    redis:     image: redis     command: redis-server --appendonly yes     ports:       - "6379:6379" # No public access to Redis       - "12203:12203" #mapping logs     volumes:       - /home/dockeruser/redis-data:/data     logging:        driver: gelf       options:          gelf-address: udp://localhost:12203 

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

أخيرا ، قمت بتحديث حاوية الأيائل الخاصة بي docker-compose.yml ملف لتعيين كل من منفذ أوبد حيث كنت أرسل سجلات بلدي إلى واحد أن لوغستاش يستمع إلى

logstash:  build: logstash/  command: logstash -f /etc/logstash/conf.d/logstash.conf  volumes:    - ./logstash/config:/etc/logstash/conf.d  ports:    - "5000:5000"    - "12202:12201/udp" #mapping mosquitto logs    - "12203:12201/udp" #mapping redis logs

هذا التكوين وإضافة إدخال gelf {} في logstash.conf جعلها تعمل ، فمن المهم أيضا لإعداد بشكل صحيح عنوان إب لخدمة عامل الميناء.

التحيات!

عامل الميناء يؤلف لديه الكلمة تسجيل:المصدر

logging:   driver: syslog  options:     syslog-address: "tcp://192.168.0.42:123"

لذلك إذا كنت تعرف إلى أين تذهب من هناك ، فابحث عنها.

ان لم, يمكنني تقديم المشورة لك للنظر في gelf تسجيل سائق لعامل الميناء و ال لوغستاش جيلف الإدخال المساعد

إذا كنت على سبيل المثال استخدام هذا إعداد الأيائل الأساسي-المكدس في الحاويات، يمكنك تحديث ملف إنشاء عامل الميناء وإضافة منفذ - "12201:12201/udp" لوغستاش.

تحرير logstash.conf قسم الإدخال إلى:

input {    tcp {        port => 5000    }    gelf {    }}

ثم قم بتكوين الحاويات الخاصة بك لاستخدام برنامج تشغيل التسجيل gelf (لا سيسلوغ) والخيار gelf-address=udp://ip_of_logstash:12201 (بدلا من سيسلوغ عنوان).

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

عامل الميناء والأيائل قوية ومرنة ، ولكن أيضا الوحوش الكبيرة والمعقدة. الاستعداد لوضع في بعض الوقت خطيرة ، في القراءة والتجريب.

لا تخف من فتح أسئلة جديدة (ويفضل أن تكون محددة جدا) تصادفها أثناء استكشاف كل هذا.

هل تكوين 12201 ميناء لكل خدمة? لأنه لا يجب عليك

أنا لا أفهم تماما, هل يعني أن بلدي تسجيل 'الخيار يجب أن يكون فقط على نفس المستوى من الخدمات’ العلامة بدلا من ذلك في حاوية?

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

@ماديدي أنا تواجه مشكلة صغيرة مع أن كومة الأيائل, أستطيع أن أرى أن كيبانا أو إلاستيكشيرتش إعادة تمهيد حول 2 ساعات أو نحو ذلك, هل رأيت هذا السلوك كذلك? إذا قمت بتعيين صوري على الأحدث بدلا من الصور المبنية, هل لا يزال هذا المكدس يعمل?

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

@ماديدي من أجل الحصول على تحميل أقل في الخادم الخاص بي ، أردت تغيير فواردينغ الميناء ، ومع ذلك ، لا أستطيع مانيج لجعلها تعمل. أضفت خط مثل هذا 'جيلف-عنوان: أودب:/ / 172.17.0.1: 12201 في كل خدمة ، والحصول على خطأ عند بدء تشغيل الخدمات بسبب المنفذ في الاستخدام' خطأ: ل رديس سائق فشل برمجة الاتصال الخارجي على نقطة النهاية تنباكند_رديس_1: ربط ل 0.0.0.0: 12201 فشل: تم تخصيص المنفذ بالفعل خطأ: لسائق وسيط فشل برمجة الاتصال الخارجي على نقطة النهاية تنباكند_بروكر_1: ربط ل 0.0.0.0: 12201 فشل: تم تخصيص المنفذ بالفعل

حاولت أن تفعل ذلك ، ولكن أثناء تشغيل عامل الميناء-يؤلف حتى رأيت شكوى أن المنفذ كان بالفعل قيد الاستخدام.

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

أعتقد أنني فعلت ، يجب أن أضيف فقط سطر مثل ’ جيلف-عنوان: أودب://172.17.0.1` ? ثم سوف يشكو من أنه يحتاج إلى منفذ

في الوقت الحاضر أستمر في استخدام حل “إعادة توجيه المنفذ”…