У нас есть экземпляр Tomcat, работающий на сервере Ubuntu. Он запускает веб-службу, открытую для Интернета.
Иногда бывает внезапный всплеск трафика и он падает. В журналах доступа Tomcat нет ничего необычного. Я предполагаю, что это связано с тем, что некоторые запросы настолько «тяжелые», что они никогда не завершаются и, следовательно, не записываются в журналы доступа Tomcat.
Есть ли способ настроить Кот регистрировать входящие запросы до их выполнения? Каждый запрос должен регистрироваться в следующем формате
Дата, время, URL (с параметрами строки запроса), IP-адрес (клиента)
В запросе должна быть одна строка. Регистрируются только входящие запросы к портам 80 и 443.
AccessLogValve Tomcat имеет buffered
опция конфигурации, которая по умолчанию true
, что означает, что в случае сбоя Tomcat вы можете потерять журналы, хранящиеся в буфере. Видеть http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Log_Valve.
Вы можете попробовать и установить buffered
к false
, что затем заставит клапан очищать журнал при каждом запросе, учитывая, что это, вероятно, повлияет на общую производительность.
Другой вариант - разместить, например, обратный прокси-сервер Apache перед Tomcat (с использованием mod_proxy, mod_jk, mod_ajp или mod_cluster) и ведение журнала запросов.