نجينكس: كيفية استخدام عامل الميناء سجل جامع عندما يتم تشغيل نجينكس تحت الإشراف

الرسمية إنجن إكس عامل الميناء صورة (دوكيرفيل) يستخدم الخدعة التالية لتسليم سجلاتها إلى ستدوت و ستدير بحيث يتم التقاطها من قبل جامع سجل عامل الميناء وقابلة للعرض باستخدام docker logs <container-name>:

# forward request and error logs to docker log collectorRUN ln -sf /dev/stdout /var/log/nginx/access.logRUN ln -sf /dev/stderr /var/log/nginx/error.log

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

هنا هو كتلة ذات الصلة في بلدي المشرف.أسيوط

[program:nginx]command=/usr/sbin/nginx -g "daemon off;"priority=990; NOTE: We do not want to redirect stdout and stderr of a nginx process to a logfile because we want docker log collector to get them.stdout_logfile= NOT SURE WHAT TO PUT HERE?stderr_logfile= NOT SURE WHAT TO PUT HERE?username=www-dataautorestart=true

مستندات المشرف رائعة (http://supervisord.org/configuration.html) ولكن ل stdout_logfile أنها لا تعطيني الجواب أحتاج - وهي كيف يمكنني تكوين سوبيرفيسورد لعدم اعتراض العمليات ستدوت / ستدير ( أو لالتقاط لملف سجل ولكن أيضا إلى الأمام إلى ستدوت العادي / ستدير).

ما حاولت بالفعل:

  1. stdout_logfile=NONE - الحصول على أي سجلات لا ستدوت أو إلى ملف
  2. stdout_logfile=/var/log/supervisor/%(program_name)s.log - الحصول على سجلات إلى ملف ولكن ليس المعياري.
  3. لا تعريف stdout_logfile - الحصول على سجلات لملف اسمه عشوائيا ولكن ليس المعياري.
  4. stdout_logfile=/dev/stdout - المشرف يعطي خطأ:

    >استثناء بايثون غير مقطوع ، قناة الإغلاق (ستدوت) (:[إرنو 29] السعي غير القانوني [/البيرة/ليب/بيثون 2.7/المتابعون-الحزم/المشرف/المشرف.بي|رونفوريفر|233] [/البيرة/ليب/بيثون 2.7/المتابعون-الحزم/المشرف/المرسلون.السنة التحضيرية|مقبض_قراءة الحدث|231] [/البيرة/ليب/بيثون 2.7/المتابعون-الحزم/المشرف/المرسلون.السنة التحضيرية|231] [|البيرة/ليب/بيثون 2.7/المتابعون-الحزم/المشرف/المرسلون.السنة التحضيرية/سجل الإخراج|165] [|البيرة/ليب/بيثون 2.7/المتابعون-الحزم/المشرف/المرسلون.السنة التحضيرية/ _سجل / 141] [/البيرة / ليب / بيثون 2.7 / المتابعون - الحزم / المشرف / - loggers.py/info/273] [/البيرة / ليب / بيثون 2.7 / المتابعون-الحزم / المشرف / - loggers.py/log/291] [/البيرة / ليب / بيثون 2.7 / المتابعون-الحزم / المشرف / - loggers.py/bought/186] [/البيرة / ليب / بيثون 2.7 / المتابعون-الحزم / المشرف / - loggers.py/doRollover/195])

ال Illegal seek يحدث الخطأ بسبب الكود في المشرف المسؤول عن تدوير ملف السجل. لإعادة توجيه إلى ستدوت / ستدير لديك لتعطيل دوران ملف السجل، كما هو موضح هنا:

http://veithen.github.io/2015/01/08/supervisord-redirecting-stdout.html