У меня есть следующие строки, касающиеся входа в мой файл Apache vhost
SetEnvIf Request_URI "^/server-status$" dontlog
SetEnvIf Request_URI "^/haproxy-status$" dontlog
SetEnvIf Request_Method "OPTIONS" dontlog
CustomLog /var/log/apache2/access_log combined env=!dontlog
#ErrorLog /var/log/apache2/error_log
#Remote logging -- handle by syslog
ErrorLog "|logger -p local3.info -t httperror"
CustomLog "|logger -p local3.info -t http" combined env=!dontlog
LogLevel warn
Я действительно не хочу ничего путать в том, где я не смогу правильно получать свои журналы, но я также не хочу видеть повторяющиеся строки для каждой записи. В настоящее время, если я сделаю один запрос, я вижу одну строку для Apache, а затем одну строку, которая, как я предполагаю, это haproxy, перенаправляющая ее в мое приложение, примерно так:
aa.bbb.ccc.dd - - [05/Oct/2010:02:29:51 +0000] "GET /the_url HTTP/1.1" 200 4 "-" "-"
eee.fff.gg.hh - - [05/Oct/2010:02:29:51 +0000] "GET /the_url HTTP/1.1" 200 4 "-" "-"
aa.bbb.ccc.dd - - [05/Oct/2010:02:31:03 +0000] "GET /another_url HTTP/1.1" 200 4 "-" "-"
eee.fff.gg.hh - - [05/Oct/2010:02:31:03 +0000] "GET /another_url HTTP/1.1" 200 4 "-" "-"
Что мне делать, чтобы этого не произошло?
Помни это директивы журнала в разделе VirtualHost может конфликтовать с директивами журнала из разделов конфигурации "Main". Дублирующиеся строки журнала часто возникают из-за таких строк, как CustomLog /var/log/apache2/access_log
в разделе основной конфигурации и второй CustomLog
внутри раздела VirtualHost.
Grep для "access_log" во всех ваших файлах конфигурации, чтобы увидеть, есть ли другой раздел, отвечающий за дублированные строки журнала.
Если вы действительно хотите иметь отдельные журналы для своего VirtualHost, обязательно записывайте в отдельные файлы журналов:
В основной конфигурации HTTP:
CustomLog /var/log/apache2/access_log
Внутри раздела:
CustomLog /var/log/apache2/www.thisvhost.org/access_log
Чтобы сохранить простоту и избежать путаницы, я обычно избегаю каких-либо директив ведения журнала в разделе VirtualHost. Позже вы можете разделить журналы по имени VirtualHost. Только не забудьте использовать такой формат, как "Общий формат журнала с виртуальным хостом"(% v или% V).
Другая возможность. Что-нибудь из syslog.conf записывает в файл в / var / log / apache2 / access_log? Это сомнительно, потому что системный журнал использует другой формат журнала.
Эти две строки взяты из apache, haproxy использует другой формат журнала.