Tengo muchos hosts virtuales configurados en un servidor web, cada uno con su propio error y registro de acceso. Las líneas relevantes de httpd.conf
son algo como esto:
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
Actualmente, recibo algunos errores aleatorios en /var/log/httpd-error.log, pero no obtengo nada en /var/log/httpd-access.log. ¿Es posible tener TODOS los accesos y errores duplicados en un archivo de registro compartido? ¿Es posible hacer esto sin agregar nuevas entradas a cada VirtualHost?
fuente
Tiene 2 posibilidades con la directiva ErrorLog http://httpd.apache.org/docs/2.2/mod/core.html#errorlog
1) Use syslog y maneje la duplicación en [r] syslog.conf
2) Use pipe, envíe la entrada de registro a una aplicación / script y maneje la duplicación en esa aplicación / script
fuente
¿Es estrictamente necesario ver todos los registros de acceso? Si los errores realmente son causados por una solicitud de vhost, debe haber algo registrado en el registro de errores de vhost. En ese caso, ls -t /var/www/*/log/error.log para determinar qué vhost es el culpable y luego mirar solo ese archivo de registro de acceso parecería ser un buen primer paso para eliminar muchas lecturas innecesarias de registros .
fuente