Puncte:0

Apache deschide și închide fiecare jurnal la fiecare acces?

drapel in

Întrebarea este despre jurnalele de acces și erori, în special cu mai multe gazde (instanțe apache instalate pe mai multe servere) și păstrarea jurnalelor central pe un sistem de fișiere de rețea.

Apache închide fiecare fișier jurnal după fiecare scriere?

Dacă da, pe un server ocupat care găzduiește multe site-uri, fiecare cu propriul său jurnal, acesta ar părea a fi un potențial blocaj de performanță?

Dacă Nu, care este soluția atunci când aveți mai multe servere care scriu într-o singură locație de înregistrare pe un sistem de fișiere de rețea?

Michael Hampton avatar
drapel cz
Care este problema pe care o ai?
Puncte:1
drapel cn

Apache închide fiecare fișier jurnal după fiecare scriere?

Folosește sursa, este la: https://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/loggers/mod_log_config.c?view=markup

Puteți citi din el:

251 * log_writer este NULL înainte ca fișierul jurnal să fie deschis și este
252 * setat la o structură opacă (de obicei un fd) după ce este deschis.

Genul acesta indică faptul că este deschis o singură dată. De fapt, dacă te uiți la cod, acesta este deschis devreme, la inițializare, și apoi niciodată închis, din motive evidente de performanță.

Dacă Nu, care este soluția atunci când aveți mai multe servere care scriu într-o singură locație de înregistrare pe un sistem de fișiere de rețea?

Absolut niciodată să nu faci asta, din două motive. În primul rând, nu vă conectați de la distanță în acest fel. Înregistrați-vă local (și expediați fișierele de jurnal separat, puteți roti din oră, de exemplu) sau utilizați demonii corespunzători, syslog știe în mod implicit cum să expedieze conținutul jurnalului prin UDP (sau TCP), la fel ca și soluțiile mai noi. Nu montați un disc la distanță și nu scrieți fișiere de jurnal pe el, asta va distruge performanța și va crea o grămadă de probleme (mai ales dacă vă referiți la distanță ca în „NFS”).

Și chiar dacă la nivel local, fiecare aplicație ar trebui să se conecteze la propriul fișier jurnal, nu are mai multe aplicații care se conectează la același fișier, acest lucru este obligat să creeze tot felul de condiții de cursă, să suprascrie, etc. Apache în sine este o aplicație chiar dacă se furcă. , dar dacă ați avut 2 Apache care rulează separat pe aceeași gazdă cu configurații diferite, fiecare ar trebui să se conecteze la propriile fișiere de jurnal.

Sau uitați-vă la caracteristica Apache pentru a vă conecta la conducte, dar acest lucru are și dezavantaje.

Puncte:0
drapel it

AFAIK nu puteți avea mai multe servere web Apache să scrie simultan în același fișier jurnal.

Pentru clustere fie lăsați fiecare nod să scrie în propriul fișier jurnal și apoi faceți o post-procesare pentru a le îmbina, fie lăsați Apache să genereze evenimente syslog, să le trimiteți la un server syslog central unde le puteți îmbina într-un singur fișier sau puteți utilizați o soluție de agregare a jurnalelor cum ar fi ELK Stack, Graylog, Splunk și/sau altele pentru a expedia evenimentele de jurnal de la toate nodurile de cluster într-o singură bază de date de date mari

VagrantPaladin avatar
drapel in
Mă așteptam ca acesta să fie răspunsul. Așa că l-am testat cu 4 instanțe de apache care rulează în 4 containere și toate scriind în același jurnal. Am pornit un test de „încărcare” cu o mulțime de procese care solicită o pagină și am lăsat-o să ruleze timp de o oră și a funcționat bine. Mă așteptam pe deplin ca o singură instanță să poată scrie în jurnal, așa că nu știu ce să fac din ea.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.