Citra docker nginx resmi (Dockerfile) menggunakan trik berikut untuk menyerahkan lognya ke stdout dan stderr sehingga mereka ditangkap oleh pengumpul log buruh pelabuhan dan dapat dilihat menggunakan 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
Saya ingin melakukan hal yang sama, namun saya memiliki supervisord sebagai PID 1 dalam wadah saya dan itu mengawasi proses nginx dan menangkap stdout dan stderr dan memasukkannya ke dalam file lognya sendiri. Oleh karena itu log tidak mencapai docker log Kolektor.
Berikut adalah blok yang relevan di supervisord saya.conf
[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
Dokumen supervisord sangat bagus (http://supervisord.org/configuration.html) tetapi untuk stdout_logfile
mereka tidak memberi saya jawaban yang saya butuhkan - yaitu, bagaimana cara mengkonfigurasi supervisord untuk tidak mencegat proses stdout / stderr ( atau untuk menangkap ke file log tetapi juga meneruskan ke stdout / stderr normal).
Apa yang sudah saya coba:
-
stdout_logfile=NONE
- Dapatkan tidak ada log tidak stdout atau ke file -
stdout_logfile=/var/log/supervisor/%(program_name)s.log
- Dapatkan log ke file tetapi tidak stdout. - Tidak mendefinisikan
stdout_logfile
- Dapatkan log ke file bernama acak tetapi tidak stdout. -
stdout_logfile=/dev/stdout
- Supervisord memberikan kesalahan:>Crit uncaptured python pengecualian, menutup saluran (stdout) (:[Errno 29] ilegal mencari [/usr/lib/python2.7/pengikut-paket/pengawas/supervisord.py|runforever|233] [/usr/lib/python2.7/pengikut-paket/pengawas/dispatcher.py|handle_read_event|231] [/usr/lib/python2.7/pengikut-paket/pengawas/dispatcher.py|RECORD_OUTPUT|165] [/usr/lib/python2.7/pengikut-paket/pengawas/dispatcher.Py|_log|141] [/usr/lib/python2.7/pengikut-paket/pengawas/ - loggers.py/info/273] [/usr/lib/python2. 7 / pengikut-paket / pengawas / - loggers.py/log/291] [/usr/lib/python2. 7 / pengikut-paket / pengawas / - loggers.py/bought/186] [/usr/lib/python2. 7 / pengikut-paket / pengawas / - loggers.py/doRollover/195])