Log de acesso do Apache para stdout

1

Existe alguma maneira de interceptar os logs de acesso do Apache (1 ou 2) para stdout sem :

  • modificando os arquivos de configuração
  • reiniciando o serviço

Atualmente meu arquivo de configuração do apache especifica "CustomLog / dev / null common" O sistema é Debian Etch.

Obrigado antecipadamente pela comunidade de servidores!

EDIT: A idéia seria fazer o que "strace -p" faz com processos. Eu esperava que apache2ctl ou algo teria um recurso "dump current acesses": D

    
por Falken 06.10.2009 / 11:18

4 respostas

0

Gente, que tal usar urlsnarf ?

    
por 11.05.2011 / 11:59
3

Você pode explicar quais são seus requisitos e limitações com mais detalhes, caso esteja procurando uma solução para um problema específico. Mas como está, simplesmente:

Can you intercept data going to /dev/null.

Não.

Can you tell Apache to log elsewhere without modifying it's config files or restarting the service.

Não.

Atualização:

Não me ocorreu usar strace . Mas, na verdade, você poderia usá-lo para inspecionar as chamadas write() .

strace -ewrite -s1000 -p<PID>

Você vai se deparar com alguma dificuldade, embora acompanhe os processos. Eu não acho que a detecção do garfo do strace necessariamente irá ajudá-lo. O que significa que você estará constantemente correndo para encontrar qual processo lidou com uma determinada solicitação.

Quanto a esse recurso no Apache. Isso é horrível e não existiria. Eu acho que você é um caso de ponta;)

    
por 06.10.2009 / 11:26
1

Que tal alterar os arquivos de configuração temporariamente e recarregá-los? Você está pedindo para reconfigurar o apache, simples e simples. Há uma função "reload" do Apache que usará a nova configuração sem descartar conexões ativas, se sua preocupação for a disponibilidade.

EDIT: Essa é a coisa mais louca que já vi: fdmess

This is a small utility to redirect file descriptors of running processes and more generally tweak them. It works by attaching with ptrace to an existing process and forcing it to execute some syscall. This way you can force a process to drop privileges, to redirect a file descriptor to a file or a tcp/ip connection, to connect a descriptor to the descriptor of another running process with a unix socket, or to set a file descriptor equal to the descriptor of another running process (unix file descriptor passing is used). Since the code hooks are architecture-dependent, at the moment only the linux-x86 and linux-x86_64 architectures are supported. Patches for other architectures are welcome.

    
por 06.10.2009 / 21:09
0

Não sei bem o que você está tentando alcançar, mas se você quiser apenas assistir aos logs enquanto eles são atualizados no stdout ... você pode visualizar o acesso do Apache ou os logs de erros, em tempo real, conforme eles são atualizados , usando a opção "follow" de tail

Por exemplo

tail -f /var/log/apache2/access.log

Página man

    
por 11.05.2011 / 12:16