Я читаю книгу по Logstash, и автор предоставил образец файла conf. Я использую сервер Ubuntu 16.04 с установленным Apache 2. Я добавил файл conf в / etc / apache2 / conf-available и использовал a2enconf для создания символической ссылки на conf-enabled. Я вижу новый файл журнала в / var / log / apache2 /, но содержимое файла журнала не добавляется. Я сопоставил разрешения для других файлов журнала в этом каталоге. Мы ценим любые предложения. Ниже мой файл conf:
LogFormat "{ \
\"host\":\"webapp.local\", \
\"path\":\"/var/log/apache2/logstash_access_log\", \
\"tags\":[\"wordpress\",\"www.example.com\"], \
\"message\": \"%h %l %u %t \\"%r\\" %>s %b\", \
\"timestamp\": \"%{%Y-%m-%dT%H:%M:%S%z}t\", \
\"clientip\": \"%a\", \
\"duration\": %D, \
\"status\": %>s, \
\"request\": \"%U%q\", \
\"urlpath\": \"%U\", \
\"urlquery\": \"%q\", \
\"method\": \"%m\", \
\"bytes\": %B, \
\"vhost\": \"%v\" \
}" logstash_apache_json
CustomLog /var/log/apache2/logstash_access_log logstash_apache_json
Надеюсь, это поможет другим. Оригинальная ветка из https://stackoverflow.com/questions/525057/why-cant-i-get-apaches-customlog-directive-to-work
Обходной путь 1
Удалите директиву CustomLog из файла конфигурации, если она настроена в отдельном файле конфигурации. Добавьте директиву CustomLog в запись VirtualHost вашего сайта. Для меня это было в / etc / apache2 / sites-available / default-ssl, потому что я разрешаю только SSL-доступ к репозиторию Subversion. Если вы используете / etc / apache2 / sites-available / default, вы захотите отредактировать этот файл вместо этого (или в дополнение к default-ssl, если вы используете оба). Перезагрузите Apache: sudo /etc/init.d/apache2 restart
Pro
У вас может быть несколько директив CustomLog в записи VirtualHost для вашего сайта, и все они будут работать.
Против
Вам необходимо переместить запись CustomLog в запись VirtualHost вашего сайта вместо того, чтобы хранить ее в отдельном файле конфигурации.
Обходной путь 2
Закомментируйте директивы CustomLog в записи VirtualHost вашего сайта. Если вы используете одну из конфигураций сайта по умолчанию (default или default-ssl), будет директива CustomLog для журнала доступа, который вам нужно будет закомментировать (да, это отключает ведение журнала доступа Apache по умолчанию). Добавьте свою директиву CustomLog в соответствующий файл конфигурации. Для меня это был /etc/apache2/mods-available/dav_svn.conf. Перезапустите Apache: sudo /etc/init.d/apache2 restart
Pro
Вы можете сохранить свою директиву CustomLog в отдельном файле конфигурации.
Против
Этот обходной путь имеет очевидный недостаток, заключающийся в том, что вам необходимо отключить ведение журнала доступа Apache по умолчанию, но меня это не волнует, так как я использую сервер только для доступа к Subversion.
Вывод
Ни один из этих обходных путей на самом деле не идеален, но пока я не нашел другого способа заставить его работать, кроме двух обходных путей выше. Я полагаю, нам придется дождаться следующего выпуска Apache, чтобы эта проблема была исправлена.