Registro di accesso "Catch-All" con Apache Virtual Hosts?

Ho molti host virtuali impostati su un server web, ognuno con un proprio errore e un registro di accesso. Le linee di httpd.conf sono le seguenti:

 ErrorLog /var/log/httpd-error.log LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog /var/log/httpd-access.log combined NameVirtualHost *:80 <VirtualHost *:80> ServerName myhost.com ServerAlias www.myhost.com DocumentRoot /var/www/myhost.com/htdocs ErrorLog /var/www/myhost.com/log/error.log CustomLog /var/www/myhost.com/log/access.log combined </VirtualHost> # ... many more VirtualHosts 

Attualmente, sto ottenendo alcuni errori casuali in /var/log/httpd-error.log, ma non sto ottenendo nulla in /var/log/httpd-access.log. È ansible avere tutti gli accessi e gli errori duplicati in un file di registro condiviso? È ansible farlo senza aggiungere nuove voci a each singolo VirtualHost?

  • Le richieste della coda di Apache hanno elaborato il FIFO o la priorità?
  • Come aggiungere una cartella web tramite la row di command (Windows)
  • Come posso impedire Apache di esporre la password di un utente?
  • La pagina Web si blocca sul ricarica / aggiornamento
  • I lavoratori di Apache httpd tentano nuovamente
  • eseguire nginx come proxy inverso con apache
  • Utilizzando Squid come repository Maven
  • Perché i domini esterni vengono visualizzati nei miei registri apache?
  • Modifica di un'intestazione Set-Cookie usando mod_rewrite / mod_proxy
  • Il sito è in linea con i bots di posta
  • CentOS richiede 10 secondi per iniziare qualsiasi cosa
  • Hai degli utili script awk e grep per analizzare i log di apache?
  • 7 Solutions collect form web for “Registro di accesso "Catch-All" con Apache Virtual Hosts?”

    Vedere http://httpd.apache.org/docs/2.2/logs.html#virtualhost

    Se le direttive di CustomLog o ErrorLog sono collocate all'interno di una sezione, tutte le richieste o gli errori di tale host virtuale verranno registrati solo nel file specificato. Qualsiasi host virtuale che non dispone di direttive di logging avrà ancora le sue richieste inviate ai log del server principale.

    In altre parole, se si posiziona le direttive di logging all'interno di una sezione VirtualHost, ignorerà le direttive di logging nella configuration del server principale. Se si desidera eseguire l'accesso a un singolo logfile, rimuovere la configuration del registro dalle sezioni VirtualHost.

    Per semplicità, preferisco registrare tutti i dati di accesso a un singolo logfile. In seguito, è ansible elaborare i registri e suddividere i log di file in logfile per gli host virtuali. Inoltre, la scrittura a un singolo logfile è un utilizzo più efficiente delle risorse del computer, quindi la scrittura a 30 file di registro contemporaneamente. Basta assicurarsi che il tuo LogFormat include il '% v', che registra il nome dell'host virtuale.

    È ansible avere tutti gli accessi e gli errori duplicati in un file di registro condiviso?

    È ansible registrare tutti gli errori e accedere a un file di registro condiviso, ma il file di registro è brutto. In primo luogo, submit i dati del registro Apache a syslog e quindi utilizzare il syslog per submit a un file locale o un server di registro remoto.

     # Send access logs to syslog LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog "|/usr/bin/logger -t httpd -i -p local7.notice" combined # Send error logs to syslog ErrorLog syslog:local7 

    E poi in /etc/syslog.conf

     # Send all HTTP log data to this file local7.* /var/log/http-all.log 

    Quello che ho fatto è stato aggiungere una seconda linea CustomLog nella sezione VirtualHost. Ma wherevo farlo per each singolo file conf. Vhost. Funziona ed è nel mio model ora nuovi vhosts sono presi auto di.

    Il mio apache2 ora registra colpisce due posti:

    1. Le specifiche per un vhost nella directory di vhost e
    2. a /var/log/apache2 in un file combinato per tutti i vhost.

    Io applico un diverso LogFormat a ciascuno di questi due registri per ospitare rispettivamente, ovviamente. Il /var/log/apache2 viene analizzato con Perl e ispira in una struttura MySQL altamente normalizzata per l'analisi e la segnalazione. Logrotate si spazza una volta alla settimana.

    Non credo che questo sia ansible. Alless la documentazione non menziona tale cosa.

    Il modo migliore per simulare questo tipo di comportmento è quello di definire il tag% v nel formato e alla rotazione del registro dividere una copia dei file di log nei file specifici di host virtuali.

    Non so se i tuoi routes di file di registro seguono qualsiasi tipo di pattern nei virtualhosts, ma se fanno, mi dimenticherei di avere Apache creando un registro duplicato e solo gatto i registri quando ne avrei bisogno.

     cat /var/www/*/log/access.log > /var/www/logs/access.log 

    Sto cercando anche una risposta a questa domanda. Finora ho due soluzioni:

    1. la soluzione del gatto ha detto Joebert
    2. la mia soluzione di coda: tail -f /var/log/httpd/*access_log

    Voglio essere in grado di vedere un tail -f tipo di visualizzazione in tutte le attività del server web nell'host. Mi piacerebbe piuttosto essere in grado di coda solo un file, però, perché non mi piace molto il modo in cui la coda gestisce più file.

    Hai 2 possibilità utilizzando la direttiva ErrorLog http://httpd.apache.org/docs/2.2/mod/core.html#errorlog

    1) Utilizzare syslog e gestire la duplicazione in [r] syslog.conf

    2) Utilizzare il pipe, submit la voce di registro a un'applicazione / script e gestire la duplicazione in quell'applicazione / script

    Sta guardando tutti i registri di accesso strettamente necessari? Se gli errori sono effettivamente causati da una richiesta di vhost, dovrebbe essere registrato qualcosa nel registro degli errori di vhost. In tal caso, ls -t /var/www/*/log/error.log per determinare quale vhost è il colpevole e quindi guardare appena che il file di registro di accesso sembra essere un buon primo passo per eliminare un sacco di lettura indebita log .

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.