Eu estou tentando escrever uma diretiva simples de logging canalizada do apache e estou tendo uma falha. Eu só quero grep out 200 códigos de resposta para centralizar meus arquivos de log para ELK. Este é o formato de registro personalizado que eu criei.
LogFormat "%s %h %l %u %t \"%r\" %b" remove
Aqui está o log canalizado
CustomLog "|/bin/grep -v '^200' /var/log/apache2/pi-mirror.com/access.log" remove
Eu recebo o seguinte erro no log de erros do apache2.
AH00106: piped log program '/bin/grep -v '^200' /var/log/apache2/pi-mirror.com/access.log' failed unexpectedly
Eu não consigo descobrir o que está acontecendo aqui. Eu li através de documentos de apaches em log canalizado e não consigo encontrar nada que eu poderia estar fazendo incorretamente.
Isso está sendo executado no Apache2 2.4.7
Agradecemos antecipadamente pela assistência.
OBSERVAÇÃO
Examinando isso, descobri que o apache 2.2 e o apache 2.4 mudaram a maneira como isso é feito. Anteriormente, um shell era gerado automaticamente, mas na nova versão 2.4 você deve especificar manualmente um shell. Como resultado, mudei minha sintaxe para esta
CustomLog "|$/bin/grep -v '^200' /var/log/apache2/pi-mirror.com/access.log" remove
Essa alteração fez o seguinte. Por alguma razão, quando eu reinicio o apache2, ele mostra toda a saída desse comando para o stdout e eu vejo tudo do meu terminal. Mas então ele falha com a mesma mensagem de erro. É quase como se o apache não estivesse realmente começando isso repetidamente, o que me faz pensar se preciso fazer outra coisa para consertar isso.