Como localizo onde o Apache mantém os arquivos de log?

10

Preciso descobrir onde o Apache está mantendo os logs de acesso e erro de um site.

Eu tenho acesso root a um servidor em que dezenas de sites estão hospedados. Estou tentando depurar um desses sites. Quando navego no site, ele não aparece /var/logs/apache2/access.logou /var/logs/apache2/error.log. (Os arquivos estão lá e outros sites são registrados nesses. De fato, existem centenas de arquivos de log diferentes).

Nem locate httpd.lognem find . -iname httpd.logrealizado em /questão qualquer resultado.

A configuração do apache para o site é:

ServerName REDACTED.com.br
DocumentRoot /var/www/xyz/wiki
AssignUserId xyz_wiki xyz_wiki

<Directory /var/www/xyz/wiki/data>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/conf>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/bin>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/inc>
order allow,deny
deny from all
</Directory>

php_admin_value open_basedir /var/www/xyz/wiki/:/mnt/vdImagem/www/xyz/wiki/
Aquele cara brasileiro
fonte
6
Isso não é bobagem, o OP vinculou a duplicata proposta na própria pergunta e afirma claramente que a informação não está na /var/log/apache2/access.logqual é o que a duplicata sugere.
terdon
Tentesudo lsof -nP -c apache2 -c httpd | grep -i log
Stéphane Chazelas

Respostas:

4

Você pode perguntar sobre as informações dele nos arquivos de log do Apache, mas geralmente é melhor perguntar sobre essas coisas no executável real. A análise dos logs pode ser complicada e você provavelmente cometerá um erro se não estiver familiarizado com o modo como uma configuração específica foi feita em uma caixa.

httpd -V

$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Os principais itens que você deseja examinar são os seguintes.

  1. Isso indica o diretório "raiz" ao qual todos os arquivos que o Apache fará referência começam:

     -D HTTPD_ROOT="/etc/httpd"
    
  2. arquivos de configuração são definidos, começando aqui. Observe que esse caminho é relativo ao caminho mencionado em # 1, assim seria /etc/httpd/conf/httpd.conf.

     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
  3. O log de erros está aqui.

     -D DEFAULT_ERRORLOG="logs/error_log"
    

    NOTA: Este pode ser um pouco confuso a princípio, mas nas distribuições da Red Hat há um link que é feito frequentemente neste diretório, /etc/httpdchamado logs.

    $ ls -ld /etc/httpd/logs
    lrwxrwxrwx. 1 root root 19 Jul  9  2012 /etc/httpd/logs -> ../../var/log/httpd
    
  4. Outros arquivos de log que podem ser utilizados pelo Apache serão definidos mais adiante no arquivo de configuração /etc/httpd/conf/httpd.conf,.

slm
fonte
1
httpd -V comando não funciona no Debian 9.
Christia
Tenteapache2 -V
Draex_ 25/02
3

Procure na sua configuração do apache a string ErrorLog.

Normalmente, existe um para o próprio processo Apache. Cada VirtualHost também pode definir seus próprios arquivos de log, portanto, verifique-os também.

Se o VirtualHost não definir seu próprio arquivo de log, ele estará usando o especificado na configuração global. Se você acha que encontrou o arquivo de log correto, mas não está vendo as informações necessárias, tente aumentar o arquivo LogLevel.

bahamat
fonte
1
/etc/apache2# rgrep "ErrorLog" .exibe dezenas de arquivos de configuração que especificam ${APACHE_LOG_DIR}/error.sitename.log, mas esse não é um deles. /etc/apache2# rgrep "LogLevel" .recebe apenas alguns arquivos padrão.
Aquele cara brasileiro
2
No Debian ${APACHE_LOG_DIR}é definido como /var/log/apache2por padrão. Verifique /etc/defaults/apache2se foi alterado.
bahamat
Se não houver um LogLevelconjunto para um VirtualHost específico, você poderá adicionar um.
bahamat
1

Acabei de encontrar um arquivo /etc/apache2/conf.d/other-vhosts-access-logque contém

# Define an access log for VirtualHosts that don't define their own logfile
CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined

Parece que é uma maneira de combinar todos os logs de vhosts em um único arquivo. Eu verifiquei e os acessos estavam sendo gravados lá.

( fonte )

A inserção de uma diretiva ErrorLog e AccessLog no arquivo de configuração desse site me forneceu arquivos de log separados.

Aquele cara brasileiro
fonte