Gestionarea jurnalelor apache

Apache Server Web nu se poate afișa doar
pagini către utilizatori, dar și de la
cu grijă să înregistreze datele despre ei
activitate și erori. Implicit, toate






sunt scrise informații despre solicitările utilizatorilor
într-un jurnal, și despre greșeli - în altul.
Firește, semnificația înregistrărilor și poziția lor
pe server poate fi configurat arbitrar,
decât astăzi.

Așa cum am spus în prefață, pe
serverul scrie un jurnal în două fișiere - / var / log / httpd / access_log
și error_log în același director. Această situație
din cazuri este determinată, desigur, în httpd.conf
parametrii TransferLog și ErrorLog. Aproximativ acest lucru
are loc după cum urmează:

TransferLog / date / apache / logs / gen_msg
ErrorLog / date / apache / jurnale / error_msg

În plus față de separarea jurnalelor de fișiere, noi
putem crea un jurnal separat pentru fiecare
un domeniu care se învârte în jurul lui Apache.
Să presupunem că există două servere pe server
domeniu și dorim ca fiecare domeniu să scrie
conectați-vă directorul. exemplu:


ServerName www.company_a.com
DocumentRoot / date / apache / co_a / html
TransferLog / date / apache / co_a / log-uri / gen_msg
ErrorLog / date / apache / co_a / log-uri / error_msg



Numele serverului www.company_b.com
DocumentRoot / date / apache / co_b / html
TransferLog / date / apache / co_b / logs / gen_msg
ErrorLog / date / apache / co_b / log-uri / error_msg

În mod clar, în această configurație, nu numai
documentele vor fi împărțite în diferite
cataloage, dar si busteni. Rețineți că înregistrările se află în afara documentului DocumentRoot,
ceea ce este destul de bun pentru asigurare






de securitate.

Există mai multe niveluri cu ajutorul lui
pe care le puteți ajusta adâncimea de înregistrare
activitatea serverului Web. Nivelele log sunt: ​​emerg,
alertă, criză, eroare, avertizează, anunț, info
și depanare. Adăugarea definiției unui nivel în
sfârșitul directivei care controlează exploatarea forestieră,
putem determina ce să scriem.
De exemplu, vreau să-l forțez pe Apache să scrie
Apeluri de urgență și avertismente numai
pentru unul dintre domeniile. În containerul de care aveți nevoie
domeniu face acest lucru:

Formatul în care serverul înregistrează,
de asemenea, puteți schimba în mod arbitrar. Sa terminat
aceasta este direcția LogFormat tot în același htttpd.conf.
Valoarea implicită arată astfel:

Pentru a schimba formatul, trebuie să îl descrieți
în LogFormat și treceți numele în descrierea jurnalului.
Dacă descrierea este dată în afara containerului, atunci este
poate fi folosit pentru orice jurnal, în
Acest exemplu stabilește calea și formatul jurnalului:

LogFormat "Data:% t, Host:% h, Utilizator:% u, Dosar cerut:% r" simplu
...

...
CustomLog / data / apache / co_a / logs / gen_msg simplu
...

Un alt exemplu - să presupun că vreau
primiți numai antetul de cerere din jurnal
un alt site, un motor de căutare.

CustomLog search_eng_log "% i"

Incluziune și excludere

Pe site-ul meu prefer pretențiile de la
proprie de lucru pentru a scrie la
Un jurnal separat, simplifică depanarea
script-uri și serverul în sine. Introducem
variabile și să determine unde și ce
locul:

SetEnvIf Remote_Addr «12.127.17.72» my_stuff
Log-urile CustomLog / complexul my_access env = my_stuff
Jurnalele CustomLog / gen_msg simple env =! My_stuff

Toată lumea înțelege că jurnalele unui server decent
cresc destul de repede. în mod implicit
acestea sunt curățate în fiecare săptămână: access_log
copiat la access_log.1, access_log.1 la access_log.2 și așa mai departe
(în ordine inversă).
Cu toate acestea, dacă vă instalați propria dvs.
jurnalele, atunci trebuie să specificați rotația lor. face
acest lucru se poate face în mai multe moduri. IMHO mai bine
scrie doar un script simplu pentru cron că
apoi efectuați în mod regulat:

#! / bin / bash
mv -f gen_msg.2 gen_msg.3
mv -f gen_msg.1 gen_msg.2
mv -f gen_msg gen_msg.1
apachectl grațios

Distribuiți acest articol cu ​​prietenii dvs.:







Articole similare

Trimiteți-le prietenilor: