Care este cea mai bună practică pentru a scrie și gestiona fișierele jurnal scrise de Apache HTTPD care rulează într-un container?
Rulăm Apache HTTPD folosind imaginea de bază Docker httpd:2.4-bullseye
. În acest moment, HTTPD este configurat să își scrie jurnalele în stdout și stderr. Docker captează acea ieșire a containerului și pot vedea conținutul jurnalului prin jurnalele docker <containerId>
.
Aș dori să reconfigurez HTTPD, astfel încât accesul, eroarea și alte rezultate de jurnal HTTPD să fie trimise la fișiere, care vor păstra/publica acea ieșire într-un mod evident. Mă descurc cu revizuirea httpd.conf și httpd-ssl.conf, cu siguranță pot monta un volum pe container și voi lupta cu permisiunile de proces și director până când procesul HTTPD care rulează docker poate scrie.
Sunt îngrijorat de rotirea periodică a fișierelor jurnal. Document apache relevant: https://httpd.apache.org/docs/2.4/logs.html#rotation
M-am gândit la logrotate, dar nu sunt sigur că este potrivit aici. Doar pentru context, în vechea metodă de implementare all-on-one-one-machine fără docker, HTTPD a scris un fișier cu ID-ul său de proces, apoi logrotate a citit acel fișier și a trimis un semnal (HUP) procesului httpd, care, la rândul său, re -citiți configurația sa, refaceți fișierele jurnal etc.
Vă rog să-mi spuneți, care este modalitatea corectă pentru o implementare apache-in-docker în care logrotate nu poate trimite un semnal către HTTPD-ul care rulează? Ieșirea jurnalului de conducte la executabilul furnizat de apache jurnalele rotative
cea mai buna alegere?
UPDATE: creat cu succes un utilizator, configurat utilizatorul în httpd.conf
, a montat un volum și a instalat următoarele linii httpd-ssl.conf
în interiorul unei directive VirtualHost:
ErrorLog „|bin/rotatelogs -n 14 /opt/data/logs/httpd-error.log 86400”
TransferLog „|bin/rotatelogs -n 14 /opt/data/logs/httpd-transfer.log 86400”
CustomLog „|bin/rotatelogs -n 14 /opt/data/logs/httpd-ssl.log 86400” \
„%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Totusi as dori sa aud parerea unui expert, multumesc anticipat