Ошибка конвейерного ведения журнала Apache

Я пытаюсь написать простую директиву протоколирования apache, но получаю ошибку. Я просто хочу найти 200 кодов ответов для централизации моих файлов журналов в ELK. Это пользовательский формат журнала, который я создал.

LogFormat "%s %h %l %u %t \"%r\" %b" remove

Вот протокол передачи

CustomLog "|/bin/grep -v '^200' /var/log/apache2/pi-mirror.com/access.log" remove

Я получаю следующую ошибку в журнале ошибок apache2.

AH00106: piped log program '/bin/grep -v '^200' /var/log/apache2/pi-mirror.com/access.log' failed unexpectedly

Кажется, я не могу понять, что здесь происходит. Я прочитал документы apache по конвейерному ведению журнала и не могу найти ничего, что я мог бы делать неправильно.

Это работает на Apache2 2.4.7

Заранее благодарим за помощь.

ПРИМЕЧАНИЕ.

Изучая это дальше, я обнаружил, что apache 2.2 и apache 2.4 изменили способ, которым это делается. Ранее оболочка создавалась автоматически, но в новой версии 2.4 вы должны вручную указать оболочку. В результате я изменил свой синтаксис на этот

CustomLog "|$/bin/grep -v '^200' /var/log/apache2/pi-mirror.com/access.log" remove

Это изменение сделало следующее. По какой-то причине, когда я перезапускаю apache2, он выводит весь вывод этой команды на стандартный вывод, и я вижу все это со своего терминала. Но затем происходит сбой с тем же сообщением об ошибке. Это' Это почти похоже на то, что apache не может запускать это постоянно, что заставляет меня задуматься, нужно ли мне что-то еще, чтобы исправить это.

1
задан 1 January 2016 в 01:34
1 ответ

Проблема в том, что ваш grep пытается фильтровать журнал на диске, но когда вы используете CustomLog с конвейером, все новые сообщения журнала отправляются в него, а не в файл, поэтому файл не существовать. На самом деле вы, вероятно, хотите:

CustomLog "|/bin/grep -v '^200' | cat >> /var/log/apache2/pi-mirror.com/access.log" remove

Что будет делать, так это обратный grep для 200 (что у вас изначально было), а затем он отобразит его в файле журнала. Для получения дополнительной информации см .: https://workshop.avatarnewyork.com/post/filtering-apache-piped-logs-to-centralize-logging-of-errors-and-warnings/

1
ответ дан 3 December 2019 в 23:54

Теги

Похожие вопросы